If the AXIS_WIDTH parameter setting for the
DOUT_WORDS field is 0, then the DOUT_WORDS
input takes one value per
block, and this specifies the number of LLR values transferred on all lanes of
DOUT
.
If the AXIS_WIDTH parameter setting for DOUT_WORDS field is 1, then the number of
bytes transferred per cycle on DOUT
is specified on a transfer-by-transfer
basis by DOUT_WORDS
. To aid integration the TLAST
input
for this interface should be driven with a 1 for the last transfer of a block. This input
is not used to synchronize output, but it is checked and an interrupt is available to
signal inconsistencies.
DOUT_WORDS
is 0, then there
is only one transfer per block and so it is expected that TLAST
is driven
High on each transfer on this stream.
If the data interface is configured for
soft output (that is, a decode operation is being performed and hard_op is 0), then the
DOUT_WORDS
stream specifies the number of LLR values in the
respective lane of output.
If DOUT
is configured for hard output, then
DOUT_WORDS
specifies the number of bytes of hard output transferred per
cycle (only multiples of 8 bits can be specified). In both cases, data words in DOUT
lanes are always in the least
significant bytes of the DOUT
lane, for example, if two words are
provided in lane 0, they are in bits 7:0 and 15:8.
DOUT_WORDS
is internally overridden to ensure
that multiple blocks do not straddle a transaction on DOUT
(the final transaction is shortened, if necessary, in the same way as for DIN_WORDS
as described in Data Input Control AXI4-Stream Slave (DIN_WORDS
)). As such it is
possible to keep DOUT_WORDS
constant over a block even if
the block length is not a multiple of DOUT_WORDS
.
If operating out-of-order, with AXIS_WIDTH.DOUT_WORDS = 1, and mixed block
lengths, then the STATUS
output can be used to determine the number of
outputs, to set TLAST
(if used). The STATUS
output can
also be used to set DOUT_WORDS
if it is being changed on a block-by-block
basis. If TLAST
is not being used, then TLAST
interrupts
can be masked on this interface to avoid unnecessary interrupts (see Interrupt Mask
Register).
AXIS_WIDTH. DOUT_WORDS Setting | Bit Width for Each AXIS_WIDTH.DOUT Setting | Field | Bits | Range | Description | ||
---|---|---|---|---|---|---|---|
4x | 2x | 1x | |||||
0 | 8b | 8b | 8b | words | 7:0 | 0-16 | Number of output data words in dout(127...…0) |
Unused | Number of output data words in dout(255...…128) | ||||||
Unused | Number of output data words in dout(383…...256) | ||||||
Number of output data words in dout(511...…384) | |||||||
1 | 32b | 16b | 8b | words(0) | 7:0 | 0-16 | Number of output data words in dout(127...…0) |
Unused | words (1) | 15:8 | 0-16 | Number of output data words in dout(255...…128) | |||
Unused | words (2) | 23:16 | 0-16 | Number of output data words in dout(383…...256) | |||
words (3) | 31:24 | 0-16 | Number of output data words in dout(511...…384) |