使用数据流域,您可以建模和模拟计算密集型信号处理或多速率信号处理系统。数据流域使用数据驱动和静态调度的计算同步数据流模型进行模拟。
在模型中使用数据流域有两个主要原因。
通过多线程执行提高模拟吞吐量。
数据流域利用了主机的多核CPU架构,可以显著提高模拟速度。域会自动划分模型并使用多个线程模拟系统。通过向系统添加延迟,可以进一步提高并发性并改进模型的模拟吞吐量。
自动推断信号大小为基于帧的多速率模型。
当自动计算框架尺寸参数启用时,数据流域自动计算帧大小并将缓冲区插入到您的模型中,避免多速率信号处理系统中的信号大小传播错误。
要创建数据流域,请使用数据流子系统块领域数据流子系统块是预先配置的。
将现有的子系统转换成数据流子系统:
在执行页签属性查看器,选择设置执行域复选框。
如果属性检查器不可见,请在建模选项卡,在设计中,选择属性查看器. 有关属性检查器的详细信息,请参见使用属性检查器设置模型和块属性(金宝appSimulink).
选择子系统后,设置领域来数据流
.
在子系统内部,在模型画布的左下角,现在有一个表示该子系统是Dataflow子系统。
请注意
数据流域仅在子系统级别支持。金宝app不能设置领域的顶级模型数据流
.
数据流域的模拟利用了主机的多核CPU架构。它会自动划分模型并使用多个线程模拟子系统。
第一次模拟数据流域时,模拟是单线程的。在此模拟过程中,软件将执行成本分析。下次模型编译时,软件会自动对系统进行分区,以便多线程执行。
每次在数据流域中进行更改时,下一个模拟可能是单线程的,以允许软件执行新的成本分析。在进行成本分析模拟之后,下一次模型编译时,软件重新划分域,随后的模拟是多线程的。
多线程模拟不支持某些块和语言特性。金宝app如果一个数据流子系统包含不支持多线程模拟的块或语言特性,则使用Simulink金宝app金宝app®发出警告,子系统始终在单个线程中进行模拟。
如果数据流子系统包含数据流子系统内部不支持的块或语言功能,Simulink将生成错误。有关更多信息,请参阅金宝app金宝app数据金宝app流域中不支持的Sim金宝appulink软件功能.
为了提高系统的吞吐量,增加系统的延迟是有好处的。指定延迟的价值执行属性检查器的选项卡。
为了进一步提高模拟性能,Dataflow simulation Assistant可以为模拟推荐延迟值以及其他模型属性。单击数据流助手按钮打开数据流模拟助手。
Dataflow模拟助手建议您使用以下设置以获得最佳模拟性能。
要接受建议的模型设置,请单击旁边的模拟性能的建议模型设置点击全部接受.或者,您可以展开该部分以单独更改设置。
点击分析按钮来分析模拟性能的数据流域,并让数据流模拟助理为您的数据流子系统建议最佳延迟。
数据流分析有三个步骤。在第一步中,分析通过检查数据流子系统的建模更改来确定是否需要将模型重新划分到线程中。如果需要分区,数据流子系统将在单个线程中对子系统中的每个块启用运行时分析进行模拟。在最后一步中,助手重新编译模型,它自动将子系统划分为一个或多个线程,以利用模型中的并发性。
在分析完成后,助手建议一个延迟值,以优化主机的多核CPU架构的系统吞吐量。
Dataflow Simulation Assistant指示如果应用建议的延迟,模型将使用的线程数。点击接受按钮以将建议的延迟应用到子系统。当延迟被引入到数据流域中时,数据流子系统的输出将在模型画布上用延迟图标进行标记。在数据流子系统中对模型的更改可能需要进行成本分析和重新划分。
如果指定的延迟大于Dataflow Simulation Assistant建议的延迟,则所有附加延迟都将插入子系统的输出中。如果指定的延迟值小于Dataflow Simulation Assistant建议的值,则助手会警告您错过了可用的并发性。
如果您的模型包含几个数据流子系统,您可以使用Performance Advisor在单个步骤中分析并建议每个数据流子系统的延迟。要找到模型中Dataflow子系统的最佳延迟设置,请打开Performance Advisor。在绩效顾问>模拟>需要运行模拟的检查文件夹中,运行检查数据流域设置检查
有关数据流域中的并行类型的更多信息,请参见数据流域的多核仿真与代码生成.
金宝appSimulink可以自动计算基于帧的信号处理系统中每个块所需的帧大小,并在需要时插入缓冲区。要在数据流子系统中启用自动帧大小计算,请选择自动计算框架尺寸在执行属性检查器的选项卡。
支持自动帧大小计算金宝app功能。只有数据类型为数字类型之一(内置整数、双精度、单精度或定点)的信号才支持金宝app自动帧大小计算。不支持使用枚举类型或数据类型为总线的信号。
帧大小计算仅支持二维信号。金宝app
数据流子系统不支持以下Simulink软件特性。金宝app金宝app
不支持金宝app | 描述 |
---|---|
适应信号 | 该软件不支持可变大小的信号。金宝app可变大小信号是指其大小(维度中元素的数量)和值都可以在模型执行期间改变的信号。 |
参考模型 | 模型(金宝appSimulink)数据流域不支持块。金宝app |
非虚拟Simulink金宝app子系统,包括触发子系统(金宝appSimulink),启用子系统(金宝appSimulink),以及原子子系统 | 数据流域只支持虚拟子系统。金宝app |
具有非常量或非继承采样时间的块 | 必须继承数据流子系统中的所有示例时间(-1 ),或常数(正 ). |
连续的块 | 块的连续(金宝appSimulink)在数据流域中不支持库。金宝app 金宝appSimulink在编辑时在模型画布中以橙色高亮显示块,表示不支持这些块。金宝app |
数据存储模块 | 数据存储存储器,数据存储读取和数据存储写入数据流子系统内部不支持块。金宝app |
Simulink块的金宝app子集 | 如果数据流子系统包含不受支持的块或语言功能,Simulink将在模型编译时生成错误。金宝app金宝app 对于某些块,例如范围块,在编辑时,S金宝appimulink在模型画布中通过用橙色高亮显示块表示它们不受支持。金宝app |
Stateflow®图表 | 数据流子系统不支持状态流图。金宝app |
SimEvents®阻碍 | 在数据流子系统中不支持SimEvents块。金宝app |
HDL代码生成 | 对于带有数据流子系统的模型,只支持C/ c++代码生成。金宝app |