Enable faster iterations between algorithm and hardware implementation
It takes time to produce good C code
VersionBay will reproduce your hardware setup and will support / maintain your environment across different MATLAB versions
Empower your domain experts to try new implementations faster than ever before
If you need experts in automatic code generation from MATLAB/Simulink
Some examples of what we do
Convert your MATLAB/Simulink to C
Deploy your MATLAB/Simulink to your hardware
Integrate generated code into existing applications
Optimize C code generated based on your requirements
MATLAB Function
function [a] = simple(w, x) a = w .* 0.0; for i = 1:numel(w) a(i) = (w(i) + x(i)) .* (w(i) + x(i)); end end
Embedded Coder in R2019a
for (i = 0; i < 16641; i++) { a_tmp = w[i] + x[i]; a[i] = a_tmp * a_tmp; }
New Embeded Coder performance optimization in R2019b
for (i = 0; i <= 16636; i += 4) { r = _mm_add_ps(_mm_loadu_ps(&w[i]), _mm_loadu_ps(&x[i])); _mm_storeu_ps(&a[i], _mm_mul_ps(r, r)); }
The loop increments by 4 because the input data type is single
. Incrementing by four instead of one occurs because the SIMD functions in the loop body process data in parallel. This optimization increases the execution speed of the generated code.
Test and compare impact of migrating to a different version of Embedded Coder
Create I/O drivers and configuration scripts for custom board support
Setup Software-In-the-Loop and Processor-In-the-Loop simulations
Quantify performance of generated code profiling with Software-In-the-Loop and Processor-In-the-Loop
The table shows execution times of functions generated from a Simulink Model.