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));

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






Analog Devices