1 ------------------------------------------------------------------------------- 2 -- File : RssiCoreWrapper.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2016-02-25 5 -- Last update: 2017-05-09 6 ------------------------------------------------------------------------------- 7 -- Description: Wrapper for RSSI + AXIS packetizer 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 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
28 --! @ingroup protocols_rssi 34 SERVER_G : := true;
-- Module is server or client 43 -- AXIS Configurations 46 -- Version and connection ID 51 -- Window parameters of receiver module 53 MAX_SEG_SIZE_G : positive := 1024;
-- <= (2**SEGMENT_ADDR_SIZE_G)*8 Number of bytes 55 ACK_TOUT_G : positive := 25;
-- unit depends on TIMEOUT_UNIT_G 56 RETRANS_TOUT_G : positive := 50;
-- unit depends on TIMEOUT_UNIT_G (Recommended >= MAX_NUM_OUTS_SEG_G*Data segment transmission time) 57 NULL_TOUT_G : positive := 200;
-- unit depends on TIMEOUT_UNIT_G (Recommended >= 4*RETRANS_TOUT_G) 65 -- SSI Application side 68 mAppAxisMasters_o :
out AxiStreamMasterArray(APP_STREAMS_G-1
downto 0);
69 mAppAxisSlaves_i :
in AxiStreamSlaveArray(APP_STREAMS_G-1
downto 0);
75 -- High level Application side interface 79 -- AXI-Lite Register Interface 88 end entity RssiCoreWrapper;
107 -- This should really go in a AxiStreamPacketizerPkg 117 -- If bypassing chunker, convert directly to RSSI AXIS config 118 -- else use Packetizer AXIS format. Packetizer will then convert to RSSI config. 196 -- AXIS Configurations 199 -- Version and connection ID 204 -- Window parameters of receiver module 218 -- SSI Application side 223 -- SSI Transport side 228 -- High level Application side interface 232 -- AXI-Lite Register Interface 307 end architecture mapping;
out mAxisMasterAxiStreamMasterType
FIFO_ADDR_WIDTH_Ginteger range 4 to 48:= 9
natural range 0 to 8 TDEST_BITS_C
array(natural range <> ) of AxiStreamSlaveType AxiStreamSlaveArray
PIPE_STAGES_Gnatural range 0 to 16:= 1
out sAxisSlaveAxiStreamSlaveType
MAX_PACKET_BYTES_Ginteger := 1440
SLAVE_AXI_CONFIG_GAxiStreamConfigType := AXI_STREAM_CONFIG_INIT_C
TDEST_ROUTES_GSlv8Array :=( 0=> "--------")
out mAxisMastersAxiStreamMasterArray( NUM_MASTERS_G- 1 downto 0)
SLAVE_READY_EN_Gboolean := true
natural range 1 to 16 TDATA_BYTES_C
GEN_SYNC_FIFO_Gboolean := false
in sAxisMasterAxiStreamMasterType
MODE_Gstring := "INDEXED"
TkeepModeType TKEEP_MODE_C
out mAxisMasterAxiStreamMasterType
out sAxisSlaveAxiStreamSlaveType
natural range 0 to 8 TID_BITS_C
in sAxisMasterAxiStreamMasterType
array(natural range <> ) of AxiStreamConfigType AxiStreamConfigArray
INPUT_PIPE_STAGES_Ginteger := 0
out sAxisSlaveAxiStreamSlaveType
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
out mAxisMasterAxiStreamMasterType
NUM_SLAVES_Ginteger range 1 to 32:= 4
INT_PIPE_STAGES_Gnatural range 0 to 16:= 0
in mAxisSlaveAxiStreamSlaveType
in sAxisMastersAxiStreamMasterArray( NUM_SLAVES_G- 1 downto 0)
in sAxisMasterAxiStreamMasterType
TUserModeType TUSER_MODE_C
in mAxisSlaveAxiStreamSlaveType
array(natural range <> ) of AxiStreamMasterType AxiStreamMasterArray
out sAxisSlavesAxiStreamSlaveArray( NUM_SLAVES_G- 1 downto 0)
natural range 0 to 8 TUSER_BITS_C
out sAxisSlaveAxiStreamSlaveType
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
OUTPUT_PIPE_STAGES_Ginteger := 0
in mAxisSlavesAxiStreamSlaveArray( NUM_MASTERS_G- 1 downto 0)
AxiLiteWriteMasterType :=(awaddr =>( others => '0'),awprot =>( others => '0'),awvalid => '0',wdata =>( others => '0'),wstrb =>( others => '1'),wvalid => '0',bready => '1') AXI_LITE_WRITE_MASTER_INIT_C
in sAxisMasterAxiStreamMasterType
out mAxisMasterAxiStreamMasterType
in mAxisSlaveAxiStreamSlaveType
array(natural range <> ) of slv( 7 downto 0) Slv8Array
TDEST_ROUTES_Gslv8Array :=( 0=> "--------")
OUTPUT_PIPE_STAGES_Ginteger := 0
MASTER_AXI_CONFIG_GAxiStreamConfigType := AXI_STREAM_CONFIG_INIT_C
INPUT_PIPE_STAGES_Ginteger := 0
in mAxisSlaveAxiStreamSlaveType
NUM_MASTERS_Ginteger range 1 to 32:= 12
PIPE_STAGES_Ginteger range 0 to 16:= 0
MODE_Gstring := "INDEXED"