Entity: AxiStreamGearbox

Diagram

time TPD_G boolean READY_EN_G natural PIPE_STAGES_G positive SIDE_BAND_WIDTH_G AxiStreamConfigType SLAVE_AXI_CONFIG_G AxiStreamConfigType MASTER_AXI_CONFIG_G sl axisClk sl axisRst AxiStreamMasterType sAxisMaster slv(SIDE_BAND_WIDTH_G-1 downto 0) sSideBand AxiStreamSlaveType mAxisSlave AxiStreamSlaveType sAxisSlave AxiStreamMasterType mAxisMaster slv(SIDE_BAND_WIDTH_G-1 downto 0) mSideBand

Description


Company : SLAC National Accelerator Laboratory

Description: Block to resize AXI Streams. Re-sizing is always little endian.

Resizer should not be used when interleaving tDests

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 General Configurations
READY_EN_G boolean true
PIPE_STAGES_G natural 0
SIDE_BAND_WIDTH_G positive 1 General purpose sideband
SLAVE_AXI_CONFIG_G AxiStreamConfigType AXI Stream Port Configurations
MASTER_AXI_CONFIG_G AxiStreamConfigType

Ports

Port name Direction Type Description
axisClk in sl Clock and reset
axisRst in sl
sAxisMaster in AxiStreamMasterType Slave Port
sSideBand in slv(SIDE_BAND_WIDTH_G-1 downto 0)
sAxisSlave out AxiStreamSlaveType
mAxisMaster out AxiStreamMasterType Master Port
mSideBand out slv(SIDE_BAND_WIDTH_G-1 downto 0)
mAxisSlave in AxiStreamSlaveType

Signals

Name Type Description
r RegType
rin RegType
pipeAxisMaster AxiStreamMasterType
pipeSideBand slv(SIDE_BAND_WIDTH_G-1 downto 0)
pipeAxisSlave AxiStreamSlaveType

Constants

Name Type Value Description
SLV_BYTES_C positive SLAVE_AXI_CONFIG_G.TDATA_BYTES_C
MST_BYTES_C positive MASTER_AXI_CONFIG_G.TDATA_BYTES_C
SLV_USER_C positive ite(SLAVE_AXI_CONFIG_G.TUSER_BITS_C /= 0,
SLAVE_AXI_CONFIG_G.TUSER_BITS_C,
1)
MST_USER_C positive ite(MASTER_AXI_CONFIG_G.TUSER_BITS_C /= 0,
MASTER_AXI_CONFIG_G.TUSER_BITS_C,
1)
WORD_MULTIPLE_C boolean (SLV_BYTES_C >= MST_BYTES_C and SLV_BYTES_C mod MST_BYTES_C = 0) or (MST_BYTES_C >= SLV_BYTES_C and MST_BYTES_C mod SLV_BYTES_C = 0)
TSTRB_EN_C boolean SLAVE_AXI_CONFIG_G.TSTRB_EN_C and MASTER_AXI_CONFIG_G.TSTRB_EN_C
TDEST_EN_C boolean (SLAVE_AXI_CONFIG_G.TDEST_BITS_C > 0) and (MASTER_AXI_CONFIG_G.TDEST_BITS_C > 0)
TID_EN_C boolean (SLAVE_AXI_CONFIG_G.TID_BITS_C > 0) and (MASTER_AXI_CONFIG_G.TID_BITS_C > 0)
TUSER_EN_C boolean (SLAVE_AXI_CONFIG_G.TUSER_BITS_C > 0) and (MASTER_AXI_CONFIG_G.TUSER_BITS_C > 0) and (SLAVE_AXI_CONFIG_G.TUSER_MODE_C /= TUSER_NONE_C) and (MASTER_AXI_CONFIG_G.TUSER_MODE_C /= TUSER_NONE_C)
TDEST_BITS_C natural ite(TDEST_EN_C,
minimum(SLAVE_AXI_CONFIG_G.TDEST_BITS_C,
MASTER_AXI_CONFIG_G.TDEST_BITS_C),
1)
TID_BITS_C natural ite(TID_EN_C,
minimum(SLAVE_AXI_CONFIG_G.TID_BITS_C,
MASTER_AXI_CONFIG_G.TID_BITS_C),
1)
TUSER_BITS_C natural ite(TUSER_EN_C,
minimum(SLAVE_AXI_CONFIG_G.TUSER_BITS_C,
MASTER_AXI_CONFIG_G.TUSER_BITS_C),
1)
MAX_C positive maximum(MST_BYTES_C,
SLV_BYTES_C)
MIN_C positive minimum(MST_BYTES_C,
SLV_BYTES_C)
SHIFT_WIDTH_C positive wordCount(MAX_C,
MIN_C) * MIN_C + MIN_C
REG_INIT_C RegType ( writeIndex => 0,
tValid => '0',
tData => (others => '0'),
tStrb => (others => '0'),
tKeep => (others => '0'),
tLast => '0',
tLastDly => '0',
tDest => (others => '0'),
tId => (others => '0'),
tUser => (others => '0'),
sideBand => (others => '0'),
sAxisSlave => AXI_STREAM_SLAVE_INIT_C)

Types

Name Type Description
RegType