Triggered Subsystem
R2026b由外部输入触发执行的子系统
Triggered Subsystem block
To add a block to a model, double-click the canvas and start typing the block name. Then, select the block from the list.
库:
Simulink /
Ports & Subsystems
HDL Coder /
Ports & Subsystems
描述
Triggered Subsystem 模块是一个预先配置的 Subsystem 模块,您可基于它创建一个每当控制信号具有触发值就会执行的子系统。

使用 Triggered Subsystem 模块可以建模:
与触发器值检测一起运行的任务。
来自 I/O 硬件的中断。
处理异常或错误的处理器请求。
示例
Model Engine Timing Using Triggered Subsystems
Model a four-cylinder spark ignition internal combustion engine from the throttle to the crankshaft output using triggered subsystems. In this example, the sldemo_engine model is based on [1].
具有闭环控制的发动机定时模型
此示例说明如何为Model Engine Timing Using Triggered Subsystems中所述的开环发动机模型开发和实现闭环控制算法。在此示例中,模型 sldemo_enginewc 包含控制器,该控制器使用快速节气门作动器来调节发动机转速,以使负载转矩的变化产生的影响最小。该控制器是使用离散 PI 控制器实现的。
Counters Using Conditionally Executed Subsystems
Implement counters using Enabled and Triggered subsystems. In this example, the model sldemo_counters controls flow of water into a tank and uses a counter to count the number of times overflow occurs, where overflow occurs when the water level in the tank is 8 meters or more for 30 seconds or more.
端口
输入
在子系统中放置一个 Inport 模块会向 Subsystem 模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。
使用 Inport 模块可以从局部环境中获取信号。
数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
在子系统中放置一个 Trigger 模块会向 Subsystem 模块添加一个外部输入端口。
数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
输出
在子系统中放置一个 Outport 模块会从 Subsystem 模块添加一个输出端口。Subsystem 模块上的端口标签是 Outport 模块的名称。
使用 Outport 模块可以向局部环境发送信号。
数据类型: half | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus | image
参数
要以交互方式编辑模块参数,请使用属性检查器。在 Simulink® 工具条中,在仿真选项卡的准备库中,选择属性检查器。
常设
选择如何在 Subsystem 模块图标上显示端口标签。
无 - 不显示端口标签。
FromPortIcon - 如果对应的端口图标显示了信号名称,则在 Subsystem 模块上显示信号名称。否则,如果模块名称是默认名称,则显示端口模块名称或端口号。
FromPortBlockName - 在 Subsystem 模块上显示对应端口模块的名称。
SignalName - 如果连接到端口的信号已命名,则会在 Subsystem 模块上显示信号的名称。否则,显示相应端口模块的名称。
有关 Subsystem 模块上的端口标签编辑,请参阅编辑子系统模块上的端口标签。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | ShowPortLabels |
| 值: | 'FromPortIcon' (默认) | 'FromPortBlockName' | 'SignalName' | 'none' |
控制用户对子系统内容的访问。
ReadWrite - 允许打开和修改子系统内容。
ReadOnly - 允许打开但不允许修改子系统。如果子系统在模块库中,您可以创建和打开该子系统的链接,创建和修改子系统的本地副本,但不能更改权限或修改原始模块库实例的内容。
NoReadOrWrite - 禁止打开或修改子系统。如果子系统在模块库中,您可以在模型中创建该子系统的链接,但不能打开、修改、更改权限或创建子系统的本地副本。
如果您尝试查看其读取/写入权限参数设置为 NoReadOrWrite 的子系统的内容,将不会收到响应。例如,当您双击此类子系统时,软件不会打开该子系统,并且不显示任何消息。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | Permissions |
| 值: | 'ReadWrite' (默认) | 'ReadOnly' | 'NoReadOrWrite' |
输入软件执行子系统时,如果发生错误要调用的函数的名称。
该软件向函数传递两个参量:子系统的句柄以及指定错误类型的字符向量。如果未指定任何函数,当执行子系统导致错误时,软件将显示常规错误消息。
以如下函数为例,它对子系统中的错误显示错误消息。
newException = errorHandler(subsys,...
ErrorID,originalException)errorHandler是函数的名称。subsys是发生错误的子系统的句柄。ErrorID是指示发生的错误类型的字符向量。originalException是一个 MSLException。有关详细信息,请参阅使用 MSLException 对象处理 Simulink 中的错误。如果您提供原始异常,则不需要指定子系统和错误类型。newException是一个 MSLException,指定要向用户显示的错误消息。
要显示与名为 subsys 的子系统关联的错误消息,请在参数字段中输入 errorHandler。
要以编程方式使用此参数,请使用 set_param 函数。
set_param(subsys,'ErrorFcn','errorHandler')
ErrorFcn 回调对名为 subsys 的子系统调用 errorHandler 函数。在这种对 set_param 函数的调用中,不要包含回调代码的输入参量。软件显示由回调返回的错误消息。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | ErrorFcn |
| 值: | '' (默认) | function name in quotes |
| 数据类型: | char | string |
全部 - 解析此子系统使用的所有工作区变量的名称,包括用来指定模块参数值和 Simulink 数据对象(例如,
Simulink.Signal对象)的工作区变量的名称。ExplicitOnly - 只解析用来指定模块参数值、数据存储内存(不存在模块)、信号以及标有“must resolve”状态的工作区变量的名称。
无 - 不解析任何工作区变量名称。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | PermitHierarchicalResolution |
| 值: | 'All' (默认) | 'ExplicitOnly' | 'None' |
选中此参数可显示重新初始化事件端口。清除此参数可删除这些端口。
依赖关系
要启用此参数,请选择视为原子单元。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | ShowSubsystemReinitializePorts |
| 值: | 'off' (默认) | 'on' |
原子子系统可能会产生人为代数环。为了最大限度地减少涉及此子系统的人为代数环的出现,请启用此参数。
off- 软件不会尝试消除涉及此子系统的人为代数环。on- 软件会尝试消除涉及此子系统的人为代数环。
有关详细信息,请参阅Minimize Artificial Algebraic Loop Occurrences。
依赖关系
要启用此参数,请选择视为原子单元。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | MinAlgLoopOccurrences |
| 值: | "off" (默认) | "on" |
代码生成
设置“代码生成”选项卡上的参数需要具有 Simulink Coder™ 或 Embedded Coder® 许可证。
选择要为原子(非虚拟)子系统生成的代码格式。
自动 - 软件将根据模型中存在的子系统的类型和实例数为您选择最佳格式。
内联 - 软件无条件内联子系统。
不可重用函数 - 如果将文件名选项设置为自动,则软件会将单独函数打包到模型文件中。如果使用不同的文件名将文件名选项设置为使用子系统名称、使用函数名称或用户指定,则软件将单独函数分别打包到独立的文件中。
采用此设置的子系统生成的函数可能有参量,具体取决于 函数接口 参数设置。您可以使用参数 函数名称 和 文件名(无扩展名) 分别为生成的函数和文件命名。这些函数不可重入。
可重用函数 - 当模型中包含子系统的多个实例时,软件可以生成带参量的函数,该函数将允许重用子系统的代码。
此选项还可生成带参量的函数,允许在为模型引用层次结构(其中引用的模型包含子系统的多个实例)生成的代码中重用子系统代码。在这种情况下,子系统必须是模块库中的子系统。
有关详细信息,请参阅:
Generate Inlined Subsystem Code (Simulink Coder)
将子系统代码生成为单独的函数和文件 (Simulink Coder)
Generate Reusable Code from Library Subsystems Shared Across Models (Simulink Coder)
默认值取决于模块配置。例如,Subsystem 模块的默认值为自动。CodeReuseSubsystem 模块的默认值为可重用函数。
提示
如果您希望子系统的多个实例表示为一个可重用函数,可以为每个子系统指定自动或可重用函数。最好是使用其中一个,因为使用两个将生成两个可重用函数,每个指定一个函数。仅当可以重用时,这些选项的结果才会有区别。选择自动则不允许控制子系统代码的函数或文件名。
可重用函数和自动选项都尝试确定是否存在子系统的多个实例,以及是否可以重用代码。者两个选项的行为区别体现在不能重用时:
自动生成内联代码,或者在禁止内联的情况下为每个子系统实例生成一个单独的函数。
可重用函数为模型中的每个子系统实例生成一个单独的参量函数。
如果您在生成的代码处于源代码管理状态下时选择了可重用函数,请将文件名选项设置为使用子系统名称、使用函数名称或用户指定。否则,只要您修改模型,代码文件的名称就会改变,从而无法对文件进行源代码管理。
如果您选择除自动或内联以外的选项,并且使用模型配置参数状态,则代码生成器会生成单独的输出和更新方法。代码生成器不考虑为代码生成和仿真合并输出和更新方法设定。
依赖关系
此参数需要 Simulink Coder 许可证才能生成代码。
要启用此参数,请选择视为原子单元。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWSystemCode |
| 值: | 'Auto' | 'Inline' | 'Nonreusable function' | 'Reusable function' |
选择软件如何命名它为子系统生成的函数。
如果您拥有 Embedded Coder 许可证,则可以使用“配置参数”对话框的代码生成 > 标识符窗格上的选项来控制函数名称。
自动 - 使用默认的命名约定
指定唯一的函数名称,其中model_subsystem()model是模型的名称,subsystem是子系统的名称,或者,在重用代码时,也可以是相同子系统的名称。如果您为函数打包参数选择了可重用函数,而模型引用层次结构中存在可重用子系统的多个实例,则要为子系统生成可重用代码,必须将函数名称选项设置为自动。
使用子系统名称 - 使用子系统名称作为函数名称。默认情况下,函数名称使用命名约定
。model_subsystem当子系统在模块库模块中而子系统参数 函数打包 设置为可重用函数时,如果您设置使用子系统名称选项,代码生成器将使用模块库模块的名称作为子系统函数名和文件名。
用户指定 - 启用函数名称字段。输入任何合法的 C 或 C++ 函数名,此名称必须唯一。
有关详细信息,请参阅将子系统代码生成为单独的函数和文件 (Simulink Coder)。
默认值取决于模块配置。例如,Subsystem 模块的默认值为自动。CodeReuseSubsystem 模块的默认值为使用子系统名称。
依赖关系
此参数要求具有 Simulink Coder 许可证。
要启用此参数,请将函数打包设置为不可重用函数或可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWFcnNameOpts |
| 值: | 'Auto' | 'Use subsystem name' | 'User specified' |
为子系统代码指定唯一的有效 C 或 C++ 函数名称。
如果您想为函数指定特定的名称,而不是让 Simulink Coder 代码生成器分配其自己自动生成的名称或者使用子系统名称,请使用此参数。有关详细信息,请参阅将子系统代码生成为单独的函数和文件 (Simulink Coder)。
依赖关系
此参数要求具有 Simulink Coder 许可证。
要启用此参数,请将函数名称选项设置为用户指定。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWFcnName |
| 值: | '' (默认) | function name in quotes |
| 数据类型: | char | string |
选择软件如何命名它为子系统生成的函数的单独文件。
自动 - 根据子系统的配置以及子系统在模型中的实例数,自动将生成不同的结果。
如果代码生成器不为子系统生成单独的文件,将在从子系统的父级系统生成的代码模块内生成子系统代码。如果子系统的父级就是模型本身,将在
或model.c内生成子系统代码。model.cpp如果您为函数打包参数选择了可重用函数,而您生成的代码处于源代码管理状态下,请不要将文件名选项值指定为自动。这样可以防止由于不相关的模型修改而更改生成的文件名,而在使用源代码管理来管理配置时,文件名的改变会产生问题。
如果您为函数打包参数选择了可重用函数,而模型引用层次结构中存在可重用子系统的多个实例,则要为子系统生成可重用代码,必须将文件名选项设置为自动。
使用子系统名称 - 代码生成器将生成一个单独的文件,并使用子系统(或模块库模块)名称作为文件名。
当文件名选项设置为使用子系统名称时,如果模型中包含 Model 模块,或者正在为模型生成模型引用目标,则子系统文件名将被破坏。在这些情况下,子系统的文件名由子系统名称加上模型名称前缀构成。
使用函数名称 - 代码生成器使用函数名称选项指定的函数名称作为文件名。
用户指定 - 此选项将启用文件名(无扩展名) 文本输入字段。代码生成器将使用您输入的名称作为文件名。可以输入任何文件名,但不要带
.c或.cpp(或任何其他)扩展名。此文件名不必是唯一的。虽然子系统源文件名不需要唯一,但必须避免使用不唯一名称,否则会导致循环依赖关系。例如,
sys_a.h包括sys_b.h,sys_b.h包括sys_c.h,而sys_c.h包括sys_a.h。
默认值取决于模块配置。例如,Subsystem 模块的默认值为自动。CodeReuseSubsystem 模块的默认值为使用函数名称。
依赖关系
此参数要求具有 Simulink Coder 许可证。
要启用此参数,请将函数打包设置为不可重用函数或可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWFileNameOpts |
| 值: | 'Auto' | 'Use subsystem name' | 'Use function name' | 'User specified' |
您指定的文件名不必是唯一的。但是,避免使用非唯一名称,否则会导致循环依赖关系。例如,sys_a.h 包括 sys_b.h,sys_b.h 包括 sys_c.h,而 sys_c.h 包括 sys_a.h。
有关详细信息,请参阅将子系统代码生成为单独的函数和文件 (Simulink Coder)。
依赖关系
此参数要求具有 Simulink Coder 许可证。
要启用此参数,请将文件名选项设置为用户指定。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWFileName |
| 值: | '' (默认) | filename in quotes |
| 数据类型: | char | string |
选择如何在生成的函数中使用参量。
void_void - 生成不带参量的函数,并将数据作为全局变量进行传递。例如:
void subsystem_function(void)
允许参量(优化) - 生成带参量的函数,而不是将数据作为全局变量进行传递。此规范可以减少全局 RAM。此选项可以减小代码大小、提高执行速度,并支持代码生成器应用更多的优化。例如:
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1)在某些情况下,当生成优化代码时,代码生成器可能不会生成具有参量的函数。
允许参量(匹配图形接口) - 生成一个函数接口,该接口与 Subsystem 图形模块接口匹配的参量。生成的函数接口是可预知的,并且不会更改。可预知的接口对于调试和测试代码以及与外部应用程序集成非常有用。例如,如果模型有两个 Inport 模块和两个 Outport 模块,则生成的函数接口是:
void subsystem_function(real_T rtu_In1, real_T rtu_In2, real_T *rty_Out1, real_T *rty_Out2)
有关详细信息,请参阅:
减少不可重用的子系统函数中的全局变量 (Embedded Coder)
Generate Predictable Function Interface to Match Graphical Block Interface (Embedded Coder)
为非虚拟子系统生成模块化函数代码 (Embedded Coder)
依赖关系
此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。
要启用此参数,请将函数打包设置为不可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | FunctionInterfaceSpec |
| 值: | 'void_void' (默认) | 'Allow arguments (Optimized)' | 'Allow arguments (Match graphical interface)' |
生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。
off- 不生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。on- 生成其中原子子系统的内部数据与其父级模型分离且归子系统所有的子系统函数代码。子系统数据结构的声明独立于父模型数据结构。带单独数据的子系统具有其自己的模块 I/O 和DWork数据结构。因此,为子系统生成的代码更容易跟踪和检验。数据分离还可以减小整个模型的全局数据结构的最大大小,因为它们被拆分成多个数据结构。
有关如何为原子子系统生成模块化函数代码的详细信息,请参阅为非虚拟子系统生成模块化函数代码 (Embedded Coder)。
有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。
要启用此参数,请将函数打包设置为不可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | FunctionWithSeparateData |
| 值: | 'off' (默认) | 'on' |
选择软件如何将内存段应用于子系统初始化和终止函数。
从模型继承 - 将根模型内存段应用于子系统函数代码。
默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。
将模型的某个内存段应用于子系统。
提示
可能的值根据您为模型配置设置的内存段数据包(如果有)而不同。请参阅Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)和模型配置参数:代码生成 (Simulink Coder)。
如果您没有为模型配置数据包,将只显示从模型继承。否则,列表中将包括默认以及模型包中的所有内存段。
这些选项对于为给定子系统覆盖模型内存段设置很有用。有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。
要启用此参数,请将函数打包设置为不可重用函数或可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWMemSecFuncInitTerm |
| 值: | 'Inherit from model' (默认) | 'Default' | model memory section in quotes |
选择 Embedded Coder 如何将内存段应用于子系统执行函数。
从模型继承 - 将根模型内存段应用于子系统函数代码。
默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。
将模型的某个内存段应用于子系统。
提示
可能的值根据您为模型配置设置的内存段数据包(如果有)而不同。请参阅Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)和模型配置参数:代码生成 (Simulink Coder)。
如果您没有为模型配置数据包,将只显示从模型继承。否则,列表中将包括默认以及模型包中的所有内存段。
这些选项对于为给定子系统覆盖模型内存段设置很有用。有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
此参数需要 Embedded Coder 许可证和一个基于 ERT 的系统目标文件。
要启用此参数,请将函数打包设置为不可重用函数或可重用函数。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWMemSecFuncExecute |
| 值: | 'Inherit from model' (默认) | 'Default' | model memory section in quotes |
选择软件如何将内存段应用于子系统常量。
从模型继承 - 将根模型内存段应用于子系统数据。
默认 - 不要将内存段应用于子系统数据,将覆盖任何模型级的设置。
将模型的某个内存段应用于子系统。
提示
您指定的内存段将应用于生成的代码中对应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参阅Standard Data Structures (Simulink Coder)。
可能的值根据您为模型配置设置的内存段数据包(如果有)而不同。请参阅Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)。
如果您没有为模型配置数据包,将只显示从模型继承。否则,列表中将包括默认以及模型包中的所有内存段。
这些选项对于为给定子系统覆盖模型内存段设置很有用。有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWMemSecDataConstants |
| 值: | 'Inherit from model' (默认) | 'Default' | model memory section in quotes |
选择软件如何将内存段应用于子系统内部数据。
从模型继承 - 将根模型内存段应用于子系统数据。
默认 - 不要将内存段应用于子系统数据,将覆盖任何模型级的设置。
将模型的某个内存段应用于子系统。
提示
您指定的内存段将应用于生成的代码中对应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参阅Standard Data Structures (Simulink Coder)。
可能的值根据您为模型配置设置的内存段数据包(如果有)而不同。请参阅Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)。
如果您没有为模型配置数据包,将只显示从模型继承。否则,列表中将包括默认以及模型包中的所有内存段。
这些选项对于为给定子系统覆盖模型内存段设置很有用。有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWMemSecDataInternal |
| 值: | 'Inherit from model' (默认) | 'Default' | model memory section in quotes |
选择软件如何将内存段应用于子系统参数。
从模型继承 - 将根模型内存段应用于子系统函数代码。
默认 - 不将内存段应用于子系统的系统代码,覆盖任何模型级的设置。
将模型的某个内存段应用于子系统。
提示
您指定的内存段将应用于生成的代码中对应的全局数据结构。有关为原子子系统生成的全局数据结构的基本信息,请参阅Standard Data Structures (Simulink Coder)。
可能的值根据您为模型配置设置的内存段数据包(如果有)而不同。请参阅Control Data and Function Placement in Memory by Inserting Pragmas (Embedded Coder)。
如果您没有为模型配置数据包,将只显示从模型继承。否则,列表中将包括默认以及模型包中的所有内存段。
这些选项对于为给定子系统覆盖模型内存段设置很有用。有关如何对原子子系统应用内存段的详细信息,请参阅Override Default Memory Placement for Subsystem Functions and Data (Embedded Coder)。
依赖关系
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | RTWMemSecDataParameters |
| 值: | 'Inherit from model' (默认) | 'Default' | model memory section in quotes |
子系统引用
指定要引用的子系统文件。有关子系统引用的信息,请参阅Create and Use Referenced Subsystems in Models。
依赖关系
要访问此参数,请在子系统引用部分中,点击转换。
有关如何将子系统转换为引用子系统的详细信息,请参阅Convert Between Subsystems and Referenced Subsystems。
编程用法
要以编程方式设置模块参数值,请使用 set_param 函数。
| 参数: | ReferencedSubsystem |
| 值: | '' (默认) | subsystem filename in quotes |
| 数据类型: | char | string |
模块特性
扩展功能
实际代码生成支持取决于模块实现。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。有关最佳做法、限制以及如何将触发信号用作具有 TriggerAsClock 属性的时钟的信息,请参阅Use Triggered Subsystem in HDL Code Generation (HDL Coder)。
| 架构 | 描述 |
|---|---|
| 模块(默认值) | 为子系统和子系统内的模块生成代码。 |
| BlackBox | 生成黑盒接口。生成的 HDL 代码仅包括子系统的输入/输出端口定义。因此,您可以在模型中使用子系统来生成与手动编写的现有 HDL 代码的接口。 子系统的黑盒接口生成类似于没有时钟信号的 Model 模块接口生成。 |
无 HDL | 从生成的代码中删除子系统。您可以在仿真中使用子系统,但在 HDL 代码中将其视为“无操作”。 |
对于 BlackBox 架构,您可以自定义端口名称并设置外部组件接口的属性。请参阅Customize Black Box or HDL Cosimulation Interface (HDL Coder)。
| 通用 | |
|---|---|
| AdaptivePipelining | 基于综合工具、目标频率和乘法器字长的自动流水线插入。默认值为 inherit。另请参阅AdaptivePipelining (HDL Coder)。 |
| ClockRatePipelining | 以较快的时钟频率而不是较慢的数据速率插入流水线寄存器。默认值为 inherit。另请参阅ClockRatePipelining (HDL Coder)。 |
| ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线不会重新分发这些寄存器。默认值为 |
| DistributedPipelining | 流水线寄存器分配或寄存器重定时。默认值为 inherit。另请参阅DistributedPipelining (HDL Coder)。 |
| FlattenHierarchy | 从生成的 HDL 代码中删除子系统层次结构。默认值为 inherit。另请参阅FlattenHierarchy (HDL Coder)。 |
| InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线和受限输出流水线可以移动这些寄存器。默认值为 |
| SharingFactor | 要映射到单个共享资源的功能等效的资源的数量。默认值为 0。另请参阅Resource Sharing (HDL Coder)。 |
| StreamingFactor | 并行数据路径或向量的数量,这些路径或向量通过时间多路复用的方式变换为串行标量数据路径。默认值为 0,表示实现完全并行的数据路径。另请参阅Streaming (HDL Coder)。 |
| SynthesisAttributes | 指定模型中模块和模块输出信号的综合属性。生成的 HDL 代码包含这些属性。有关详细信息,请参阅SynthesisAttributes (HDL Coder)。 |
如果此模块不是 DUT,将忽略目标设定选项卡中的模块属性设置。在 HDL 工作流顾问中,如果您使用 IP 核生成工作流,这些目标设定模块属性值将随模型一起保存。如果您使用 hdlset_param 指定这些目标设定模块属性值,则当您打开 HDL 工作流顾问时,系统将使用对应的值填充这些字段。
| 目标设定 | |
|---|---|
| AdditionalTargetInterfaces | 附加目标接口,指定为字符向量。 要在模型上保存此模块属性,请在 IP 核生成工作流的设置目标接口任务中,对应于您要添加更多接口的 DUT 端口,选择 Add more...。然后,您可以在“添加新目标接口”对话框中添加更多接口。指定接口类型、附加接口数量以及每个附加接口的唯一名称。 值: 示例: |
| ProcessorFPGASynchronization | 处理器/FPGA 同步模式,指定为字符向量。 要在模型上保存此模块属性,请在 IP 核生成工作流的设置目标接口任务中指定处理器/FPGA 同步。 值: 示例: |
| TestPointMapping | 要在模型上保存此模块属性,请在 IP 核生成工作流的设置目标接口任务中指定测试点端口到目标平台接口的映射。 值: 示例: |
| TunableParameterMapping | 要在模型上保存此模块属性,请在 IP 核生成工作流的设置目标接口任务中指定可调参数端口到目标平台接口的映射。 值: 示例: |
| WriteRegisterReadback | 要在模型上保存此模块属性,请在 IP 核生成工作流的生成 RTL 代码和 IP 核任务中指定是否对写寄存器(例如 AXI4 从接口)启用读回。要了解详细信息,请参阅Model Design for AXI4 Register Interface Generation (HDL Coder)。 值: |
| AXI4SubordinateIDWidth | 要在模型上保存此模块属性,请使用 IP 核生成工作流的生成 RTL 代码和 IP 核任务中的 AXI4 从 ID 宽度设置,指定要将 DUT IP 核连接到的 AXI 主设备接口的数量。要了解详细信息,请参阅Define Multiple AXI Master Interfaces in Reference Designs to Access DUT AXI4 Subordinate Interface (HDL Coder)。 值: |
| RegisterInterfaceReadPipeline | 要在模型上保存此模块属性,请使用 IP 核生成工作流的生成 RTL 代码和 IP 核任务中的寄存器接口读取流水线设置,指定要在读取地址解码器路径中插入的流水线阶段数。要了解详细信息,请参阅Model Design for AXI4 Register Interface Generation (HDL Coder)。 值: |
| GenerateDefaultRegisterInterface | 要在模型上保存此模块属性,请在 IP 核生成工作流的生成 RTL 代码和 IP 核任务中指定是否要禁用默认寄存器接口(例如 AXI4 从接口)的生成。 值: |
| IPCoreAdditionalFiles | 设计中黑盒的 Verilog®、SystemVerilog 或 VHDL® 文件。指定每个文件的完整路径,并用分号 (;) 分隔各文件名。 您可以在 HDL 工作流顾问的其他源文件字段中设置此属性。 值: 示例: |
| IPCoreName | IP 核名称,指定为字符向量。 您可以在 HDL 工作流顾问的 IP 核名称字段中设置此属性。如果将此属性设置为默认值,HDL 工作流顾问将基于 DUT 的名称构造 IP 核名称。 值: 示例: |
| IPCoreVersion | IP 核版本号,指定为字符向量。 您可以在 HDL 工作流顾问的 IP 核版本字段中设置此属性。如果此属性设置为默认值,则 HDL 工作流顾问将设置 IP 核版本。 值: 示例: |
| IPDataCaptureBufferSize | FPGA 数据采集缓冲区大小,指定为字符向量。当在 FPGA 上运行时,请使用 FPGA 数据采集来观察设计中的信号。 缓冲区大小的值为 128*2^n,其中 n 是整数。默认情况下,缓冲区大小为 128 (n=0)。n 的最大值是 13,即缓冲区大小的最大值是 1048576 (=128*2^13)。 值: 示例: |
| IPCoreVendorName | IP 核供应商名称,指定为字符向量。 您可以在 HDL 工作流顾问中通过在 IP 核供应商名称字段中输入值来设置此属性。如果此属性设置为默认值,则 HDL 工作流顾问会将供应商名称设置为您的主机的域名。 供应商名称不能以数字字符开头(例如, 值: 示例: |
HDL 代码生成仅支持布尔数据类型的触发输入。
如果子系统的输出是总线,则输出端口的初始条件必须为 0。
触发信号必须为标量。
实际数据类型支持取决于模块实现。
版本历史记录
在 R2006a 之前推出使用 SynthesisAttributes HDL 模块属性指定模块及其输出信号的综合属性。HDL Coder 在生成的 HDL 代码中包含这些属性。
DSPStyle HDL 模块属性已删除。要为乘法器映射指定综合特性,请改用 SynthesisAttributes HDL 模块属性。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)





