SURF  1.0
AxiMicronP30Core.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : AxiMicronP30Core.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2014-06-23
5 -- Last update: 2017-03-24
6 -------------------------------------------------------------------------------
7 -- Description: AXI-Lite interface to FLASH Memory
8 -------------------------------------------------------------------------------
9 -- This file is part of 'SLAC Firmware Standard Library'.
10 -- It is subject to the license terms in the LICENSE.txt file found in the
11 -- top-level directory of this distribution and at:
12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
13 -- No part of 'SLAC Firmware Standard Library', including this file,
14 -- may be copied, modified, propagated, or distributed except according to
15 -- the terms contained in the LICENSE.txt file.
16 -------------------------------------------------------------------------------
17 
18 library ieee;
19 use ieee.std_logic_1164.all;
20 
21 use work.StdRtlPkg.all;
22 use work.AxiLitePkg.all;
23 use work.AxiMicronP30Pkg.all;
24 
25 library unisim;
26 use unisim.vcomponents.all;
27 
28 --! @see entity
29  --! @ingroup devices_Micron_p30
31  generic (
32  TPD_G : time := 1 ns;
33  MEM_ADDR_MASK_G : slv(31 downto 0) := x"00000000";
34  AXI_CLK_FREQ_G : real := 200.0E+6; -- units of Hz
36  port (
37  -- FLASH Interface
41  -- AXI-Lite Register Interface
46  -- Clocks and Resets
47  axiClk : in sl;
48  axiRst : in sl);
49 end AxiMicronP30Core;
50 
51 architecture mapping of AxiMicronP30Core is
52 
53  signal flashDin : slv(15 downto 0);
54  signal flashDout : slv(15 downto 0);
55  signal flashTri : sl;
56 
57 begin
58 
59  GEN_IOBUF :
60  for i in 15 downto 0 generate
61  IOBUF_inst : IOBUF
62  port map (
63  O => flashDout(i), -- Buffer output
64  IO => flashInOut.dq(i), -- Buffer inout port (connect directly to top-level port)
65  I => flashDin(i), -- Buffer input
66  T => flashTri); -- 3-state enable input, high=input, low=output
67  end generate GEN_IOBUF;
68 
69  U_CTRL : entity work.AxiMicronP30Reg
70  generic map (
71  TPD_G => TPD_G,
75  port map (
76  -- FLASH Interface
77  flashAddr => flashOut.addr,
78  flashAdv => flashOut.adv,
79  flashClk => flashOut.clk,
80  flashRstL => flashOut.rstL,
81  flashCeL => flashOut.ceL,
82  flashOeL => flashOut.oeL,
83  flashWeL => flashOut.weL,
84  flashDin => flashDin,
86  flashTri => flashTri,
87  -- AXI-Lite Register Interface
92  -- Clocks and Resets
93  axiClk => axiClk,
94  axiRst => axiRst);
95 
96 end mapping;
out flashDinslv( 15 downto 0)
_library_ ieeeieee
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
slv( 15 downto 0) flashDout
inout flashInOutAxiMicronP30InOutType
slv( 15 downto 0) flashDin
MEM_ADDR_MASK_Gslv( 31 downto 0) := x"00000000"
in flashDoutslv( 15 downto 0)
out flashOutAxiMicronP30OutType
out axiReadSlaveAxiLiteReadSlaveType
AXI_CLK_FREQ_Greal := 200.0E+6
out flashAddrslv( 30 downto 0)
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
AXI_CLK_FREQ_Greal := 200.0E+6
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
in axiReadMasterAxiLiteReadMasterType
TPD_Gtime := 1 ns
out axiWriteSlaveAxiLiteWriteSlaveType
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
in axiReadMasterAxiLiteReadMasterType
out axiReadSlaveAxiLiteReadSlaveType
MEM_ADDR_MASK_Gslv( 31 downto 0) := x"00000000"
in axiWriteMasterAxiLiteWriteMasterType
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
out axiWriteSlaveAxiLiteWriteSlaveType
in flashInAxiMicronP30InType
in axiWriteMasterAxiLiteWriteMasterType
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
std_logic_vector slv
Definition: StdRtlPkg.vhd:29