模型配置参数:代码生成优化
代码生成 > 优化类别包括用于提高模型仿真速度和生成代码性能的参数。用于改进所生成代码的模型配置参数需要具备 Simulink® Coder™ 或 Embedded Coder®。
参数 | 描述 |
---|---|
在生成的代码中,将数值模块参数转换为常量内联值。 | |
Leverage target hardware instruction set extensions | 选择指令集,为目标硬件生成 SIMD(Single Instruction, Multiple Data, 又称为单指令、多数据)代码。 |
Optimize reductions | 为归约运算循环生成单指令多数据 (SIMD) 代码。 |
Pass reusable subsystem outputs as (Embedded Coder) | 指定可重用子系统如何传递输出。 |
Remove root level I/O zero initialization (Embedded Coder) | 指定是否为设置为零的根级输入端口和输出端口生成初始化代码。 |
Remove internal data zero initialization (Embedded Coder) | 指定是否为设置为零的内部工作结构体(如模块状态和模块输出)生成初始化代码。 |
Level (Embedded Coder) | 选择要应用于生成代码的优化级别。 |
Priority (Embedded Coder) | 优化生成的代码,以提高执行效率、降低内存消耗量或在两者之间实现某种平衡。 |
Specify custom optimizations (Embedded Coder) | 选择此参数可在详细信息部分选择优化参数,而不是应用优化级别。 |
通过用 | |
指定用 | |
指定模块信号是局部声明还是全局声明。 | |
指定 Simulink Coder 软件是否重用信号内存。 | |
将模块计算折叠成单个表达式。 | |
Reuse global block outputs (Embedded Coder) | 重用模块输出的全局内存。 |
Reuse output buffers of Model blocks (Embedded Coder) | 重用引用模型缓冲区(如果可能)。 |
Perform in-place updates for Assignment and Bus Assignment blocks (Embedded Coder) | 重用 Bus Assignment 和 Assignment 模块的输入和输出变量(如果可能)。 |
Reuse buffers for Data Store Read and Data Store Write blocks (Embedded Coder) | 删除 Data Store Read 和 Data Store Write 模块的临时缓冲区。直接使用 Data Store Memory 模块(如果可能)。 |
Simplify array indexing (Embedded Coder) | 在以循环方式访问数组时替换数组索引中的乘法运算。 |
Pack Boolean data into bitfields (Embedded Coder) | 指定布尔信号是存储为一位位域还是存储为布尔数据类型。 |
Bitfield declarator type specifier (Embedded Coder) | 指定选择配置参数 Pack Boolean data into bitfields (Embedded Coder) 时使用的位域类型。 |
Reuse buffers of different sizes and dimensions (Embedded Coder) | 通过重用缓冲区来存储不同大小和维度的数据,降低内存消耗。 |
优化全局数据访问 (Embedded Coder) | 选择全局变量优化。 |
Optimize block operation order in generated code (Embedded Coder) | 在生成的代码中对模块运算重新排序,以提高代码执行速度。 |
使用位集来减少存储状态配置变量所需的内存量。 | |
Use bitsets for storing Boolean data | 使用位集来减少存储布尔数据所需的内存量。 |
为模型指定最大堆栈大小(以字节为单位)。 | |
指定为其生成 | |
Optimize using the specified minimum and maximum values (Embedded Coder) | 使用模型中信号和参数的指定最小值和最大值优化生成的代码。 |
子系统输出的最大参数个数 | 设置要分别传递的子系统输出的最大数量。 |
将不变信号的符号名转换为常量值。 | |
Remove code from floating-point to integer conversions with saturation that maps NaN to zero | 删除用于处理 |
指定是否生成将浮点数据显式初始化为 0.0 的代码。 | |
Remove code from floating-point to integer conversions that wraps out-of-range values | 删除用于处理超出范围的浮点数到整数转换结果的绕回代码。 |
Remove Code from Tunable Parameter Expressions That Saturate Out-of-Range Values (Embedded Coder) | 删除可调参数的绕回代码。 |
Remove code that protects against division arithmetic exceptions (Embedded Coder) | 指定是否为整数和定点数据生成防止除以零和 |
Buffer for reusable subsystems | 通过在可重用子系统边界插入缓冲区来提高可重用性。 |
禁用不兼容的优化 | 指定是否禁用与 Simulink 代码检查器不兼容的优化。 |
Base storage type for automatically created enumerations | 为使用激活状态输出创建的枚举设置存储类型和大小。 |
Use signal labels to guide buffer reuse (Embedded Coder) | 对于具有相同标签的信号,代码生成器尝试使用相同的信号内存。 |
Generate parallel for-loops (Embedded Coder) | 指定是否应在生成代码中针对 Matlab Function、Matlab System 和 For Each 模块实现并行 for 循环。 |
Signal storage reuse | 指定重用为存储模块输入和输出信号所分配的内存缓冲区,从而降低实时程序的内存需求 |
Operator to represent Bitwise and Logical Operator blocks (Embedded Coder) | 指定生成的代码是包含按位运算符还是逻辑运算符,或两者都包含。 |