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
Contact Us
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.
Deep Tool/Hardware Knowledge
ARM
TI
STMicroelectronics
NXP
MicroChip
Analog Devices
BeagleBone
Infineon