SURF  1.0
SrpV3AxiLiteFull.vhd
Go to the documentation of this file.
1 -------------------------------------------------------------------------------
2 -- File : SrpV3AxiLite.vhd
3 -- Company : SLAC National Accelerator Laboratory
4 -- Created : 2016-03-22
5 -- Last update: 2016-04-25
6 -------------------------------------------------------------------------------
7 -- Description: SLAC Register Protocol Version 3, AXI-Lite Interface
8 --
9 -- Documentation: https://confluence.slac.stanford.edu/x/cRmVD
10 --
11 -- Note: This module only supports 32-bit aligned addresses and 32-bit transactions.
12 -- For non 32-bit aligned addresses or non 32-bit transactions, use
13 -- the SrpV3Axi.vhd module with the AxiToAxiLite.vhd bridge
14 -------------------------------------------------------------------------------
15 -- This file is part of 'SLAC Firmware Standard Library'.
16 -- It is subject to the license terms in the LICENSE.txt file found in the
17 -- top-level directory of this distribution and at:
18 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.
19 -- No part of 'SLAC Firmware Standard Library', including this file,
20 -- may be copied, modified, propagated, or distributed except according to
21 -- the terms contained in the LICENSE.txt file.
22 -------------------------------------------------------------------------------
23 
24 library ieee;
25 use ieee.std_logic_1164.all;
26 use ieee.std_logic_arith.all;
27 use ieee.std_logic_unsigned.all;
28 
29 use work.StdRtlPkg.all;
30 use work.AxiStreamPkg.all;
31 use work.SsiPkg.all;
32 use work.AxiLitePkg.all;
33 use work.AxiPkg.all;
34 
35 --! @see entity
36  --! @ingroup protocols_srp
38  generic (
39  TPD_G : time := 1 ns;
40  PIPE_STAGES_G : natural range 0 to 16 := 0;
41  FIFO_PAUSE_THRESH_G : positive range 1 to 511 := 256;
42  TX_VALID_THOLD_G : positive := 1;
43  SLAVE_READY_EN_G : boolean := false;
44  GEN_SYNC_FIFO_G : boolean := false;
45  ALTERA_SYN_G : boolean := false;
46  ALTERA_RAM_G : string := "M9K";
47  AXIL_CLK_FREQ_G : real := 156.25E+6; -- units of Hz
48  AXI_STREAM_CONFIG_G : AxiStreamConfigType := ssiAxiStreamConfig(2));
49  port (
50  -- AXIS Slave Interface (sAxisClk domain)
51  sAxisClk : in sl;
52  sAxisRst : in sl;
56  -- AXIS Master Interface (mAxisClk domain)
57  mAxisClk : in sl;
58  mAxisRst : in sl;
61  -- Master AXI-Lite Interface (axilClk domain)
62  axilClk : in sl;
63  axilRst : in sl;
68 end SrpV3AxiLiteFull;
69 
70 architecture rtl of SrpV3AxiLiteFull is
71 
76 
77 begin
78 
79  U_SrpV3Axi_1 : entity work.SrpV3Axi
80  generic map (
81  TPD_G => TPD_G,
90  AXI_CONFIG_G => (32, 4, 1, 0),
91 -- AXI_BURST_G => AXI_BURST_G,
92 -- AXI_CACHE_G => AXI_CACHE_G,
93 -- ACK_WAIT_BVALID_G => ACK_WAIT_BVALID_G,
95  port map (
96  sAxisClk => sAxisClk, -- [in]
97  sAxisRst => sAxisRst, -- [in]
98  sAxisMaster => sAxisMaster, -- [in]
99  sAxisSlave => sAxisSlave, -- [out]
100  sAxisCtrl => sAxisCtrl, -- [out]
101  mAxisClk => mAxisClk, -- [in]
102  mAxisRst => mAxisRst, -- [in]
103  mAxisMaster => mAxisMaster, -- [out]
104  mAxisSlave => mAxisSlave, -- [in]
105  axiClk => axilClk, -- [in]
106  axiRst => axilRst, -- [in]
107  axiWriteMaster => axiWriteMaster, -- [out]
108  axiWriteSlave => axiWriteSlave, -- [in]
109  axiReadMaster => axiReadMaster, -- [out]
110  axiReadSlave => axiReadSlave); -- [in]
111 
112  U_AxiToAxiLite_1 : entity work.AxiToAxiLite
113  generic map (
114  TPD_G => TPD_G)
115  port map (
116  axiClk => axilClk, -- [in]
117  axiClkRst => axilRst, -- [in]
118  axiReadMaster => axiReadMaster, -- [in]
119  axiReadSlave => axiReadSlave, -- [out]
120  axiWriteMaster => axiWriteMaster, -- [in]
121  axiWriteSlave => axiWriteSlave, -- [out]
122  axilReadMaster => mAxilReadMaster, -- [out]
123  axilReadSlave => mAxilReadSlave, -- [in]
124  axilWriteMaster => mAxilWriteMaster, -- [out]
125  axilWriteSlave => mAxilWriteSlave); -- [in]
126 
127 end rtl;
in mAxisSlaveAxiStreamSlaveType
Definition: SrpV3Axi.vhd:66
in axilWriteSlaveAxiLiteWriteSlaveType
out axiReadMasterAxiReadMasterType
Definition: SrpV3Axi.vhd:72
ALTERA_SYN_Gboolean := false
Definition: SrpV3Axi.vhd:43
in mAxilReadSlaveAxiLiteReadSlaveType
out mAxilReadMasterAxiLiteReadMasterType
in mAxisRstsl
Definition: SrpV3Axi.vhd:64
out sAxisSlaveAxiStreamSlaveType
Definition: SrpV3Axi.vhd:60
AxiLiteWriteMasterType
Definition: AxiLitePkg.vhd:111
std_logic sl
Definition: StdRtlPkg.vhd:28
out mAxisMasterAxiStreamMasterType
Definition: SrpV3Axi.vhd:65
TX_VALID_THOLD_Gpositive := 1
Definition: SrpV3Axi.vhd:40
_library_ ieeeieee
AXI_STREAM_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 2)
Definition: SrpV3Axi.vhd:50
in mAxilWriteSlaveAxiLiteWriteSlaveType
in sAxisMasterAxiStreamMasterType
out sAxisCtrlAxiStreamCtrlType
Definition: SrpV3Axi.vhd:61
in axiWriteMasterAxiWriteMasterType
out sAxisCtrlAxiStreamCtrlType
FIFO_PAUSE_THRESH_Gpositive range 1 to 511:= 256
in axilReadSlaveAxiLiteReadSlaveType
AxiLiteWriteMasterType axiWriteMaster
Definition: AxiLitePkg.vhd:181
FIFO_PAUSE_THRESH_Gpositive range 1 to 511:= 256
Definition: SrpV3Axi.vhd:39
AxiLiteReadSlaveType axiReadSlave
Definition: AxiLitePkg.vhd:180
out axilWriteMasterAxiLiteWriteMasterType
AxiReadSlaveType
Definition: AxiPkg.vhd:79
TPD_Gtime := 1 ns
SLAVE_READY_EN_Gboolean := true
Definition: SrpV3Axi.vhd:41
AxiWriteMasterType
Definition: AxiPkg.vhd:108
TPD_Gtime := 1 ns
Definition: SrpV3Axi.vhd:37
AxiLiteReadMasterType axiReadMaster
Definition: AxiLitePkg.vhd:179
TX_VALID_THOLD_Gpositive := 1
AxiLiteWriteSlaveType axiWriteSlave
Definition: AxiLitePkg.vhd:182
AXIL_CLK_FREQ_Greal := 156.25E+6
in axiReadSlaveAxiReadSlaveType
Definition: SrpV3Axi.vhd:73
PIPE_STAGES_Gnatural range 0 to 16:= 0
in sAxisClksl
Definition: SrpV3Axi.vhd:57
AxiLiteReadMasterType
Definition: AxiLitePkg.vhd:59
in axiClksl
Definition: SrpV3Axi.vhd:68
in mAxisSlaveAxiStreamSlaveType
in axiReadMasterAxiReadMasterType
out axilReadMasterAxiLiteReadMasterType
AxiWriteSlaveType
Definition: AxiPkg.vhd:171
ALTERA_SYN_Gboolean := false
AXI_STREAM_CONFIG_GAxiStreamConfigType := ssiAxiStreamConfig( 2)
SLAVE_READY_EN_Gboolean := false
AxiLiteReadSlaveType
Definition: AxiLitePkg.vhd:85
in mAxisClksl
Definition: SrpV3Axi.vhd:63
out sAxisSlaveAxiStreamSlaveType
ALTERA_RAM_Gstring := "M9K"
Definition: SrpV3Axi.vhd:44
GEN_SYNC_FIFO_Gboolean := false
Definition: SrpV3Axi.vhd:42
out axiWriteSlaveAxiWriteSlaveType
out axiReadSlaveAxiReadSlaveType
ALTERA_RAM_Gstring := "M9K"
out mAxilWriteMasterAxiLiteWriteMasterType
GEN_SYNC_FIFO_Gboolean := false
in sAxisMasterAxiStreamMasterType
Definition: SrpV3Axi.vhd:59
in sAxisRstsl
Definition: SrpV3Axi.vhd:58
in axiRstsl
Definition: SrpV3Axi.vhd:69
out mAxisMasterAxiStreamMasterType
AXI_CONFIG_GAxiConfigType :=( 33, 4, 1, 8)
Definition: SrpV3Axi.vhd:46
PIPE_STAGES_Gnatural range 0 to 16:= 0
Definition: SrpV3Axi.vhd:38
in axiWriteSlaveAxiWriteSlaveType
Definition: SrpV3Axi.vhd:71
AXI_CLK_FREQ_Greal := 156.25E+6
Definition: SrpV3Axi.vhd:45
AxiReadMasterType
Definition: AxiPkg.vhd:32
out axiWriteMasterAxiWriteMasterType
Definition: SrpV3Axi.vhd:70