Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

模型配置参数:代码生成优化

代码生成 > 优化类别包括用于提高模型仿真速度和生成代码性能的参数。用于改进所生成代码的模型配置参数需要具备 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)

选择此参数可在详细信息部分选择优化参数,而不是应用优化级别。

Use memcpy for vector assignment

通过用 memcpy 替换 for 循环,优化为向量赋值生成的代码。

Memcpy threshold (bytes)

指定用 memcpymemset 函数调用替换生成代码中向量赋值的 for 循环时应满足的最小数组大小(以字节为单位)。

Enable local block outputs

指定模块信号是局部声明还是全局声明。

Reuse local block outputs

指定 Simulink Coder 软件是否重用信号内存。

Eliminate superfluous local variables (Expression folding)

将模块计算折叠成单个表达式。

重用全局模块输出 (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)

在以循环方式访问数组时替换数组索引中的乘法运算。

将布尔数据打包到位域中 (Embedded Coder)

指定布尔信号是存储为一位位域还是存储为布尔数据类型。

Bitfield declarator type specifier (Embedded Coder)

指定选择配置参数 将布尔数据打包到位域中 (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 state configuration

使用位集来减少存储状态配置变量所需的内存量。

Use bitsets for storing Boolean data

使用位集来减少存储布尔数据所需的内存量。

Maximum stack size (bytes)

为模型指定最大堆栈大小(以字节为单位)。

Loop unrolling threshold

指定为其生成 for 循环的最小信号或参数宽度。

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

删除用于处理 NaN 值的浮点到整数转换结果的代码。

Use memset to initialize floats and doubles to 0.0

指定是否生成将浮点数据显式初始化为 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)

指定是否为整数和定点数据生成防止除以零和 INT_MIN/-1 运算的代码。

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 FunctionMatlab System For Each 模块实现并行 for 循环。
Signal storage reuse指定重用为存储模块输入和输出信号所分配的内存缓冲区,从而降低实时程序的内存需求
Operator to represent Bitwise and Logical Operator blocks (Embedded Coder)指定生成的代码是包含按位运算符还是逻辑运算符,或两者都包含。

相关主题