流动

什么是流媒体?

流动是一个区域优化,其中HDL编码器™ 将矢量数据路径转换为标量数据路径(或多个较小的矢量数据路径)。默认情况下,HDL编码器生成完全平行向量计算的实现。例如,代码生成器将向量和实现为多个加法器,在单个时钟周期内并行执行。这种技术会消耗很多硬件资源。通过流式传输,生成的代码通过在较少数量的共享硬件资源上复用数据来节省芯片面积。

通过指定A.流媒体因子对于子系统,您可以控制在该子系统中共享此类资源的程度。当流化因子的比率(N)到子系统数据路径宽度(v昏暗的)是1:1,HDL编码器实现了一个完全标量的数据路径。流因子为0(默认值)会为向量计算生成完全并行的实现(即不共享)。

如果知道子系统的最大向量维数和采样率,则可以计算子系统可能的流因子和结果采样率。但是,即使请求的流因子在数学上是可能的,子系统也必须满足流的其他标准。

默认情况下,当您应用流优化时,HDL编码器将对共享硬件资源进行过采样,以生成具有原始延迟的区域优化实现。如果流数据路径的运行速率低于基本速率,则代码生成器将以基本速率实现数据路径。您还可以限制过采样ng比率以满足目标硬件时钟限制。要了解更多信息,请参阅时钟速率流水线.

您可以生成并使用验证模型来验证优化DUT的输出是否与原始DUT生成的结果完全一致。要了解有关验证模型的更多信息,请参阅生成的模型和验证模型.

指定流媒体

要从UI指定流式处理,请执行以下操作:

  • 在里面应用程序选项卡,选择HDL编码器.这HDL码出现选项卡。选择子系统,模型引用或Matlab功能块,然后单击HDL块属性. 在流量系数字段,输入要流的资源数。

    对于Matlab功能块,指定流量系数,在“HDL块属性”对话框中,必须将块的HDL体系结构设置为Matlab DataPath..

  • 在子系统、模型参考或子系统上单击鼠标右键Matlab功能阻止并选择HDL码>HDL块属性. 在流量系数字段,输入要流的资源数。

在命令行中,可以设置流量系数使用hdlset_参数功能,如下例所示。

型号名称=“sfir_已修复”dut=“sfir固定/对称fir”;Open_System(ModelName)HDLSet_Param(DUT,'StreamingFactor', 4);

如何确定流化因子和采样时间

在给定的子系统中,如果N是流媒体因素,以及v昏暗的是最大矢量维数,则结果流化子系统的数据路径为以下路径之一:

  • 宽度v溪流= (v昏暗的/N), 如果v昏暗的>N.

  • 宽度v溪流= (N/五昏暗的), 如果N>v昏暗的.

  • 标量。

如果原始数据路径使用采样时间,s,即等于基本采样时间,则流式子系统的采样时间为:

  • S / N., 如果v昏暗的>N.

  • S / V.昏暗的, 如果N>v昏暗的.

如果原始数据路径使用采样时间,s,即大于基本采样时间,s基础,然后流式子系统使用示例时间进行操作s基础/过采样.请注意,流式采样时间与原始采样时间无关,s.

确定支持流的块金宝app

HDL编码器支持多个金宝app流块。作为最佳实践,运行CheckHDL.为子系统生成流式代码之前的函数。CheckHDL.报告子系统中与流不兼容的块。如果为包含不兼容块的子系统启动流代码生成,编码器将围绕这些块工作,并为它们生成非流代码。

HDL编码器无法将流优化应用于模型引用。

流媒体子系统的要求

在应用流之前,HDL编码器对要流的子系统执行一系列检查。如果满足以下条件,则可以流化子系统:

  • 流媒体因素N是矢量宽度的完美除数v昏暗的,或向量宽度必须是流媒体因子的完美除数。

  • 子系统的所有输入都具有相同的矢量大小。如果输入具有不同的向量大小,则可以通过平整子系统层次结构来流流。当您平整层次结构时,流优化识别具有不同矢量大小的区域,并为这些区域创建流组。这些组具有不同的流媒体因子,这些流量被从矢量尺寸推断出来。

流媒体报告

要在报告中查看流信息,请在为每个子系统或模型引用生成代码之前,启用优化报告。要启用此报告,请在HDL码选项卡,选择报告期权,然后选择生成优化报告.

生成优化报告时,在流和分享部分,您可以看到流优化的效果。如果Streaming不成功,则报告显示导致流失败的诊断消息和违规块。当无法实现所请求的流传输因子时,HDL编码器生成非流式代码。

如果流媒体成功,则报告显示流量系数被推断出来,以及一个规定的表:

  • 团体:一组Simulink的唯一组ID金宝app®属于流媒体组的块。

  • 推断出流体因子:HDL编码器推断出流体因子流媒体因子在HDL块特性中指定的。

要查看属于Simulink模型中的流组的块组以及生成的模型,请单击“金宝app突出显示流媒体组和诊断链接在报告中。

相关话题