With the push of a button, you can use MATLAB® and Simulink® to generate code and run it on hardware. However, coding is just one task – learn how you can use MATLAB and Simulink to design, code, and verify your next embedded system from prototyping to production. You can:
Generate optimized C, C++, CUDA, Verilog, VHDL, and Structured Text
Use floating- and fixed-point design tools to make cost vs. performance tradeoffs
Verify and profile generated code using in-the-loop testing
Comply with standards such as AUTOSAR, ISO 26262, DO-178, MISRA C, and CERT C
Prototype on popular boards from Arduino® to Zynq® using hardware support package add-ons
“With Model-Based Design we had a successful first flight; there were no issues from a control or integration standpoint. Generating the control law code from our Simulink model with Embedded Coder eliminated the slowdowns caused by manual code generation and freed the team to work on meeting the broader program goals.”
Mike Bothwell, Bell Helicopter
With Model-Based Design, you can:
Use a common design environment
- Link designs directly to requirements
- Integrate testing with design
- Refine algorithms through multidomain simulation
- Automatically generate embedded software code and documentation
- Develop and reuse test suites
Generating Code from MATLAB
Generate C, C++, CUDA, and HDL code for MATLAB in just three iterative steps. Run and deploy the code anywhere - from desktops to mobile devices to embedded systems. As your design evolves, MATLAB Coder™ can automatically generate new code, so you don’t have to code manually. This speeds up and enables more design iterations.
You can integrate the generated code as source code, static libraries, or dynamic libraries into your applications running outside of MATLAB on the desktop or cloud. You can also package the generated code as a MEX-function and use it directly in MATLAB.
Generating Code from Simulink
Use Embedded Coder to translate your models into high-quality source code and executables for prototyping and production. Use default C and C++ settings, or optimize for higher performance using SIMD instructions, data storage classes, and memory section code placements. Generate ANSI/ISO C/C++, MISRA-C, or AUTOSAR source code that plugs into your run-time system. Or you can generate a complete turnkey executable that automatically downloads and runs on your custom hardware device.
Examine generated code for your models using bidirectional traceability links, or generate a report with the code, data, function interfaces, and code metrics.
Quickly move from doubles using a rich set of data types and tools to develop 8-, 16-, and 32-bit fixed-point and single-precision algorithms. Fixed-Point Designer™ provides functions, such as math, bitwise, array, and matrix operations, that optimize your design for fixed- and floating-point computation.
Easily generate bit-true C and C++ and synthesizable Verilog® and VHDL® code from your MATLAB code, Simulink models, and Stateflow charts.
Using data type override, your embedded fixed-point or single-precision design can be instantly switched to double precision to analyze the impact of quantization. And there are tools that make it easy to quickly identify the sources of overflow, precision loss, and wasted range or precision.
Fixed Point Designer
Verifying Designs and Code
Author, manage, and trace requirements to models, generated code, and test cases. Check designs for model standard compliance such as MAAB. Develop and execute simulation-based tests (including testing for software-in-the-loop, processor-in-the-loop, and hardware-in-the-loop). Embedded Coder lets you profile the generated code using task and function level profiling.
Polyspace® products support hand code and generated code. They let you prove the absence of run-time errors, enforce coding rules, and check for security vulnerabilities using standards such as CWE, CERT-C, and ISO/IEC 17961.
Simulink Design Verifier™
Use Embedded Coder to generate code that complies with popular software and safety standards such as AUTOSAR and MISRA C. MathWorks offers certification and qualification kits to develop systems and quality tools according to ISO 26262, IEC 61508, EN 50128, IEC 62304, DO-178, DO-254, and other industry standards for automotive, medical, rail, and aerospace embedded systems.
Quickly generate code and compile it for your hardware no matter what your application does, ranging from signal processing, computer vision, image processing, or control systems.
Generate code and prototype it on embedded platforms such as Raspberry Pi™ or Arduino®. On mobile platforms, integrate the generated code into your own app and run it on iPhones, iPads, or Android™ devices, including accessing onboard sensors such as the video camera, microphone, and accelerometer. Deploy your embedded system to powerful microprocessors.