Nexus

Co-simulate

anything!

All the elements of your system running in lockstep, and fast!

Imagine all the code from your microcontrollers, your power electronics and electro-mechanical models, your communication databases… running in perfect synchronization, with minimal overhead and easy data exchange. All operating in parallel processes, maximizing the performance of multi-core architectures.

Debugging complex systems made simple

Debug each process independently using your favorite IDE.

And guess what? When you set a breakpoint, everything will automatically pause and wait!

Maximum compatibility

With a base library written in C, Nexus can be optimally wrapped by almost any programming language or modeling environment.

A Python 3 library is provided, as well as the tooling needed for easily creating DLLs for the most common modeling software.

This allows you to simulate your processor’s production code in C/C++ or even Rust, and model your system with specialized tools, and even integrate FMU models.

How does it work?

The Nexus library is based on shared memory between different processes.
It serves as a data exchange space, and time synchronization is done by a master process through careful interaction with shared flags.
It employs the most efficient locking mechanisms for every platform, ensuring it is as swift and lightweight as a co-simulation library can be.
And by the way, it is easy to use!

Add-ons

Nexus features well-integrated libraries for simulating communication protocols such as Ethernet, CAN, UART…
And typical microcontroller peripherals such as timers, ADCs, PWMs, and much more.

It also features advanced synchronized logging capabilities, a delightful graphic signal viewer and test report generation.

These add-on libraries are totally optional, and you can easily build on top or just skip them.

Technical Specifications

OS Compatibility

Windows 10 or later
Ubuntu 18.04 or later
Mac OS X 10.12 or later

Co-simulation Processes

Up to 64

Compiler

gcc-10.3.0 or higher

Compatible Applications

MatLab®, PSIM®, NL5®
Compatibility can easily be extended by the user

Compatible Languages

C/C++, Python3, Rust
By wrapping DLLs, compatibility with other languages can be achieved