Enabled Subsystem
由外部输入使能执行的子系统。

库:
Simulink /
Ports & Subsystems
HDL Coder /
Ports & Subsystems
描述
Enabled Subsystem 模块是一个预先配置的 Subsystem 模块,可以作为一个起点,用于创建在控制信号具有正值时执行的子系统。
使用 Enabled Subsystem 模块可以建模:
不连续点
可选功能
替代功能
有关 Enabled Subsystem 模块参数的说明,请参阅 Subsystem。
示例

Illustration of Law of Large Numbers
Use MATLAB System blocks to illustrate the law of large numbers.
端口
输入
In — 子系统模块的信号输入
标量 | 向量 | 矩阵
Subsystem 模块的信号输入,指定为标量、向量或矩阵。在子系统中放置一个 Inport 模块会向 Subsystem 模块添加一个外部输入端口。端口标签与 Inport 模块的名称相匹配。
使用 Inport 模块可以从局部环境中接收信号。
数据类型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
Enable — 子系统模块的控制信号输入
标量 | 向量 | 矩阵
子系统中的 Enable 模块向 Subsystem 模块添加一个外部输入端口,使该模块成为 Enabled Subsystem 模块。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
输出
Out — 子系统模块的信号输出
标量 | 向量 | 矩阵
从 Subsystem 模块输出的信号,以标量、向量或矩阵形式返回。在子系统中放置一个 Outport 模块会向 Subsystem 模块添加一个外部输出端口。端口标签与 Outport 模块的名称相匹配。
使用 Outport 模块可以向局部环境发送信号。
数据类型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| image
模块特性
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
实际代码生成支持取决于模块实现。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
HDL Coder™ 提供影响 HDL 实现和综合逻辑的额外配置选项。
在针对 HDL 代码生成的模型中使用使能子系统时,需要考虑以下几点:
为了使综合结果与 Simulink® 结果相匹配,使能端口必须由 FPGA 上的已向同步时钟注册的逻辑来驱动。
将单位延迟置于使能子系统输出信号上。这样做可以防止代码生成器在 HDL 代码中插入额外的旁路寄存器。
使能子系统可能会在以下方面影响综合结果:
在某些情况下,系统时钟速度可能会稍有下降。
生成的代码使用更多资源,根据使能子系统的实例数量和每个子系统的输出端口数量而缩放。
架构 | 描述 |
---|---|
模块(默认值) | 为子系统和子系统内的模块生成代码。 |
BlackBox | 生成黑盒接口。生成的 HDL 代码仅包括子系统的输入/输出端口定义。因此,您可以在模型中使用子系统来生成与手动编写的现有 HDL 代码的接口。 子系统的黑盒接口生成类似于没有时钟信号的 Model 模块接口生成。 |
无 HDL | 从生成的代码中删除子系统。您可以在仿真中使用子系统,但在 HDL 代码中将其视为“无操作”。 |
通用 | |
---|---|
AdaptivePipelining | 基于综合工具、目标频率和乘法器字长的自动流水线插入。默认值为 inherit。另请参阅AdaptivePipelining (HDL Coder)。 |
BalanceDelays | 检测沿一条路径引入的新延迟,并在其他路径上插入匹配的延迟。默认值为 inherit。另请参阅BalanceDelays (HDL Coder)。 |
ClockRatePipelining | 以较快的时钟频率而不是较慢的数据速率插入流水线寄存器。默认值为 inherit。另请参阅ClockRatePipelining (HDL Coder)。 |
ConstrainedOutputPipeline | 通过移动设计中现有延迟的方式来放置在输出端的寄存器的数量。分布式流水线处理不会重新分发这些寄存器。默认值为 |
DistributedPipelining | 流水线寄存器分配或寄存器重定时。默认值为 inherit。另请参阅DistributedPipelining (HDL Coder)。 |
DSPStyle | 乘法器映射的综合属性。默认值为无。另请参阅DSPStyle (HDL Coder)。 |
FlattenHierarchy | 从生成的 HDL 代码中删除子系统层次结构。默认值为 inherit。另请参阅FlattenHierarchy (HDL Coder)。 |
InputPipeline | 要在生成的代码中插入的输入流水线阶段数。分布式流水线处理和受限输出流水线处理可以移动这些寄存器。默认值为 |
OutputPipeline | 要在生成的代码中插入的输出流水线阶段数。分布式流水线处理和受限输出流水线处理可以移动这些寄存器。默认值为 |
SharingFactor | 要映射到单个共享资源的功能等效的资源的数量。默认值为 0。另请参阅Resource Sharing (HDL Coder)。 |
StreamingFactor | 并行数据路径或向量的数量,这些路径或向量通过时间多路复用的方式变换为串行标量数据路径。默认值为 0,表示实现完全并行的数据路径。另请参阅Streaming (HDL Coder)。 |
目标设定
此模块不能为 DUT,因此目标设定选项卡中的模块属性设置将被忽略。
HDL Coder 支持符合以下条件的使能子系统的 HDL 代码生成:
使能子系统不是 DUT。
子系统未同时触发和使能。
使能信号是标量。
使能信号的输入数据类型是布尔型。
如果子系统的输出是总线,则输出端口的初始条件必须为 0。
使能子系统的所有输入和输出(包括使能信号)都以相同的速率运行。
Enable 模块的显示输出端口参数设置为 off。
Enable 模块的启用时的状态参数设置为保持(也就是说,Enable 模块在使能时不会重置状态)。
使能子系统输出端口的禁用时的输出参数设置为保持(也就是说,使能子系统在禁用时不会重置输出值)。
如果 DUT 包含以下模块,
RAMArchitecture
将设置为WithClockEnable
:Dual Port RAM
Simple Dual Port RAM
Single Port RAM
使能子系统不包含以下模块:
CIC Decimation
CIC Interpolation
FIR Decimation
FIR Interpolation
Downsample
Upsample
HDL FIFO
HDL Cosimulation 模块 (HDL Verifier™)
Rate Transition
NR Polar Encoder 和 NR Polar Decoder (Wireless HDL Toolbox™)
Automatic Gain Controller 示例说明如何在 HDL 代码生成中使用使能子系统。要打开该示例,请输入:
hdlcoder_agc
PLC 代码生成
使用 Simulink® PLC Coder™ 生成结构化文本代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
实际数据类型支持取决于模块实现。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)