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:
The create call for the SD-FEC, LDPC Encoder/Decoder or Polar Encoder/Decoder models will fail with an uncaught error:
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:
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: