主要内容

速度与面积的权衡

速度或区域优化概述

编码器提供了一些选项,可以扩展您在实现过滤器设计时对速度和面积的权衡控制。要实现所需的折衷,可以指定完全平行生成的HDL过滤器代码的体系结构,或从以下几种代码中选择一种电视连续剧架构。中描述了这些体系结构并行和串行体系结构.

下表总结了可用于并行和串行体系结构选择的过滤器类型。

建筑学 可用于过滤器类型。。。
完全平行(默认) 生成HDL代码时支持的筛选器类型万博1manbetx
全序列
  • 直接形式

  • 直接形式对称

  • 直接形式非对称

  • 直接表格I SOS

  • 直接表格二SOS

部分连续
  • 直接形式

  • 直接形式对称

  • 直接形式非对称

  • 直接表格I SOS

  • 直接表格二SOS

级联序列
  • 直接形式

  • 直接形式对称

  • 直接形式非对称

编码器通过传递到的属万博1manbetx性支持所有并行和串行体系结构选项生成hdl功能,如中所述通过generatehdl属性指定速度与面积的权衡.

或者,您可以使用建筑学生成HDL对话框上的弹出菜单,用于选择并行和串行体系结构选项,如中所述在“生成HDL”对话框中选择体系结构.

笔记

编码器还支持分布式算法(DA)万博1manbetx,这是另一种实现过滤器的高效体系结构。看见FIR滤波器的分布式算法.

并行和串行体系结构

完全并行体系结构

此选项是默认选择。A完全并行体系结构为每个滤波器抽头使用专用的乘法器和加法器;抽头并行执行。这种类型的架构速度最佳。但是,它需要比串行架构更多的乘法器和加法器,因此消耗更多的芯片面积。

串行体系结构

串行体系结构及时重用硬件资源,节省芯片面积。编码器提供一系列串行体系结构选项。这些体系结构的延迟为一个时钟周期(参见串行体系结构中的延迟).

您可以从以下串行体系结构选项中进行选择:

  • 全序列:全串行架构通过顺序重用乘法器和加法器资源来节省面积。例如,四抽头滤波器设计将使用单个乘法器和加法器,对每个抽头执行一次乘法/累加操作。设计的乘法/累加部分以输入/输出采样率的四倍运行。这种类型的体系结构以一些速度损失和更高的功耗为代价节省了面积。

    在全串行结构中,系统时钟的运行速率远高于滤波器的采样速率。因此,对于给定的滤波器设计,全串行结构可达到的最大速度小于并行结构的最大速度。

  • 部分连续:部分串行架构涵盖了全并行架构和全串行架构之间的速度与面积权衡的全部范围。

    在部分串行体系结构中,过滤器抽头被分组到串行分区中。每个分区内的抽头串行执行,但分区并行执行。分区的输出在最终输出中求和。

    为筛选器选择部分串行体系结构时,可以通过以下方式定义串行分区:

    • 直接将串行分区定义为整数向量。向量的每个元素指定相应分区的长度。

    • 指定所需的硬件折叠系数ff,一个大于1.. 给定折叠因子,编码器计算串行分区和乘法器的数量。

    • 指定所需的乘数数结果,一个大于1..给定乘法器的数量,编码器计算串行分区和折叠因子。

    “生成HDL”对话框允许您根据这三个参数指定部分串行架构。然后,您可以查看一个参数的更改如何与其他两个参数交互。编码器还提供hdlfilterserialinfo,一个信息函数,可帮助您为筛选器定义最佳串行分区。

  • 级联序列:级联串行架构非常类似于部分串行架构。与部分串行架构中一样,过滤器抽头被分组到几个并行执行的串行分区中。但是,每个分区的累积输出级联到上一个分区的累加器。因此,分区的输出在第一个分区的累加器处计算。这种技术被称为蓄电池再利用. 您不需要最终的加法器,这样可以节省面积。

    级联串行结构需要额外的系统时钟周期来完成对输出的最终求和。因此,相对于非编码部分串行架构中使用的时钟,系统时钟的频率必须稍微增加。

    要生成级联串行体系结构,请指定启用累加器重用的部分串行体系结构。如果不指定串行分区,编码器将自动选择最佳分区。

串行体系结构中的延迟

