Entity: AxiRssiCoreWrapper
- File: AxiRssiCoreWrapper.vhd
Diagram
Description
Title : RSSI Protocol: https://confluence.slac.stanford.edu/x/1IyfD
Company : SLAC National Accelerator Laboratory
Description: Wrapper for RSSI + AXIS packetizer
This file is part of 'SLAC Firmware Standard Library'. It is subject to the license terms in the LICENSE.txt file found in the top-level directory of this distribution and at: https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. No part of 'SLAC Firmware Standard Library', including this file, may be copied, modified, propagated, or distributed except according to
the terms contained in the LICENSE.txt file.
Generics
Generic name | Type | Value | Description |
---|---|---|---|
TPD_G | time | 1 ns | |
SERVER_G | boolean | true | ! Module is server or client |
JUMBO_G | boolean | false | ! true=8192 byte payload, false=1024 byte payload |
AXI_CONFIG_G | AxiConfigType | ! Defines the AXI configuration but ADDR_WIDTH_C should be defined as the space for RSSI and "maybe" not the entire memory address space available | |
APP_STREAMS_G | positive | 1 | AXIS Configurations |
APP_STREAM_ROUTES_G | Slv8Array | (0 => "--------") | |
APP_AXIS_CONFIG_G | AxiStreamConfigArray | ||
TSP_AXIS_CONFIG_G | AxiStreamConfigType | ||
CLK_FREQUENCY_G | real | 156.25E+6 | In units of Hz |
TIMEOUT_UNIT_G | real | 1.0E-3 | In units of seconds |
ACK_TOUT_G | positive | 25 | unit depends on TIMEOUT_UNIT_G |
RETRANS_TOUT_G | positive | 50 | unit depends on TIMEOUT_UNIT_G (Recommended >= MAX_NUM_OUTS_SEG_G*Data segment transmission time) |
NULL_TOUT_G | positive | 200 | unit depends on TIMEOUT_UNIT_G (Recommended >= 4*RETRANS_TOUT_G) |
MAX_RETRANS_CNT_G | positive | 8 | Counters |
MAX_CUM_ACK_CNT_G | positive | 3 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
clk | in | sl | Clock and Reset |
rst | in | sl | |
txAxiOffset | in | slv(63 downto 0) | ! Used to apply an address offset to the master AXI transactions |
txAxiWriteMaster | out | AxiWriteMasterType | |
txAxiWriteSlave | in | AxiWriteSlaveType | |
txAxiReadMaster | out | AxiReadMasterType | |
txAxiReadSlave | in | AxiReadSlaveType | |
rxAxiOffset | in | slv(63 downto 0) | ! Used to apply an address offset to the master AXI transactions |
rxAxiWriteMaster | out | AxiWriteMasterType | |
rxAxiWriteSlave | in | AxiWriteSlaveType | |
rxAxiReadMaster | out | AxiReadMasterType | |
rxAxiReadSlave | in | AxiReadSlaveType | |
sAppAxisMasters | in | AxiStreamMasterArray(APP_STREAMS_G-1 downto 0) | SSI Application side |
sAppAxisSlaves | out | AxiStreamSlaveArray(APP_STREAMS_G-1 downto 0) | |
mAppAxisMasters | out | AxiStreamMasterArray(APP_STREAMS_G-1 downto 0) | |
mAppAxisSlaves | in | AxiStreamSlaveArray(APP_STREAMS_G-1 downto 0) | |
sTspAxisMaster | in | AxiStreamMasterType | SSI Transport side |
sTspAxisSlave | out | AxiStreamSlaveType | |
mTspAxisMaster | out | AxiStreamMasterType | |
mTspAxisSlave | in | AxiStreamSlaveType | |
openRq | in | sl | High level Application side interface |
closeRq | in | sl | |
inject | in | sl | |
linkUp | out | sl | |
sAxilReadMaster | in | AxiLiteReadMasterType | Optional AXI-Lite Register Interface |
sAxilReadSlave | out | AxiLiteReadSlaveType | |
sAxilWriteMaster | in | AxiLiteWriteMasterType | |
sAxilWriteSlave | out | AxiLiteWriteSlaveType |
Signals
Name | Type | Description |
---|---|---|
maxSegs | slv(MAX_SEGS_BITS_C-1 downto 0) | |
maxObSegSize | slv(15 downto 0) | |
ileaveRearb | slv(11 downto 0) | |
status | slv(6 downto 0) | |
rssiNotConnected | sl | |
rssiConnected | sl | |
rxMasters | AxiStreamMasterArray(APP_STREAMS_G-1 downto 0) | |
rxSlaves | AxiStreamSlaveArray(APP_STREAMS_G-1 downto 0) | |
depacketizerMasters | AxiStreamMasterArray(1 downto 0) | |
depacketizerSlaves | AxiStreamSlaveArray(1 downto 0) | |
packetizerMasters | AxiStreamMasterArray(1 downto 0) | |
packetizerSlaves | AxiStreamSlaveArray(1 downto 0) | |
txMasters | AxiStreamMasterArray(APP_STREAMS_G-1 downto 0) | |
txSlaves | AxiStreamSlaveArray(APP_STREAMS_G-1 downto 0) |
Constants
Name | Type | Value | Description |
---|---|---|---|
PACKETIZER_AXIS_CONFIG_C | AxiStreamConfigType | ( TSTRB_EN_C => false, TDATA_BYTES_C => 8, TDEST_BITS_C => 8, TID_BITS_C => 8, TKEEP_MODE_C => TKEEP_COMP_C, TUSER_BITS_C => 8, TUSER_MODE_C => TUSER_FIRST_LAST_C) |
|
MAX_SEG_SIZE_C | positive | ite(JUMBO_G, 8192, 1024) |
|
MAX_SEGS_BITS_C | positive | bitSize(MAX_SEG_SIZE_C) |
Processes
- unnamed: ( clk )
Instantiations
- U_AxiStreamMux: surf.AxiStreamMux
- U_Packetizer: surf.AxiStreamPacketizer2
- U_RssiCore: surf.AxiRssiCore
- U_Depacketizer: surf.AxiStreamDepacketizer2
- U_AxiStreamDeMux: surf.AxiStreamDeMux