主要内容

数据域

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

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

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

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

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

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

指定数据流域

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

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

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

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

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

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

请注意

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

数据流域的模拟

数据流域的模拟利用了主机的多核CPU架构。它会自动划分您的模型,并使用多个线程模拟子系统。

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

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

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

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

数据流参数

延迟

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

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

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

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

    set_param (gcs,“SimCompilerOptimization”“上”

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

    set_param (gcs,“SimCtrlC”“关闭”

  • 换行溢出(金宝app模型)没有一个

    set_param (gcs,“IntegerOverflowMsg”“没有”

  • 饱和溢出(金宝app模型)没有一个

    set_param (gcs,“IntegerSaturationMsg”“没有”

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

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

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

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

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

如果指定的延迟大于Dataflow Simulation Assistant建议的延迟,则额外的延迟都将插入子系统的输出。如果您指定的延迟值小于Dataflow模拟助手建议的值,助手会警告您错过可用并发性。

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

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

自动帧大小计算

金宝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

对于一些街区,比如范围block, S金宝appimulink在编辑时在模型画布中通过用橙色突出显示块来指示它们不受支持。金宝app

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

另请参阅

相关的话题