Entity: SrpV3AxiLite

Diagram

time TPD_G natural range 0 to 16 INT_PIPE_STAGES_G natural range 0 to 16 PIPE_STAGES_G positive range 1 to 511 FIFO_PAUSE_THRESH_G string FIFO_SYNTH_MODE_G positive range 1 to 511 TX_VALID_THOLD_G boolean TX_VALID_BURST_MODE_G boolean SLAVE_READY_EN_G boolean GEN_SYNC_FIFO_G real AXIL_CLK_FREQ_G AxiStreamConfigType AXI_STREAM_CONFIG_G sl sAxisClk sl sAxisRst AxiStreamMasterType sAxisMaster sl mAxisClk sl mAxisRst AxiStreamSlaveType mAxisSlave sl axilClk sl axilRst AxiLiteWriteSlaveType mAxilWriteSlave AxiLiteReadSlaveType mAxilReadSlave AxiStreamSlaveType sAxisSlave AxiStreamCtrlType sAxisCtrl AxiStreamMasterType mAxisMaster AxiLiteWriteMasterType mAxilWriteMaster AxiLiteReadMasterType mAxilReadMaster

Description


Title : SRPv3 Protocol: https://confluence.slac.stanford.edu/x/cRmVD

Company : SLAC National Accelerator Laboratory

Description: SLAC Register Protocol Version 3, AXI-Lite Interface

Note: This module only supports 32-bit aligned addresses and 32-bit transactions. For non 32-bit aligned addresses or non 32-bit transactions, use

the SrpV3Axi.vhd module with the AxiToAxiLite.vhd bridge

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
INT_PIPE_STAGES_G natural range 0 to 16 1
PIPE_STAGES_G natural range 0 to 16 1
FIFO_PAUSE_THRESH_G positive range 1 to 511 256
FIFO_SYNTH_MODE_G string "inferred"
TX_VALID_THOLD_G positive range 1 to 511 500 >1 = only when frame ready or # entries
TX_VALID_BURST_MODE_G boolean true only used in VALID_THOLD_G>1
SLAVE_READY_EN_G boolean false
GEN_SYNC_FIFO_G boolean false
AXIL_CLK_FREQ_G real 156.25E+6 units of Hz
AXI_STREAM_CONFIG_G AxiStreamConfigType

Ports

Port name Direction Type Description
sAxisClk in sl AXIS Slave Interface (sAxisClk domain)
sAxisRst in sl
sAxisMaster in AxiStreamMasterType
sAxisSlave out AxiStreamSlaveType
sAxisCtrl out AxiStreamCtrlType
mAxisClk in sl AXIS Master Interface (mAxisClk domain)
mAxisRst in sl
mAxisMaster out AxiStreamMasterType
mAxisSlave in AxiStreamSlaveType
axilClk in sl Master AXI-Lite Interface (axilClk domain)
axilRst in sl
mAxilWriteMaster out AxiLiteWriteMasterType
mAxilWriteSlave in AxiLiteWriteSlaveType
mAxilReadMaster out AxiLiteReadMasterType
mAxilReadSlave in AxiLiteReadSlaveType

Signals

Name Type Description
r RegType
rin RegType
axisMaster AxiStreamMasterType
axisSlave AxiStreamSlaveType
sCtrl AxiStreamCtrlType
rxMaster AxiStreamMasterType
rxSlave AxiStreamSlaveType
rxCtrl AxiStreamCtrlType
rxTLastTUser slv(7 downto 0)
txSlave AxiStreamSlaveType
rst sl
sRst sl
rxRst sl

Constants

Name Type Value Description
AXIS_CONFIG_C AxiStreamConfigType ssiAxiStreamConfig(4,
TKEEP_COMP_C,
TUSER_FIRST_LAST_C,
8)
TIMEOUT_C natural (getTimeRatio(AXIL_CLK_FREQ_G,
10.0) - 1)
100 ms timeout
SRP_VERSION_C slv(7 downto 0) x"03"
NON_POSTED_READ_C slv(1 downto 0) "00"
NON_POSTED_WRITE_C slv(1 downto 0) "01"
POSTED_WRITE_C slv(1 downto 0) "10"
NULL_C slv(1 downto 0) "11"
REG_INIT_C RegType ( timer => 0,
hdrCnt => (others => '0'),
remVer => (others => '0'),
opCode => (others => '0'),
prot => (others => '0'),
timeoutSize => (others => '0'),
timeoutCnt => (others => '0'),
tid => (others => '0'),
tidDly => (others => '1'),
addr => (others => '0'),
reqSize => (others => '0'),
cnt => (others => '0'),
cntSize => (others => '0'),
memResp => (others => '0'),
timeout => '0',
eofe => '0',
frameError => '0',
verMismatch => '0',
reqSizeError => '0',
ignoreMemResp => '0',
rxRst => '0',
overflowDet => '0',
skip => '0',
mAxilWriteMaster => AXI_LITE_WRITE_MASTER_INIT_C,
mAxilReadMaster => AXI_LITE_READ_MASTER_INIT_C,
rxSlave => AXI_STREAM_SLAVE_INIT_C,
txMaster => AXI_STREAM_MASTER_INIT_C,
state => IDLE_S)

Types

Name Type Description
StateType ( IDLE_S,
HDR_REQ0_S,
HDR_REQ1_S,
HDR_REQ2_S,
HDR_REQ3_S,
HDR_RESP_S,
FOOTER_S,
AXIL_RD_REQ_S,
AXIL_RD_RESP_S,
AXIL_WR_REQ_S,
AXIL_WR_RESP_S)
RegType

Processes

Instantiations