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
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.