LDPC Runtime Configuration - 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

The Vivado® IDE provides two methods to generate the code configuration parameters, either during IP core generation or through a Tcl interface. The latter is particularly useful when it is necessary to generate a wide range of codes, because it allows the parameter configuration to be analyzed, thereby establishing commonalities and minimizing the amount of parameter storage required. It can also be used to verify that any custom parameter generation method is generating the correct parameters for a particular code requirement.

IP Core Generation

The AXI4-Lite transactions required to configure the SD-FEC core at run-time are produced during IP generation. The options set in the Vivado IDE are imported by the standalone software driver and are also written to a command file for use with a programmable logic based controller; <ipinst>_trans.log. The IP Sources window displays all the generated output products for an IP core. The default output product directory for an IP core is in the project directory, <project_name>.srcs/sources_1/ip/<ipinst_name>. The command file is text and contains a list of address and data pairs in hexadecimal.

Tcl Interface

An additional Tcl script, <project_name>.srcs/sources_1/ip/<ipinst_name>/scripts/gen_ldpc_code_params.tcl is output during IP core generation which contains a helper function, gen_ldpc_code_params, which can be used to process the LDPC code definition file independent of the Vivado IDE. To make the function available in the Vivado Tcl shell, enter the following command:

source <project_name>.srcs/sources_1/ip/<ipinst_name>/scripts/gen_ldpc_code_params.tcl

The function requires a single argument of a code definition file and returns a Tcl dict structure containing the configuration parameters for the LDPC code parameters and the shared LDPC code parameters for each of the LDPC codes defined in the file.

The Tcl dict consists of a top-level key per code defined in the code definition file below which all the corresponding parameters are defined. The dict structure can be queried to obtain the configuration parameters for each code, for example:

set params [gen_ldpc_code_params <my_code_definition_file>]
set all_code_ids [dict keys $params]
set all_param_names [dict keys [dict get $params <my_code_id1>]]
set n [dict get $params <my_code_id1> n]
set k [dict get $params <my_code_id1> k]
set qc_table [dict get $params <my_code_id1> qc_table]