主要内容

过滤器的子系统优化

离散的FIR过滤器(金宝appSimulink)(与标量或多通道输入数据一起使用)和双quad滤波器块参与子系统级优化。要设置优化属性,请右键单击子系统并打开HDL属性对话框。

要使这些块参与子系统级优化,您必须离开块级建筑学设置为默认值,完全平行

在基于帧的输入模式下使用离散FIR滤波器时,您不能使用这些子系统优化。

分享

这些过滤器块支持在过滤器中和子系统中的多金宝app个块中共享资源。指定一个共享因素,优化工具在HDL中生成过滤器实现,该实现使用时间模型共享资源。要生成使用最小数量乘数数量的HDL实现,请设置共享因素大于或等于乘数总数。共享算法共享具有相同输入和输出数据类型的乘数。要启用块之间的共享,您可能需要自定义过滤器的内部数据类型。另外,您可以选择以特定的系统时钟速率来定位共享因素

默认情况下,资源共享适用于乘数。要共享加法器,请在下面选择复选框资源共享配置参数>HDL代码生成>全局设置>优化对话框。

有关更多信息,请参阅资源共享(HDL编码器)多通道滤波器子系统的区域减少例子。

您也可以使用共享因素使用多通道过滤器。看滤光子系统的区域减少

指跨多个渠道共享设计的原子部分。要生成多通道子系统的流式HDL实现,请设置流factor到设计中的频道数量。

如果子系统包含一个单个过滤器块,则块级频道共享选项和子系统级别流factor选项结果类似HDL实现。采用流factor当您的子系统包含多个过滤器块或可以参与优化的其他多通道逻辑时。您必须设置块级频道共享离开使用流factor在子系统级别。

(HDL编码器)滤光子系统的区域减少例子。

管道

您可以启用分布式投保在子系统级别,允许过滤器参与管道优化。优化工具在InputPipelineOutputPipeline在子系统级别指定的管道阶段。优化工具还可以在这些块级管道阶段运行:

  • InputPipelineOutputPipeline

  • 乘数流台管乘数输入Pipeline

  • AddPipielineGisters

优化工具不会在滤波器体系结构中移动设计延迟。看分布式管道(HDL编码器)

过滤器块还参与时钟率管道,如果在配置参数。默认情况下启用此功能。看时钟率管道(HDL编码器)

多通道滤波器子系统的区域减少

为了减少多通道过滤器和周围逻辑的HDL实现中的乘数数量,请使用流factorHDL Coder™优化。

该模型包括一个两通道正弦信号源,供应HDL代码生成的滤波器子系统。

子系统包含一个离散的FIR滤波器块和恒定乘数。包括乘数以显示在子系统中所有合格逻辑上运行的优化。

该过滤器具有44个对称系数。在不启用优化的情况下,生成的HDL代码利用对称性。非优化的HDL实现使用46个乘数:每个通道的每个通道22,产品块的每个通道1。

要启用对多通道FIR滤波器子系统的流式传输优化,请右键单击子系统并选择HDL代码>HDL块属性

设置流factor到2,因为此设计是一个两通道系统。

观察优化的效果,在配置参数>HDL代码生成, 选择生成资源利用率报告生成优化报告。然后,要生成HDL代码,请右键单击多通道FIR滤波器子系统并选择HDL代码>为子系统生成HDL

应用流因子,一个通道的逻辑是实例化的,并以原始模型的速率两倍。

在里面代码生成报告窗口,单击高级资源报告。现在,生成的HDL代码使用23个乘数,而非优化代码中则使用46个乘数。过滤器内核中的乘数和后续缩放位置在通道之间共享。

申请共享因素到多通道过滤器,设置共享因素到23。

优化的HDL现在仅使用2个乘数。优化工具不会共享不同尺寸的乘数。

滤光子系统的区域减少

为了减少HDL实现多滤波器设计中的乘数数量,请使用共享因素HDL Coder™优化。

该模型包括一个正弦信号源,供应HDL代码生成的滤波器子系统。

子系统包含一个离散的FIR滤波器块和一个双Quad滤波器块。该设计演示了优化工具如何在多个过滤器块之间共享资源。

离散的FIR滤波器块具有43个对称系数。Biquad过滤器块具有6个系数,其中两个是统一。在不启用优化的情况下,生成的HDL代码利用对称和统一系数。子系统的非优化HDL实现使用27个乘数。

为了启用流媒体优化多滤波器子系统,右键单击子系统并选择HDL代码>HDL块属性

设置共享因素至27,将设计减少到单个乘数。优化工具试图与匹配的数据类型共享乘数。为了减少单个乘数,您必须设置过滤器块的内部数据类型以相互匹配。

观察优化的效果,在配置参数>HDL代码生成, 选择生成资源利用率报告生成优化报告。然后,要生成HDL代码,请右键单击多滤波器子系统,然后选择HDL代码>为子系统生成HDL

共享因素应用,子系统将速率提高27,以共享所有系数的单个乘数。

在里面代码生成报告窗口,单击高级资源报告。生成的HDL代码现在使用一个乘法器。

相关话题