Hi,
We have developped and qualified a huge MATLAB simulation environment for different Signal Processing algorithms.
In a first step, the algorithms have been rewritten in "pure" C and encapsulated in Matlab mex functions so that we are still able to run the C version of the algorithms in the original MATLAB simulation on x86 PC.
Thus we are able to perform full qualification of the algorithms trough intensive Matlab scripts.
In a second step, these algorithms have been compiled for ARM Cortex M7 (we are using Nucleo eval board to validate everything is fine).
Now, we want to optimize the algorithms and we are using Cortex M7 intrinsics and SIMD instructions in this aim.
But as a result, the final code is no longer usable in the MATLAB simulation on PC.
Is there a way to emulate these intrinsics for x86 ? It could be by using a C library or C prototyping of the Cortex specific dedicated instructions ?
Of course, PC emulation could understandably be catastrophic in terms of resources and timing performances, the only criteria we are targeting is bit-exactness (to comply with existing simulation results).
For such ARM intrinsic functions, where could we find some kind of C library or prototyping which will allow us to compile/emulate these ARM intrinsics for x86/x64 architecture (optimization excluded of course) ?Do you have some clue or advice for this ?
Thank you in advance for your pieces of information, and advice on the topic.
Best regards
Hello Laurent,
Is this the functionality you need:
https://www.mathworks.com/products/connections/product_detail/arm-fast-models.html
For information on Arm Fixed Virtual Platforms, including how to get an evaluation license, see:
https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms
Regards, Ronan
Hello Ronan,
Thank you very much for your advice.
I did not kown or use EmbeddedCoder yet, thus, I will take a look in detail, as well as the ARM FVP package.
In fact, I was searching for something less evolved in a first step. Just trying to replace ARM intrinsics with an equivalent C implementation (non-optimized) and continue to be able to compile the same source code on both platforms thanks to such an "emulation" library.
But your proposal is quite interresting, I will study this possibility and analyse how it could fit with our exisiting simulation environment.
Thank you once again for your help and advice.
Best regards,
Laurent