主要内容

数据域

使用数据流域,您可以建模和模拟计算密集的信号处理或多速率信号处理系统。数据流域使用计算同步数据流模型进行模拟,该模型是数据驱动和静态调度的。

在模型中使用数据流域有两个主要原因。

  • 通过多线程执行提高模拟吞吐量。

    数据流域利用了主机的多核CPU架构,可以显著提高仿真速度。域自动对模型进行分区,并使用多线程模拟系统。通过向系统添加延迟,您可以进一步增加并发性并提高模型的模拟吞吐量。

  • 自动推断基于帧的多速率模型的信号大小。

    自动计算当前帧大小参数启用时,数据流域自动计算帧大小并在模型中插入缓冲区,避免多速率信号处理系统中的信号大小传播错误。

指定数据流领域

要创建数据流域,请使用数据流子系统块。的领域数据流子系统块是预先配置的。

将现有的子系统转换为数据流子系统

  1. 执行选项卡的属性检查器,选择设置执行域复选框。

    如果属性检查器不可见,则在建模选项卡,在设计中,选择属性检查器.有关属性检查器的更多信息,请参见使用属性检查器设置模型和块属性(金宝app模型)

  2. 选择子系统后,设置数据流

在子系统内部,在模型画布的左下角,现在有一个图标,表示该子系统是数据流子系统。

请注意

仅在子系统级别支持数据流域。金宝app您不能设置顶级模型的数据流

数据流域的模拟

数据流域的模拟利用了主机的多核CPU架构。它自动对模型进行分区,并使用多线程模拟子系统。

第一次模拟数据流域时,模拟是单线程的。在模拟过程中,软件执行成本分析。下次编译模型时,软件自动对系统进行多线程执行分区。

每次在数据流域中进行更改时,下一个模拟可能是单线程的,以允许软件执行新的成本分析。在进行成本分析模拟之后,下次编译模型时,软件将重新对域进行分区,随后的模拟是多线程的。

多线程模拟不支持某些块和语言特性。金宝app如果数据流子系统包含不支持多线程模拟的块或语言特性,则使用Simulink金宝app金宝app®发出警告,子系统总是在单个线程中进行模拟。

如果数据流子系统包含数据流子系统内部不支持的块或语言特性,Simulink将产生错误。金宝app金宝app有关更多信息,请参见数据金宝app流域中不支持的Sim金宝appulink软件特性

数据流参数

延迟

为了增加系统的吞吐量,增加系统的延迟可能是有利的。指定延迟的价值执行选项卡的属性检查器。

为了进一步提高模拟性能,Dataflow simulation Assistant可以为模拟推荐一个延迟值,以及其他模型属性。单击数据流的助理按钮打开数据流模拟助手。

数据流模拟助手建议您使用以下设置以获得最佳模拟性能。

  • 编译器优化级别(金宝app模型)优化(更快的运行)

    set_param (gcs,“SimCompilerOptimization”“上”

  • 禁用确保响应能力(金宝app模型)参数。

    set_param (gcs,“SimCtrlC”“关闭”

  • 包装上溢出(金宝app模型)没有一个

    set_param (gcs,“IntegerOverflowMsg”“没有”

  • 浸透在溢出(金宝app模型)没有一个

    set_param (gcs,“IntegerSaturationMsg”“没有”

接受建议的模型设置,旁边建议模型设置模拟性能,点击接受所有.或者,您可以展开该部分单独更改设置。

单击分析按钮,以分析数据流域的模拟性能,并让数据流仿真助手为您的数据流子系统建议最佳延迟。

数据流分析是一个三步过程。在第一步中,分析通过检查数据流子系统的建模更改来确定是否需要将模型重新划分到线程中。如果需要分区,则数据流子系统在单个线程中模拟为子系统内的每个块启用运行时分析。在最后一步中,助手重新编译模型,这将自动将子系统划分为一个或多个线程,以利用模型中的并发性。

分析完成后,助手建议一个延迟值,该值针对主机的多核CPU架构优化系统吞吐量。

如果应用建议的延迟,Dataflow Simulation Assistant指示模型将使用的线程数。单击接受按钮,将建议的延迟应用到子系统。当延迟引入数据流域时,在模型画布上用延迟图标标记数据流子系统的输出。对数据流子系统中的模型的更改可能需要进行成本分析和重新分区。

如果指定的延迟大于Dataflow Simulation Assistant建议的延迟,则额外的延迟将全部插入到子系统的输出中。如果您指定的延迟值小于Dataflow Simulation Assistant建议的值,助手将警告您正在丢失可用并发性。

如果您的模型包含几个数据流子系统,那么您可以使用Performance Advisor在单个步骤中分析并建议每个数据流子系统的延迟。要找到模型中Dataflow子系统的最佳延迟设置,请打开Performance Advisor。在性能顾问>模拟>需要运行模拟的检查文件夹,运行检查数据流域设置检查。

有关数据流域中并行性类型的更多信息,请参见数据流域的多核仿真与代码生成

自动帧大小计算

金宝appSimulink可以在基于帧的信号处理系统中自动计算每个块所需的帧大小,并在需要的地方插入缓冲区。若要在数据流子系统中启用自动帧大小计算,请选择自动帧大小计算执行选项卡的属性检查器。

支持自动帧大小计算金宝app的功能。自动帧大小计算仅支持数据类型为数值类型(内置整数、双精度、单精度或定点)金宝app之一的信号。不支持使用枚举类型或数据类型为总线的信号。金宝app

帧大小计算只支持二维信号。金宝app

块支持自动帧大金宝app小计算

不支金宝app持的金宝app数据流域的软件特性

Dataflow子系统不支持以下Simulink软件特金宝app性。金宝app

不支持金宝app 描述
适应信号 该软件不支持可变大小的信号。金宝app变大小信号是一种信号,其大小(维度中的元素数量),除了其值外,还可以在模型执行期间发生变化。
引用模型 模型(金宝app模型)数据流域中不支持块。金宝app
非虚拟Simulink金宝app子系统,包括触发子系统(金宝app模型)启用子系统(金宝app模型),和原子子系统 数据流域中只支持虚拟子系统。金宝app
具有非常数或非继承的样本时间的块 数据流子系统内的所有采样时间必须被继承(-1),或常量().
连续的块

块的连续(金宝app模型)库在数据流域中不支持。金宝app

金宝appSimulink在编辑时在模型画布中通过用橙色高亮显示块来指示不支持这些块。金宝app

数据存储模块

数据存储内存数据存储读取,数据存储写数据流子系统内部不支持块。金宝app

Simulink块的金宝app子集

如果数据流子系统包含不受支持的块或语言特性,则在模型编译时,Simulink会生成一个错误。金宝app金宝app

对于一些区块,例如范围块,Simuli金宝appnk在编辑时在模型画布中通过突出显示橙色的块指示它们不受支持。金宝app

Stateflow®图表 数据流子系统内部不支持状态流图。金宝app
SimEvents® 数据流子系统内部不支持SimEvents块。金宝app
HDL代码生成 对于具有数据流子系统的模型,只支持C/ c++代码生成。金宝app

另请参阅

相关的话题