Throughput and Latency for Soft-Decision FEC v1.1

Vivado Design Suite Release 2021.2

Table of Contents

LDPC Throughput and Latency

Throughput is measured in terms of information bits per second, including any punctured bits. In the following sections, the throughput has been measured by inputting the data as quickly as possible. The tables provide the time of the start and end of the first input block and the start and end of the output data of the first, 84th, 96th and 100th blocks, relative to the start of the first block that was input. Initial Latency is the time between the last transfer of the first input block and the last output of the first output block. The assumption here is that the LDPC code parameters and shared LDPC code parameters in the SD-FEC hard block are already configured for the particular code. Final throughput is the throughput from blocks 84 to 96. Note that the number 12 has been used, as this is a multiple of 1, 2, 3 and 4, which is the number of blocks that can be decoded simultaneously. The assumptions are that the output is not held up and that the decoder measurement is performed with hard output that does not include parity.

Note that the latency of later blocks is likely to be greater than the initial latency due to input buffering holding additional blocks, and can often be reduced by feeding in the blocks at a steady rate, commensurate with the throughput, to avoid them building up in the input buffer. It is also possible, for some codes, to have a reduced latency with a small reduction in throughput, because of the way the core schedules multiple blocks, and lower throughput can mean fewer blocks interleaved and lower latency as a result.

In the following tables, clock frequencies of 667 MHz on core_clk and 400 MHz on other clocks are assumed, and the decoder uses eight iterations. However, for details on the clock frequency supported by a device and resource utilization, visit the Performance and Resource Utilization web page. Packing is assumed to be enabled; if disabled, then for codes with PSIZE ≤ 64 there is likely to be a significant throughput reduction.

5G New Radio - Decode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
5g_graph1_kb22_l5_p384 10368 8448 0.815 384 0 1617.5 8255.0 8417.5 331397.5 331560.0 378252.5 378415.0 392717.5 392880.0 6.80 2.164
5g_graph1_kb22_l5_p256 6912 5632 0.815 256 0 1077.5 5892.5 6000.0 180987.5 181095.0 206150.0 206257.5 211475.0 211582.5 4.92 2.686
5g_graph1_kb22_l5_p128 3456 2816 0.815 128 0 537.5 3135.0 3187.5 85555.0 85607.5 97442.5 97495.0 100167.5 100220.0 2.65 2.843
5g_graph1_kb22_l5_p64 1728 1408 0.815 64 0 267.5 2007.5 2037.5 45565.0 45595.0 51902.5 51932.5 53567.5 53597.5 1.77 2.666
5g_graph1_kb22_l5_p32 864 704 0.815 32 0 132.5 1500.0 1525.0 30317.5 30345.0 34562.5 34590.0 35860.0 35887.5 1.39 1.990
5g_graph1_kb22_l46_p384 26112 8448 0.324 384 0 4077.5 23777.5 23940.0 1665807.5 1665970.0 1903210.0 1903372.5 1982345.0 1982507.5 19.86 0.427
5g_graph1_kb22_l46_p256 17408 5632 0.324 256 0 2717.5 14142.5 14250.0 960965.0 961072.5 1097855.0 1097962.5 1143485.0 1143592.5 11.53 0.494
5g_graph1_kb22_l46_p128 8704 2816 0.324 128 0 1357.5 12997.5 13050.0 340260.0 340312.5 388222.5 388275.0 405645.0 405697.5 11.69 0.705
5g_graph1_kb22_l46_p64 4352 1408 0.324 64 0 677.5 11015.0 11045.0 227337.5 227367.5 259412.5 259442.5 269407.5 269437.5 10.37 0.527
5g_graph1_kb22_l46_p32 2176 704 0.324 32 0 337.5 9600.0 9627.5 194720.0 194747.5 222332.5 222360.0 231205.0 231232.5 9.29 0.306
5g_graph2_kb10_l7_p384 6528 3840 0.588 384 0 1017.5 6440.0 6512.5 245782.5 245855.0 280595.0 280667.5 291747.5 291820.0 5.50 1.324
5g_graph2_kb10_l7_p256 4352 2560 0.588 256 0 677.5 4477.5 4525.0 109955.0 110002.5 125307.5 125355.0 129547.5 129595.0 3.85 2.001
5g_graph2_kb10_l7_p128 2176 1280 0.588 128 0 337.5 2562.5 2585.0 54382.5 54405.0 61947.5 61970.0 64142.5 64165.0 2.25 2.030
5g_graph2_kb10_l7_p64 1088 640 0.588 64 0 167.5 1750.0 1762.5 34217.5 34230.0 39002.5 39015.0 40545.0 40555.0 1.59 1.605
5g_graph2_kb10_l7_p32 544 320 0.588 32 0 82.5 1517.5 1527.5 29260.0 29270.0 33382.5 33392.5 34752.5 34762.5 1.44 0.931
5g_graph2_kb10_l42_p384 19968 3840 0.192 384 0 3117.5 18747.5 18820.0 1316535.0 1316607.5 1504167.5 1504240.0 1566712.5 1566785.0 15.70 0.246
5g_graph2_kb10_l42_p256 13312 2560 0.192 256 0 2077.5 14037.5 14085.0 490017.5 490065.0 559030.0 559077.5 581315.0 581362.5 12.01 0.445
5g_graph2_kb10_l42_p128 6656 1280 0.192 128 0 1037.5 10272.5 10295.0 211375.0 211397.5 240950.0 240972.5 249905.0 249927.5 9.26 0.519
5g_graph2_kb10_l42_p64 3328 640 0.192 64 0 517.5 8682.5 8695.0 175220.0 175230.0 199937.5 199950.0 207787.5 207800.0 8.18 0.311
5g_graph2_kb10_l42_p32 1664 320 0.192 32 0 257.5 8245.0 8255.0 167365.0 167375.0 191117.5 191125.0 198770.0 198777.5 8.00 0.162