滤波器的串行化将设计的总延迟增加一个时钟周期。串行体系结构使用累加器(带寄存器的加法器)来添加顺序乘积。使用附加的最终寄存器来存储每个串行分区的求和结果。该操作需要额外的时钟周期。s manbetx 845

将输入数据保持在有效状态

串行结构实现的内部时钟速率高于输入速率N周期(N>=2)每个输入样本的基本时钟。您可以指定测试台将输入数据值保持在有效状态的时钟周期数。

  • 当您选择在样本之间保留输入数据(默认情况下),测试台将输入数据值保持在有效状态,以便N时钟周期。

  • 你什么时候离开在样本之间保留输入数据,测试台仅在一个时钟周期内将输入数据值保持在有效状态。对于下一个时钟周期N-1循环,测试台将数据驱动到未知状态(表示为“X”)直到下一个输入样本打卡。强制输入数据进入未知状态可验证生成的筛选代码是否仅在第一个周期注册输入数据。

该图显示了试验台“生成HDL”对话框的窗格,带有在样本之间保留输入数据设置为其默认设置。

使用等价物样本之间的HoldInputData属性调用生成hdl作用

通过以下方式指定速度与面积的权衡生成hdl性质

默认情况下,生成hdl使用完全并行的体系结构生成过滤器代码。如果希望生成具有完全并行体系结构的过滤器代码,则不必显式指定此体系结构。

两个属性将串行体系结构选项指定给生成hdl功能:

  • 串行分区:此属性指定筛选器的串行分区。

  • 再利用:此属性启用或禁用累加器重用。

下表总结了如何设置这些属性以生成所需的体系结构。

要生成这个
建筑学
将SerialPartition设置为。。。 将ReuseAccum设置为。。。
完全平行 省略此属性 省略此属性
全序列 N哪里N是过滤器的长度 未指定,或“关”
部分连续

[p1 p2 p3…pN]:向量N整数元素,其中N向量的每个元素指定相应分区的长度。矢量元素的和必须等于过滤器的长度。当为部分串行体系结构定义分区时,请考虑以下内容:

  • 过滤器长度应尽可能均匀地划分为一个长度等于预期乘法器数量的向量。例如,如果您的设计需要一个长度为9且带有2个乘法器的过滤器,则建议使用分区[5 4]。如果您的设计需要3个乘法器,则建议使用分区[3 3 3]而不是一些不太统一的划分,例如[1 4 4][3 4 2].

  • 如果您的设计受到必须以精确数字计算每个输出值(对应于每个输入值)的限制N对于时钟周期,使用N作为最大的分区大小,并尽可能均匀地对其他元素进行分区。例如,如果过滤器长度为9,并且您的设计需要正好4个周期来计算输出,则将分区定义为[4 3 2].此分区以3个乘法器为代价,以4个时钟周期执行。

您还可以根据所需的硬件折叠因子或最佳乘法器数量来指定串行体系结构。看见hdlfilterserialinfo有关详细信息。

“关”
使用显式指定的分区进行串行级联 [p1 p2 p3…pN]:具有N元素,在哪里N是串行分区的数目。向量的每个元素指定相应分区的长度。向量元素之和必须等于过滤器的长度。矢量元素的值必须按降序显示,但最后两个元素必须相等。例如,对于长度为9的筛选器,分区[5 4][4 3 2]这是合法的,但是分区[3 3 3][3 2 4]在代码生成时引发错误。 “开”
具有自动优化分区的串行级联 省略此属性 “开”

您可以使用helper函数hdlfilterserialinfo探索过滤器的可能分区。

有关示例,请参见为FIR滤波器生成串行分区.

IIR SOS滤波器的串行体系结构

为IIR SOS过滤器结构指定部分或完全串行架构(df1sos双四阶滤波器),指定以下参数之一:

  • “折叠因子”,ff:指定所需的硬件折叠系数ff,一个大于1的整数。给定折叠因子,编码器计算乘法器的数量。

  • “nummulti钳子”,n结果:指定所需的乘数数结果,大于1的整数。给定乘法器的数目,编码器计算折叠因子。

要获取有关折叠因子选项和过滤器的相应乘数数的信息,请调用hdlfilterserialinfo作用

有关示例,请参见为IIR滤波器生成串行架构.

在“生成HDL”对话框中选择体系结构

