UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

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

描述

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]

解决方案

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:

链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
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

相关答复记录

AR# 71876
日期 01/10/2019
状态 Active
Type 综合文章
IP
的页面