5G New Radio - Encode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
5g_graph1_kb22_l5_p384 10368 8448 0.815 384 0 162.5 1470.0 1670.0 61280.0 61480.0 69975.0 70175.0 72672.5 72872.5 1.51 11.659
5g_graph1_kb22_l5_p256 6912 5632 0.815 256 0 107.5 1240.0 1372.5 26395.0 26527.5 30100.0 30232.5 31275.0 31407.5 1.26 18.241
5g_graph1_kb22_l5_p128 3456 2816 0.815 128 0 52.5 675.0 740.0 12255.0 12320.0 13960.0 14025.0 14520.0 14585.0 0.69 19.819
5g_graph1_kb22_l5_p64 1728 1408 0.815 64 0 25.0 440.0 480.0 7625.0 7662.5 8677.5 8715.0 8995.0 9032.5 0.45 16.053
5g_graph1_kb22_l5_p32 864 704 0.815 32 0 12.5 345.0 380.0 5862.5 5897.5 6662.5 6697.5 6915.0 6947.5 0.37 10.560
5g_graph1_kb22_l46_p384 26112 8448 0.324 384 0 162.5 2625.0 3132.5 231830.0 232337.5 264967.5 265475.0 276015.0 276522.5 2.97 3.059
5g_graph1_kb22_l46_p256 17408 5632 0.324 256 0 107.5 1367.5 1705.0 104702.5 105040.0 119642.5 119980.0 124622.5 124960.0 1.60 4.524
5g_graph1_kb22_l46_p128 8704 2816 0.324 128 0 52.5 1657.5 1825.0 44485.0 44652.5 50780.0 50947.5 52720.0 52887.5 1.77 5.368
5g_graph1_kb22_l46_p64 4352 1408 0.324 64 0 25.0 1387.5 1485.0 27432.5 27532.5 31292.5 31392.5 32580.0 32680.0 1.46 4.377
5g_graph1_kb22_l46_p32 2176 704 0.324 32 0 12.5 1145.0 1240.0 22450.0 22547.5 25600.0 25697.5 26650.0 26747.5 1.23 2.682
5g_graph2_kb10_l7_p384 6528 3840 0.588 384 0 72.5 1030.0 1155.0 43677.5 43802.5 49872.5 49997.5 51770.0 51895.0 1.08 7.438
5g_graph2_kb10_l7_p256 4352 2560 0.588 256 0 47.5 842.5 925.0 17312.5 17395.0 19740.0 19822.5 20547.5 20630.0 0.88 12.655
5g_graph2_kb10_l7_p128 2176 1280 0.588 128 0 22.5 467.5 507.5 8555.0 8595.0 9747.5 9787.5 10135.0 10175.0 0.48 12.881
5g_graph2_kb10_l7_p64 1088 640 0.588 64 0 10.0 355.0 380.0 6205.0 6230.0 7065.0 7090.0 7330.0 7352.5 0.37 8.930
5g_graph2_kb10_l7_p32 544 320 0.588 32 0 5.0 317.5 337.5 5475.0 5495.0 6225.0 6245.0 6462.5 6482.5 0.33 5.120
5g_graph2_kb10_l42_p384 19968 3840 0.192 384 0 72.5 1922.5 2310.0 159662.5 160050.0 182470.0 182857.5 190072.5 190460.0 2.24 2.020
5g_graph2_kb10_l42_p256 13312 2560 0.192 256 0 47.5 1530.0 1787.5 65145.0 65402.5 74415.0 74672.5 77505.0 77762.5 1.74 3.314
5g_graph2_kb10_l42_p128 6656 1280 0.192 128 0 22.5 1355.0 1482.5 27922.5 28050.0 31855.0 31982.5 33167.5 33295.0 1.46 3.906
5g_graph2_kb10_l42_p64 3328 640 0.192 64 0 10.0 1037.5 1112.5 20410.0 20485.0 23282.5 23357.5 24240.0 24315.0 1.10 2.674
5g_graph2_kb10_l42_p32 1664 320 0.192 32 0 5.0 967.5 1037.5 18900.0 18972.5 21555.0 21627.5 22440.0 22512.5 1.03 1.446