这个建筑学“生成HDL”对话框中的弹出菜单可用于选择并行和串行体系结构。以下主题描述了必须为每个用户设置的UI选项建筑学选择

指定完全并行的体系结构

默认值建筑学背景是完全平行,如图所示。

指定全串行体系结构

当您选择全序列,建筑学选项时,“生成HDL”对话框将显示有关折叠因子、乘法器数量和串行分区的其他信息。由于这些参数取决于过滤器的长度,因此它们以只读格式显示,如下图所示。

“生成HDL”对话框还显示查看详细信息链接。单击此链接时,编码器将在单独的窗口中显示HTML报告。该报告将显示当前过滤器的折叠因子、乘数和串行分区设置的详尽表格。您可以使用该表格帮助您为设计选择最佳设置。

为部分串行体系结构指定分区

当您选择部分连续建筑学选项时,GenerateHDL对话框将显示与串行分区相关的附加信息和数据输入字段(请参见下图)

“生成HDL”对话框还显示查看详细信息链接。单击此链接时,编码器将在单独的窗口中显示HTML报告。该报告将显示当前过滤器的折叠因子、乘数和串行分区设置的详尽表格。您可以使用该表格帮助您为设计选择最佳设置。

这个指定的下拉菜单允许您决定如何定义部分串行体系结构。选择以下选项之一:

  • 折叠因子:菜单右侧的下拉菜单折叠因子包含筛选器的折叠因子的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。

  • 倍频器:菜单右侧的下拉菜单倍频器包含筛选器乘数数量的值选项的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。

  • 串行分区:菜单右侧的下拉菜单串行分区包含筛选器的串行分区选项的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。

指定级联串行体系结构

当您选择级联序列建筑学选项时,“生成HDL”对话框将显示串行分区字段,如下图所示。

这个指定的菜单允许您根据不同标准定义串行分区的数量和大小,如中所述通过generatehdl属性指定速度与面积的权衡.

为IIR SOS过滤器指定串行架构

要在UI中为IIR SOS过滤器结构指定部分或完全串行架构,请设置以下选项:

  • 建筑学:选择完全平行(违约),全序列部分连续。如果您选择部分连续,UI将显示指定的下拉菜单。

  • 指定的:选择以下选项之一:

    • 折叠因子:指定所需的五金件折叠系数,ff,一个大于1的整数。给定折叠因子,编码器计算乘法器的数量。

    • 倍频器:指定所需的乘法器数量,结果,大于1的整数。给定乘法器的数目,编码器计算折叠因子。

示例:直接表格I SOS过滤器。以下示例创建了一个直接表单I SOS(df1sos)过滤器设计并打开用户界面。代码示例后的图显示了为使用指定的部分串行体系结构配置的编码器选项折叠因子18岁。

Fs=48e3%采样频率Fc=10.8e3%截止频率N=5%过滤顺序f_lp=f设计低通(‘n,f3db’,N,Fc,Fs)过滤器=设计(f_lp,“黄油”,“过滤器结构”,“df1sos”,“系统对象”,true)fdhdltool(filt,numerictype(1,16,15))

示例:直接形式II SOS过滤器。以下示例创建了一个直接的表单II SOS(df2sos)使用过滤器生成器进行过滤器设计。

该滤波器为低通滤波器df2sos过滤器顺序为6的过滤器。过滤器算法设置为定点.

代码生成选项卡,该生成HDL按钮激活过滤器设计HDL编码器™ 下图显示了为该过滤器配置的HDL编码器选项,使用带有折叠因子第9页。

指定分布式算术体系结构

这个建筑学弹出菜单还包括分布式算法(DA)选项看见FIR滤波器的分布式算法)有关此体系结构的信息。

架构选项和其他HDL选项之间的交互

选择某些建筑学菜单选项可以更改或禁用其他选项。

  • 全序列选项时,以下选项将设置为默认值并禁用:

    • 系数乘数

    • 添加管道寄存器

    • FIR加法器样式

  • 部分连续选择以下选项:

    • 这个系数乘数选项设置为其默认值并被禁用。

    • 如果过滤器是多速率的,则时钟输入选项设置为仅有一个的和残疾人。

  • 级联序列选项时,以下选项将设置为默认值并禁用:

    • 系数乘数

    • 添加管道寄存器

    • FIR加法器样式