Data Input Control (DIN_WORDS) - 1.1 English

Soft-Decision FEC Integrated Block LogiCORE IP Product Guide (PG256)

Document ID
PG256
Release Date
2022-10-19
Version
1.1 English

If the AXIS_WIDTH register setting for DIN_WORDS is 0, then the DIN_WORDS input takes one value per block, and this specifies the number of LLR values transferred in all lanes of the DIN input (there is only one value that applies to all lanes). If the AXIS_WIDTH register setting for each transfer is 1, then the number of bytes transferred per cycle on DIN is specified by DIN_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 the input, but it is checked and an interrupt is available to signal inconsistencies.

Note: If DIN_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 input interface is configured for soft input (that is, a decode operation is being performed), then the LLR input words (DIN_WORDS) stream specifies the number of LLR values in the respective lane of input.

If DIN is configured for hard input (that is, an LDPC encode operation is being performed), then DIN_WORDS specifies the number of bytes of hard bits transferred per cycle. In both cases, data bytes in DIN lanes are always in the least significant bytes of the DIN lane, for example, if two bytes of soft or hard bits are provided in lane 0, they are in bits 7:0 and 15:8.

DIN_WORDS is internally overridden to ensure that multiple blocks do not straddle a transaction on DIN, and the final transaction is shortened, if necessary, by reducing the bytes transferred. For example, if the AXIS_WIDTH.DIN_WORDS setting is 0, such that a single value is used over the whole block, if the block is not a multiple of the DIN_WORDS value, then the last transfer is reduced to match the actual block size. Similarly, if four lanes are in use, and DIN_WORDS is 8, 4, 2, 1 on the respective lanes 0 to 3, and there are 13 words remaining, then 8 and 4 words are transferred on lanes 0 and 1, and one word on lane 2 and zero words on lane 3. As such it is possible to keep DIN_WORDS constant over a block even if the block length is not a multiple of DIN_WORDS.

Table 1. LLR Input AXI4-Stream Slave (DIN_WORDS) Interface Definition
AXIS_WIDTH. DIN_WORDS Setting Bit Width for Each AXIS_WIDTH.DIN Setting Field Bits Range Description
4x 2x 1x
0 8b 8b 8b words 7:0 0-16 Number of input data words in din(127…...0)
Unused Number of input data words in din(255...…128)
Unused Number of input data words in din(383...…256)
Number of input data words in din(511…...384)
1 32b 16b 8b words(0) 7:0 0-16 Number of input data words in din(127...…0)
Unused words (1) 15:8 0-16 Number of input data words in din(255...…128)
Unused words (2) 23:16 0-16 Number of input data words in din(383...…256)
words (3) 31:24 0-16 Number of input data words in din(511...…384)