SURF  1.0
AxiXcf128Core.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : AxiXcf128Core.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2014-04-24
5 -- Last update: 2015-01-13
6 -------------------------------------------------------------------------------
7 -- Description: AXI-Lite interface to XCF128 FLASH IC
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 use ieee.numeric_std.all;
21 
22 use work.StdRtlPkg.all;
23 use work.AxiLitePkg.all;
24 use work.AxiXcf128Pkg.all;
25 
26 library unisim;
27 use unisim.vcomponents.all;
28 
29 --! @see entity
30  --! @ingroup devices_Xilinx_xcf128
31 entity AxiXcf128Core is
32  generic (
33  TPD_G : time := 1 ns;
34  AXI_CLK_FREQ_G : real := 200.0E+6; -- units of Hz
36  port (
37  -- XCF128 Ports
40  -- AXI-Lite Register Interface
45  -- Clocks and Resets
46  axiClk : in sl;
47  axiRst : in sl);
48 end AxiXcf128Core;
49 
50 architecture mapping of AxiXcf128Core is
51 
54 
55 begin
56 
57  GEN_IOBUF :
58  for i in 15 downto 0 generate
59  IOBUF_inst : IOBUF
60  port map (
61  O => status.data(i), -- Buffer output
62  IO => xcfInOut.data(i), -- Buffer inout port (connect directly to top-level port)
63  I => config.data(i), -- Buffer input
64  T => config.tristate); -- 3-state enable input, high=input, low=output
65  end generate GEN_IOBUF;
66 
67  xcfOut.ceL <= config.ceL;
68  xcfOut.oeL <= config.oeL;
69  xcfOut.weL <= config.weL;
72 
73  AxiXcf128Reg_Inst : entity work.AxiXcf128Reg
74  generic map(
75  TPD_G => TPD_G,
78  port map(
79  -- AXI-Lite Register Interface
84  -- Register Inputs/Outputs
85  status => status,
86  config => config,
87  -- Clock and Reset
88  axiClk => axiClk,
89  axiRst => axiRst);
90 
91 end mapping;
TPD_Gtime := 1 ns
out xcfOutAxiXcf128OutType
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
inout xcfInOutAxiXcf128InOutType
out axiReadSlaveAxiLiteReadSlaveType
in axiWriteMasterAxiLiteWriteMasterType
AxiXcf128ConfigType config
AxiXcf128StatusType status
out axiWriteSlaveAxiLiteWriteSlaveType
in statusAxiXcf128StatusType
in axiReadMasterAxiLiteReadMasterType
out configAxiXcf128ConfigType
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
out axiReadSlaveAxiLiteReadSlaveType
slv( 1 downto 0) := "10" AXI_RESP_SLVERR_C
Definition: AxiLitePkg.vhd:36
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
out axiWriteSlaveAxiLiteWriteSlaveType
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
slv( 22 downto 0) addr
AXI_CLK_FREQ_Greal := 200.0E+6
in axiReadMasterAxiLiteReadMasterType
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_SLVERR_C
_library_ ieeeieee
TPD_Gtime := 1 ns
in axiWriteMasterAxiLiteWriteMasterType
AXI_CLK_FREQ_Greal := 200.0E+6
std_logic_vector slv
Definition: StdRtlPkg.vhd:29