Entity: AxiStreamScatterGather

Diagram

time TPD_G integer AXIS_SLAVE_FRAME_SIZE_G AxiStreamConfigType SLAVE_AXIS_CONFIG_G AxiStreamConfigType MASTER_AXIS_CONFIG_G sl axiClk sl axiRst AxiLiteReadMasterType axilReadMaster AxiLiteWriteMasterType axilWriteMaster AxiStreamMasterType sAxisMaster AxiStreamSlaveType mAxisSlave AxiStreamCtrlType mAxisCtrl AxiLiteReadSlaveType axilReadSlave AxiLiteWriteSlaveType axilWriteSlave AxiStreamSlaveType sAxisSlave AxiStreamCtrlType sAxisCtrl AxiStreamMasterType mAxisMaster

Description


Company : SLAC National Accelerator Laboratory

Description: Takes 6 APV bursts with 128 channels of data each and

transforms them into 128 "MultiSamples" with 6 samples each.

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
AXIS_SLAVE_FRAME_SIZE_G integer 129
SLAVE_AXIS_CONFIG_G AxiStreamConfigType
MASTER_AXIS_CONFIG_G AxiStreamConfigType

Ports

Port name Direction Type Description
axiClk in sl Master system clock, 125Mhz
axiRst in sl
axilReadMaster in AxiLiteReadMasterType (optional) Axi Bus for status and debug
axilReadSlave out AxiLiteReadSlaveType
axilWriteMaster in AxiLiteWriteMasterType
axilWriteSlave out AxiLiteWriteSlaveType
sAxisMaster in AxiStreamMasterType Input data
sAxisSlave out AxiStreamSlaveType
sAxisCtrl out AxiStreamCtrlType
mAxisMaster out AxiStreamMasterType longWordCount : out slv(7 downto 0); badWordCount : out slv(7 downto 0); longWords : out slv(15 downto 0); badWords : out slv(15 downto 0); Output data
mAxisSlave in AxiStreamSlaveType
mAxisCtrl in AxiStreamCtrlType

Signals

Name Type Description
ram RamType
txRamRdData slv(SLAVE_DATA_LENGTH_C-1 downto 0)
txFifoRdData sl
txFifoValid sl
r RegType
rin RegType
sSsiMaster SsiMasterType

Constants

Name Type Value Description
SEQUENCE_LENGTH_C integer MASTER_AXIS_CONFIG_G.TDATA_BYTES_C/SLAVE_AXIS_CONFIG_G.TDATA_BYTES_C
SLAVE_DATA_LENGTH_C integer SLAVE_AXIS_CONFIG_G.TDATA_BYTES_C*8
MASTER_DATA_LENGTH_C integer MASTER_AXIS_CONFIG_G.TDATA_BYTES_C*8
RAM_DEPTH_RAW_C integer AXIS_SLAVE_FRAME_SIZE_G * SEQUENCE_LENGTH_C * 2
RAM_ADDR_LENGTH_C integer bitSize(RAM_DEPTH_RAW_C)
RAM_DEPTH_C integer 2**RAM_ADDR_LENGTH_C
REG_INIT_C RegType ( rxRamWrEn => '0',
rxRamWrData => (others => '0'),
rxRamWrAddr => (others => '0'),
rxSofAddr => (others => '0'),
rxFifoWrEn => '0',
rxWordCount => (others => '0'),
rxFrameNumber => (others => '0'),
rxError => '0',
mSsiMaster => ssiMasterInit(MASTER_AXIS_CONFIG_G),
txRamRdAddr => (others => '0'),
txRamRdEn => '0',
txFifoRdEn => '0',
txWordCount => (others => '0'),
txFrameNumber => (others => '0'),
txSof => '1',
axilReadSlave => AXI_LITE_READ_SLAVE_INIT_C,
axilWriteSlave => AXI_LITE_WRITE_SLAVE_INIT_C,
longWordCount => (others => '0'),
badWordCount => (others => '0'),
longWords => (others => '0'),
badWords => (others => '0'))

Types

Name Type Description
RamType ----------------------------------------------------------------------------------------------- RAM -----------------------------------------------------------------------------------------------
RegType ------------------------------------------------------------------------------------------------

Processes

Instantiations

Description

Use fifo to indicate to TX side that a new frame is ready