AR# 71876

SDFEC, LDPC Encoder/Decoder, Polar Encoder/Decoder - Executable crash when the SD-FEC, LDPC Encoder/Decoder or Polar Encoder/Decoder C-models are combined with other DSP IP C-models

Description

An executable which combines the C-model for the SD-FEC, LDPC Encoder/Decoder, or Polar Encoder/Decoder IP with other DSP IP C-models (for example, CORDIC) will crash with a run-time error.

The error message or signature will differ depending on the order the IP C-models are linked to the executable, and therefore will be loaded at run time.

 

In this example, the C-model for one of the other DSP IP (for example, CORDIC) is loaded/linked first:

g++ -I. -L. -lIp_cordic_v6_0_bitacc_cmodel -lIp_ldpc_v2_0_bitacc_cmodel  -Wl,-rpath,. -o run_bitacc_cmodel run_bitacc_cmodel.c


The create call for the SD-FEC, LDPC Encoder/Decoder or Polar Encoder/Decoder models will fail with an uncaught error:

decoder_ = xip_ldpc_v2_0_create(&config,&msg_print,0);        
// Error message seen when running the above:
MSG: Uncaught exception in  model create
Failed to create Decoder instance

When the C-model for the SD-FEC, LDPC Encoder/Decoder or Polar Encoder/Decoder is loaded/linked first, the error signature is less well defined. 

It is likely be reported as an invalid pointer access by the glibc library:

*** glibc detected *** ./run_bitacc_cmodel: free(): invalid pointer: 0x0000000001b3c508 ***
======= Backtrace: =========
/lib64/libc.so.6[0x3566c75e66]
./libIp_ldpc_v2_0_bitacc_cmodel.so(_ZN7XLoggerD0Ev+0x24)[0x7f96db685444]
./libIp_cordic_v6_0_bitacc_cmodel.so(xip_cordic_v6_0_destroy+0x25)[0x7f96db389345]
./run_bitacc_cmodel[0x40573a]
/lib64/libc.so.6(__libc_start_main+0xfd)[0x3566c1ed5d]
./run_bitacc_cmodel[0x402499]

Solution

This is a known issue when running C model simulation with multiple DSP IPs. 

It will be fixed in Vivado 2019.1 and later versions.

SDFEC, LDPC, and Polar IPs use a newer version of GCC that supports C++11, which is not compatible with other DSP IP C models.

All users are recommended to upgrade to the latest Vivado version.

For Vivado 2018.3:

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
71874 LDPC Encoder/Decoder v2.0 (Rev 2) - Patch Updates for LDPC Encoder/Decoder v2.0 release in Vivado 2018.3 N/A N/A

Associated Answer Records

AR# 71876
Date 01/10/2019
Status Active
Type General Article
IP