In 5G NR mode, the 5G support logic generates and downloads LDPC Code and Shared LDPC Code Parameters for the code definition applied through the CTRL interface. The download latency in each case is provided in the table below. For throughput enhancement, write the code definitions through the CTRL interface as early as possible compared to the input data to minimize the impact of code latency and enhance throughput. However, care must be taken not to apply more CTRL words than the corresponding code blocks in a given transmission time interval.

The 5G support logic also keeps log of, at most, 14 codes downloaded to the SD-FEC core at any given time to avoid the need to regenerate and re-download the same code.

Code Type Latency of Code Download (Cycles)
bg kb mb Z (PSIZE)
0 22 46 2 ≤ Z ≤ 32 852
0 22 46 32 < Z ≤ 64 651
0 22 46 64 < Z ≤ 384 554
1 10 42 2 ≤ Z ≤ 32 631
1 10 42 32 < Z ≤ 64 472
1 10 42 64 < Z ≤ 384 394
2 9 42 2 ≤ Z ≤ 32 606
2 9 42 32 < Z ≤ 64 442
2 9 42 64 < Z ≤ 128 384
3 8 42 2 ≤ Z ≤ 32 614
3 8 42 32 < Z ≤ 64 456
3 8 42 64 < Z ≤ 128 376
4 6 42 2 ≤ Z ≤ 32 572
4 6 42 32 < Z ≤ 64 432
4 6 42 64 < Z ≤ 128 351

WiFi 802.11ac - Decode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
wifi802_11_cr1_2_648 648 324 0.500 27 0 100.0 2560.0 2570.0 50952.5 50965.0 58152.5 58165.0 60542.5 60552.5 2.47 0.540
wifi802_11_cr2_3_648 648 432 0.667 27 0 100.0 2022.5 2040.0 39807.5 39825.0 45422.5 45440.0 47292.5 47310.0 1.94 0.923
wifi802_11_cr3_4_648 648 486 0.750 27 0 100.0 1622.5 1642.5 31480.0 31500.0 35915.0 35935.0 37362.5 37382.5 1.54 1.315
wifi802_11_cr5_6_648 648 540 0.833 27 0 100.0 1235.0 1257.5 24795.0 24820.0 28270.0 28292.5 29367.5 29390.0 1.16 1.866
wifi802_11_cr1_2_1296 1296 648 0.500 54 0 200.0 3017.5 3035.0 60440.0 60455.0 68950.0 68965.0 71712.5 71727.5 2.83 0.914
wifi802_11_cr2_3_1296 1296 864 0.667 54 0 200.0 2537.5 2557.5 52515.0 52535.0 59895.0 59915.0 62197.5 62217.5 2.36 1.405
wifi802_11_cr3_4_1296 1296 972 0.750 54 0 200.0 2427.5 2452.5 63812.5 63835.0 72755.0 72777.5 75035.0 75057.5 2.25 1.304
wifi802_11_cr5_6_1296 1296 1080 0.833 54 0 200.0 1677.5 1705.0 45290.0 45315.0 51660.0 51687.5 53902.5 53930.0 1.50 2.034
wifi802_11_cr1_2_1944 1944 972 0.500 81 0 302.5 3430.0 3447.5 88540.0 88557.5 101050.0 101067.5 106470.0 106487.5 3.15 0.932
wifi802_11_cr2_3_1944 1944 1296 0.667 81 0 302.5 3302.5 3327.5 89710.0 89737.5 102420.0 102445.0 107547.5 107572.5 3.02 1.224
wifi802_11_cr3_4_1944 1944 1458 0.750 81 0 302.5 3032.5 3060.0 86817.5 86845.0 99075.0 99102.5 103277.5 103305.0 2.76 1.427
wifi802_11_cr5_6_1944 1944 1620 0.833 81 0 302.5 2217.5 2247.5 81927.5 81957.5 93537.5 93567.5 97352.5 97385.0 1.94 1.674

