Entity: AxiStreamBatcher
- File: AxiStreamBatcher.vhd
Diagram
Description
Title : AxiStream BatcherV1 Protocol: https://confluence.slac.stanford.edu/x/th1SDg
Company : SLAC National Accelerator Laboratory
Description: The firmware batcher combines sub-frames into a larger super-frame
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 | |
MAX_NUMBER_SUB_FRAMES_G | positive | 32 | Units of sub-frames |
SUPER_FRAME_BYTE_THRESHOLD_G | natural | 8192 | Units of bytes |
MAX_CLK_GAP_G | natural | 256 | Units of clock cycles |
AXIS_CONFIG_G | AxiStreamConfigType | ||
INPUT_PIPE_STAGES_G | natural | 0 | |
OUTPUT_PIPE_STAGES_G | natural | 1 |
Ports
Port name | Direction | Type | Description |
---|---|---|---|
axisClk | in | sl | Clock and Reset |
axisRst | in | sl | |
forceTerm | in | sl | External Control Interface |
superFrameByteThreshold | in | slv(31 downto 0) | |
maxSubFrames | in | slv(15 downto 0) | |
maxClkGap | in | slv(31 downto 0) | |
idle | out | sl | |
sAxisMaster | in | AxiStreamMasterType | AXIS Interfaces |
sAxisSlave | out | AxiStreamSlaveType | |
mAxisMaster | out | AxiStreamMasterType | |
mAxisSlave | in | AxiStreamSlaveType |
Signals
Name | Type | Description |
---|---|---|
r | RegType | |
rin | RegType | |
rxMaster | AxiStreamMasterType | |
rxSlave | AxiStreamSlaveType | |
txMaster | AxiStreamMasterType | |
txSlave | AxiStreamSlaveType |
Constants
Name | Type | Value | Description |
---|---|---|---|
AXIS_WORD_SIZE_C | positive | AXIS_CONFIG_G.TDATA_BYTES_C | Units of bytes |
WIDTH_C | slv(3 downto 0) | toSlv(log2(AXIS_WORD_SIZE_C/2), 4) |
|
REG_INIT_C | RegType | ( superFrameByteThreshold => toSlv(SUPER_FRAME_BYTE_THRESHOLD_G, 32), superByteCnt => toSlv(AXIS_WORD_SIZE_C, 32), subByteCnt => (others => '0'), maxSubFrames => toSlv(MAX_NUMBER_SUB_FRAMES_G, 16), subFrameCnt => (others => '0'), maxClkGap => toSlv(MAX_CLK_GAP_G, 32), clkGapCnt => (others => '0'), superFrameByteThresholdDet => '0', maxSubFramesDet => '0', forceTerm => '0', seqCnt => (others => '0'), tDest => (others => '0'), tUserFirst => (others => '0'), tUserLast => (others => '0'), chunkCnt => 1, rxSlave => AXI_STREAM_SLAVE_INIT_C, txMaster => AXI_STREAM_MASTER_INIT_C, state => HEADER_S) |
Types
Name | Type | Description |
---|---|---|
StateType | ( HEADER_S, SUB_FRAME_S, TAIL_S, CHUNK_TAIL_2BYTE_S, CHUNK_TAIL_4BYTE_S, GAP_S) |
|
RegType |
Processes
- comb: ( axisRst, forceTerm, maxClkGap, maxSubFrames, r, rxMaster,
superFrameByteThreshold, txSlave )
- seq: ( axisClk )
Instantiations
- U_Input: surf.AxiStreamPipeline
Description
Input pipeline
- U_Output: surf.AxiStreamPipeline