Generating the Co-Sim Test Vectors - Generating the Co-Sim Test Vectors - 1.1 English - PG401

RFSoC DFE Non-Linear Filter LogiCORE IP Product Guide (PG401)

Document_ID
PG401
Release_Date
2026-06-23
Version
1.1 English

The DFE NLF Co-Sim Environment works by first instantiating the MATLAB model to the corresponding test case parameters entered in the set_test_case_params.m. The system creates test case directories for each test case. These directories contain the necessary files to run Vivado simulations. The following table shows the created test directory structure.

Table 1. Directory Structure
Directory Name Description
cosim_codebase/ Co-sim codebase directory
cosim_testdir_1/ Co-sim test directory
  vivado_dir_1/ Vivado directory (Vivado simulations run in this directory)
  run_sim.tcl tcl script to create project and run simulation
  dfe_nlf_v1_1_tb.vhd Test bench for simulation
data_in.txt Input signal and input index file
data_out_ref.txt Reference output data file
nlf_config.mat mat file containing test case configuration
nlf_programming.txt NLF IP programming files containing register programming. Also contains LUT programming, if LUT AXIS is disabled.
LUT_AXIS_Stream.txt LUT programming file created only when LUT AXIS is enabled
Files related to Reference Design that are generated if refd is enabled
  golden_refdata.txt   Reference output shell data
refd_nlf_programming.sh   NLF IP programming shell script
stimulus_programming.sh   MM2S_STIMULUS IP programming shell script
sink_programming.sh   S2MM_SINK IP programming shell script
run_refd_functest.sh   Shell script to run functional test
run_ref_perftest.sh   Shell script to run performance test

The MATLAB script cosim_gen_tv.m is responsible for creating test case directories, generating Tcl files, test bench, input data file, data out reference file, NLF IP programming files for Vivado simulation based on the test case configuration (set in set_test_case_params.m). When you enable the reference design, it also generates files related to the reference design. It also plots term selection for each test case and prints the configuration of each test case on the MATLAB console.

Figure 1. Term Selection Plots After Running the cosim_gen_tv.m
Figure 2. Two Grids Arranged Diagonally
Figure 3. Two Grids Arranged Horizontally

In the context of DFE NLF IP, the first example demonstrates a configuration where all terms are linear. Use internal indexing within the NLF dedicated block if you require magnitude as an index. If you require indexing other than magnitude indexing, use external indexing.

In the second example, terms are random in position. However, the grids are diagonal. Internal indexing remains viable due to the alignment of grids.

In the third example, the grids are placed sideways, making internal indexing challenging. In such cases, use external indexing by passing the index using the s_axis_din_tuser interface. This indexing approach ensures correct referencing and processing of terms in configurations where internal indexing is impractical.

If you use internal indexing, it equally delays the magnitude and signal. This means that the second grid is always diagonal to the first grid. To place the second grid non-diagonally to the first grid, use external indexing.