WiFi 802.11ac - Encode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
wifi802_11_cr1_2_648 648 324 0.500 27 0 5.0 540.0 570.0 11380.0 11412.5 12982.5 13012.5 13515.0 13545.0 0.56 2.430
wifi802_11_cr2_3_648 648 432 0.667 27 0 7.5 367.5 400.0 7930.0 7962.5 9037.5 9070.0 9405.0 9437.5 0.39 4.681
wifi802_11_cr3_4_648 648 486 0.750 27 0 7.5 362.5 392.5 6937.5 6967.5 7900.0 7930.0 8210.0 8242.5 0.39 6.059
wifi802_11_cr5_6_648 648 540 0.833 27 0 10.0 272.5 302.5 4902.5 4932.5 5572.5 5605.0 5785.0 5817.5 0.29 9.636
wifi802_11_cr1_2_1296 1296 648 0.500 54 0 12.5 655.0 690.0 13147.5 13180.0 15000.0 15035.0 15612.5 15645.0 0.68 4.192
wifi802_11_cr2_3_1296 1296 864 0.667 54 0 15.0 520.0 555.0 10107.5 10140.0 11525.0 11557.5 11985.0 12020.0 0.54 7.314
wifi802_11_cr3_4_1296 1296 972 0.750 54 0 17.5 542.5 577.5 10027.5 10060.0 11430.0 11465.0 11882.5 11917.5 0.56 8.302
wifi802_11_cr5_6_1296 1296 1080 0.833 54 0 20.0 425.0 460.0 7487.5 7522.5 8527.5 8562.5 8850.0 8885.0 0.44 12.462
wifi802_11_cr1_2_1944 1944 972 0.500 81 0 17.5 887.5 925.0 17657.5 17695.0 20155.0 20192.5 20987.5 21025.0 0.91 4.670
wifi802_11_cr2_3_1944 1944 1296 0.667 81 0 25.0 775.0 812.5 14977.5 15015.0 17087.5 17125.0 17777.5 17815.0 0.79 7.371
wifi802_11_cr3_4_1944 1944 1458 0.750 81 0 27.5 722.5 760.0 13760.0 13797.5 15695.0 15732.5 16322.5 16360.0 0.73 9.042
wifi802_11_cr5_6_1944 1944 1620 0.833 81 0 30.0 655.0 692.5 12272.5 12310.0 13990.0 14027.5 14527.5 14565.0 0.66 11.319

DOCSIS 3.1 - Decode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
cablemodem_56 1120 840 0.750 56 0 172.5 1662.5 1680.0 42552.5 42570.0 48552.5 48570.0 51065.0 51085.0 1.51 1.680
cablemodem_180 5940 5040 0.848 180 0 927.5 6817.5 6917.5 268285.0 268382.5 306337.5 306435.0 318592.5 318690.0 5.99 1.589
cablemodem_360 16200 14400 0.889 360 0 2530.0 10002.5 10282.5 691765.0 692045.0 790332.5 790612.5 823190.0 823470.0 7.75 1.753

DOCSIS 3.1 - Encode

Code Name N K Rate (K/N) P Size Input Output Performance
First Block First Block 84th Block 96th Block 100th Block Initial Latency (μs) Final Throughput (Gb/s)
Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns) Start (ns) End (ns)
cablemodem_56 1120 840 0.750 56 0 15.0 315.0 340.0 5355.0 5380.0 6092.5 6117.5 6325.0 6352.5 0.33 13.668
cablemodem_180 5940 5040 0.848 180 0 97.5 1150.0 1267.5 33415.0 33530.0 38130.0 38245.0 39660.0 39775.0 1.17 12.827
cablemodem_360 16200 14400 0.889 360 0 280.0 1390.0 1705.0 92400.0 92715.0 105557.5 105872.5 109942.5 110257.5 1.43 13.133

Turbo Decode Throughput

The figure below illustrates the maximum achievable Turbo Decode throughput for a given block size.

COPYRIGHT

Copyright 2021 Xilinx, Inc. Xilinx, the Xilinx logo, Alveo, Artix, ISE, Kintex, Spartan, Versal, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. Arm is a registered trademark of Arm Limited in the EU and other countries. All other trademarks are the property of their respective owners.

LEGAL INFORMATION: PLEASE READ

The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of Xilinx's limited warranty, please refer to Xilinx's Terms of Sale which can be viewed at https://www.xilinx.com/legal.htm#tos; IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be fail-safe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in such critical applications, please refer to Xilinx's Terms of Sale which can be viewed at https://www.xilinx.com/legal.htm#tos.