Support for
Model-Based Design
(MBD)

Get to Know the Runtime of Your Models
Function developers who use model-based design (MBD) often don’t know how their design decisions will affect the application’s runtime on the target embedded platform. Decisions about which data types to use or how to implement functionality can have a significant impact depending on the target platform. In many workflows, models are converted to C code using tools such as TargetLink, Embedded Coder, ASCET, or SCADE. emmtrix Performance Estimator then automatically analyzes the expected runtime behavior on the selected embedded target. Using various mapping strategies, the results can be mapped back to the original models and subsystems.
This feature allows function developers to obtain information about the runtime impact on the selected embedded platform when selecting realizations or setting options. The results are presented in an HTML report with features such as sorting, filtering, and colored indicators about estimation confidence.
Example emmtrix Performance Estimator Workflow with TargetLink/Embedded Coder
Figure 1 shows our emmtrix Performance Estimator workflow.
Features
- Automatic generation of reports and visualization for more detailed information
- Confidence levels for classification of results
- Easy to integrate into the development workflow
- Minimum and maximum execution times of blocks
- Interactive HTML report for results
- Filtering
- Searching
- Sorting
Your Benefits
- Performance estimation with model-based design early in the development process
- Continuous monitoring of performance changes during the development with CI flow integration
- Detailed information to better understand the timing behavior of your application
- Detect high-runners or critical parts of your models
- Ensure your code is ready for hardware tests
- Runtimes for subsystems and modules without instrumentation of source code
Example of HTML Report for the Performance
Figure 1: HTML Report of Results
Use Cases
Identifying Bottlenecks in MBD Function Development
In Model-Based Design (MBD), software functions are typically developed in tools like Simulink before being automatically translated into C code. However, performance bottlenecks often arise from inefficiencies in auto-generated code. A static performance analysis tool can identify such inefficiencies at an early stage by analyzing the generated code structure and linking performance issues to Simulink blocks or subsystems. This allows function developers to pinpoint modeling inefficiencies, optimize computationally expensive constructs, and align the generated code with performance expectations. By integrating this analysis into the development workflow, potential execution overheads can be detected before deployment, reducing debugging efforts and improving the efficiency of MBD-based software development.
Enhancing MBD Function Developers’ Performance Awareness
Model-Based Design (MBD) abstracts low-level implementation details, making it easier for function developers to focus on algorithms rather than code efficiency. However, this abstraction often leads to a lack of awareness regarding the performance impact of specific Simulink constructs or model settings.
A static performance analysis tool can provide immediate feedback by analyzing the generated code and highlighting performance-relevant design choices. By linking performance insights to Simulink blocks and subsystems, developers gain a deeper understanding of how their modeling decisions affect execution time and computational efficiency. This continuous feedback loop enables them to develop an intuition for performance trade-offs, ultimately leading to more optimized and efficient model designs before deployment.
Assessing the Impact of MBD Design Decisions on Performance
In Model-Based Design (MBD), different modeling approaches can lead to significant performance variations in the generated C code. However, function developers often lack visibility into how specific design choices affect execution efficiency.
A static performance analysis tool enables developers to track the impact of key modeling decisions, such as using Stateflow vs. Block-Based Modeling or applying Signal Vectorization. By continuously analyzing the generated code, developers can compare performance characteristics across design iterations and assess whether certain modeling approaches lead to more efficient execution. This systematic tracking helps prevent unintended performance regressions and supports informed decision-making to optimize software before integration and testing.
Some Supported Platforms
A wide range of supported target platforms ranging from general-purpose processors (e.g. ARM Cortex-A series or X86) to special-purpose microcontrollers (e.g. Infineon Aurix family) are already supported. In general, the performance estimation can be easily adapted and customized to provide basic supoprt for new processor architectures. More complex and accurate hardware models with respect to the processor pipeline can be supported on demand.
Associated Partners
For more information on our performance report or to request a demo, a chat or a meeting use our contact form or get directly in touch. We’re looking forward to hearing from you!
