Embedded Software Design, Implementation, and Verification

MathWorks products for embedded systems design let you specify and explore functional behavior, generate code for implementation, and continuously test and verify the design by simulating on the desktop or on real-time hardware.

Explore Products for Embedded Systems

Model and Simulate Your Design

Use textual or graphical techniques to model your algorithms as mathematical equations, signal flows, and state machines expressed with floating- and fixed-point arithmetic. By creating a variety of test benches to simulate the algorithms under different conditions and test cases, you can rapidly iterate on your designs to get a functionally accurate representation suitable for deployment on an embedded processor or FPGA.

Generate Code for Real-Time Implementation

You can generate readable, efficient, and customizable C code from models developed in MATLAB®, Simulink®, and Stateflow®. The generated code can be deployed on embedded processors for prototyping or production. You can incorporate custom or legacy C code into the generated code or integrate the generated code into your existing software. The generated code is ANSI/ISO C-compliant, enabling it to run on any microprocessor with or without a real-time operating system (RTOS).

Deploying your designs onto real-time processors can be further automated by incorporating schedulers, timers, peripheral drivers, and other embedded framework code with the generated algorithm code.

Verify Embedded Code Against Design Specifications

Reuse your algorithm specification models and test benches to compare the behavior of the code with the behavior of the model. With MathWorks products the generated code can be verified on the host computer as well as on the embedded target. This model-to-code verification process can be automated, enabling rapid verification of software components.

Including these techniques in development processes for high-integrity applications helps you meet industry standards like DO-178, IEC 61508, and ISO 26262.