速度与面积的权衡
速度或区域优化概述
编码器提供的选项可以扩展您在实现滤波器设计时对速度与面积权衡的控制。要实现所需的权衡,您可以指定完全平行架构生成的HDL过滤器代码,或选择其中之一串行架构。中描述了这些体系结构并行和串行架构.
下表总结了可用于并行和串行体系结构选择的过滤器类型。
体系结构 | 适用于过滤器类型… |
---|---|
完全平行 (默认) |
支持HDL代码生成的筛选器类型金宝app |
全系列 |
|
部分系列 |
|
级联序列 |
|
控件的属性支持所有的金宝app并行和串行体系结构选项generatehdl
函数,如中所述通过generatehdl属性指定速度与区域的权衡.
或者,您可以使用体系结构生成HDL对话框上的弹出菜单选择并行和串行体系结构选项,如中所述在生成HDL对话框中选择架构.
请注意
编码器还支持分布式算法(DA)金宝app,这是实现过滤器的另一种高效架构。看到FIR滤波器的分布式算法.
并行和串行架构
完全并行架构
此选项是默认选项。一个完全并行架构使用专用的乘数和加法器为每个过滤器龙头;水龙头是并行执行的。这种类型的体系结构最适合提高速度。然而,它比串行架构需要更多的乘法器和加法器,因此占用更多的芯片面积。
串行架构
串行架构及时重用硬件资源,节约芯片面积。编码器提供了一系列串行体系结构选项。这些体系结构具有一个时钟周期的延迟(请参阅串行架构中的延迟).
您可以从这些串行架构选项中选择:
全系列全串行架构通过顺序重用乘法器和加法器资源来节约面积。例如,四点滤波器设计将使用单个乘数和加法器,对每个点执行一次相乘/累加操作。设计的乘法/累加部分以四倍于输入/输出采样率的速度运行。这种类型的架构以一些速度损失和更高的功耗为代价节省了面积。
在全串行架构中,系统时钟的运行速率远高于滤波器的采样速率。因此,对于给定的滤波器设计,全串行架构可达到的最大速度小于并行架构的最大速度。
部分系列部分串行架构涵盖了完全并行架构和完全串行架构之间的速度与面积的全面权衡。
在部分串行体系结构中,过滤器水龙头被分组到串行分区中。每个分区中的点击是串行执行的,但是分区是并行地一起执行的。分区的输出根据最终输出进行求和。
当你为过滤器选择部分串行架构时,你可以通过以下方式定义串行分区:
直接将串行分区定义为整数向量。向量的每个元素都指定了相应分区的长度。
指定所需的硬件折叠因子
ff
,大于的整数1
.给定折叠因子,编码器计算串行分区和乘法器的数量。指定所需的乘法器数量
nmults
,大于的整数1
.给定乘法器的数量,编码器计算串行分区和折叠因子。
生成HDL对话框允许您根据这三个参数指定部分串行的体系结构。然后,您可以查看一个参数的更改如何与其他两个参数交互。编码器还提供
hdlfilterserialinfo
,这是一个信息函数,可帮助您为筛选器定义最佳串行分区。Cascade-serial级联串行架构非常类似于部分串行架构。就像在部分串行架构中一样,过滤器开关被分组到几个并行执行的串行分区中。但是,每个分区的累计输出级联到前一个分区的累加器。因此,分区的输出在第一个分区的累加器上计算。这种技术被称为蓄电池重用.您不需要最终加法器,这节省了面积。
级联串行结构需要一个额外的系统时钟周期来完成对输出的最终求和。因此,相对于非级联部分串行结构中使用的时钟,系统时钟的频率必须稍微增加。
要生成级联串行体系结构,需要指定启用累加器重用的部分串行体系结构。如果不指定串行分区,编码器将自动选择最佳分区。
串行架构中的延迟
过滤器的序列化将使设计的总延迟增加一个时钟周期。串行体系结构使用累加器(带寄存器的加法器)来添加顺序产品。下载188bet金宝搏一个附加的最终寄存器用于存储每个串行分区的求和结果。该操作需要额外的时钟周期。
将输入数据保持在有效状态
串行架构实现的内部时钟速率高于输入速率。在这样的过滤器实现中,存在N
周期(N >= 2
)为每个输入样本的基本时钟。您可以指定测试台架在有效状态下保持输入数据值的时钟周期。
当你选择在样本之间保存输入数据(默认值),测试平台将输入数据值保持在有效状态
N
时钟周期。当你清理在样本之间保存输入数据,测试台架将输入数据值保持在一个时钟周期的有效状态。下一个
n - 1
循环时,试验台将数据驱动到未知状态(表示为“X”
),直到下一个输入样本打卡。强制输入数据到未知状态验证所生成的筛选器代码只在第一个循环中注册输入数据。
该图显示了试验台窗格的生成HDL对话框,使用在样本之间保存输入数据设置为默认设置。
使用等价物HoldInputDataBetweenSamples
属性时调用generatehdl
函数。
通过指定速度和面积的权衡generatehdl
属性
默认情况下,generatehdl
使用完全并行的体系结构生成过滤器代码。如果您希望使用完全并行的体系结构生成过滤器代码,则不必显式地指定此体系结构。
属性的串行体系结构选项generatehdl
功能:
SerialPartition
:此属性指定筛选器的串行分区。ReuseAccum
:该属性启用或禁用累加器重用。
该表总结了如何设置这些属性以生成所需的体系结构。
生成这个 架构…… |
设置SerialPartition为… | ReuseAccum设置为… |
---|---|---|
完全平行 | 省略此属性 | 省略此属性 |
全系列 | N ,在那里N 是过滤器的长度吗 |
未指定,或“关闭” |
部分系列 |
您还可以根据所需的硬件折叠因子或最佳乘法器数量指定串行体系结构。看到 |
“关闭” |
具有显式指定分区的级联串行 | [p1 p2 p3…pN] 整数向量N 元素,N 是串行分区的数目。向量的每个元素都指定了相应分区的长度。向量元素的和必须等于过滤器的长度。vector元素的值必须按降序出现,但最后两个元素必须相等。例如,对于长度为9的过滤器,分区如(5 - 4) 或[4 3 2] 是合法的,但是分区呢[3,3,3] 或[3 2 4] 在代码生成时引发错误。 |
“上” |
具有自动优化分区的级联串行 | 省略此属性 | “上” |
可以使用helper函数hdlfilterserialinfo
探索筛选器的可能分区。
有关示例,请参见为FIR滤波器生成串行分区.
IIR SOS滤波器的串行体系结构
为IIR SOS滤波器结构指定部分或完全串行结构(df1sos
或dsp。BiquadFilter
),指定以下任意一个参数:
FoldingFactor, ff
:指定所需的硬件折叠系数ff
,为大于1的整数。给定折叠因子,编码器计算乘数的数量。NumMultipliers, nmults
:指定所需的乘法器数量nmults
,为大于1的整数。给定乘数数,编码器计算折叠因子。
要获得关于过滤器的折叠因子选项和相应乘数的信息,请调用hdlfilterserialinfo
函数。
有关示例,请参见为IIR滤波器生成串行架构.
在生成HDL对话框中选择架构
的体系结构弹出菜单,在生成HDL对话框,让您选择并行和串行架构。以下主题描述了必须为每个选项设置的UI选项体系结构选择。
指定完全并行的体系结构
默认的体系结构设置是完全平行
,如图所示。
指定完全串行体系结构
当你选择全系列
,体系结构选项中,生成HDL对话框显示有关折叠因子、乘数和串行分区的其他信息。因为这些参数取决于过滤器的长度,所以它们以只读格式显示,如下图所示。
“生成HDL”对话框还显示查看详细信息链接。单击此链接时,编码器将在单独的窗口中显示HTML报告。该报告显示当前过滤器的折叠因子、乘数和串行分区设置的详尽表。您可以使用该表帮助您为您的设计选择最佳设置。
为部分串行体系结构指定分区
当你选择部分系列
体系结构选项时,生成HDL对话框将显示与串行分区相关的其他信息和数据输入字段。(见下图)
“生成HDL”对话框还显示查看详细信息链接。单击此链接时,编码器将在单独的窗口中显示HTML报告。该报告显示当前过滤器的折叠因子、乘数和串行分区设置的详尽表。您可以使用该表帮助您为您的设计选择最佳设置。
的指定的下拉菜单允许您决定如何定义部分串行架构。选择以下选项之一:
折叠的因素
:右侧的下拉菜单折叠的因素
包含过滤器的折叠因子的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。乘数
:右侧的下拉菜单乘数
包含筛选器乘法器数量的值选项的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。串行分区
:右侧的下拉菜单串行分区
包含筛选器的串行分区选项的详尽列表。选择值时,当前折叠因子、乘数和串行分区设置的显示将更新。
指定级联串行体系结构
当你选择级联序列
体系结构选项时,“生成HDL”对话框将显示串行分区字段,如下图所示。
的指定的菜单允许您根据不同的条件定义串行分区的数量和大小,如中所述通过generatehdl属性指定速度与区域的权衡.
指定IIR SOS滤波器的串行体系结构
要在UI中为IIR SOS过滤器结构指定部分或完全串行架构,您可以设置以下选项:
体系结构:选择
完全平行
(默认),全系列
,或部分系列
.如果您选择部分系列
时,界面显示指定的下拉菜单。指定的:选择以下选项之一:
折叠的因素
:指定所需的硬件折叠系数,ff
,为大于1的整数。给定折叠因子,编码器计算乘数的数量。乘数
:指定所需的乘法器数量,nmults
,为大于1的整数。给定乘数数,编码器计算折叠因子。
示例:直接表单I SOS过滤器。下面的例子创建一个直接表单I SOS (df1sos
)过滤器设计并打开UI。代码示例后面的图显示了为指定的部分串行体系结构配置的编码器选项折叠的因素
18。
Fs = 48e3采样频率Fc = 10.8e3截止频率N = 5过滤器订单F_lp = fdesign.lowpass(“n, f3db”,N,Fc,Fs) filt = design(f_lp,“黄油”,“FilterStructure”,“df1sos”,“SystemObject”,真的)fdhdltool (filt numerictype(15) 1, 16日)
示例:直接表单II SOS过滤器。下面的例子创建一个直接表格II SOS (df2sos
)过滤器设计使用过滤器生成器。
该滤波器是低通滤波器df2sos
过滤器的过滤顺序为6。将过滤算法设置为定点
.
在代码生成选项卡,产生高密度脂蛋白按钮激活Filter Design HDL Coder™用户界面。下图显示了为该过滤器配置的HDL编码器选项,使用部分串行架构和折叠的因素
的9。
指定分布式算术体系结构
的体系结构弹出式菜单还包括分布式算法(DA)
选择。看到FIR滤波器的分布式算法)查阅有关此架构的资料。
架构选项和其他HDL选项之间的交互
选择特定的体系结构菜单选项可以更改或禁用其他选项。
当
全系列
选项,则将以下选项设置为默认值并禁用:乘数系数
添加管道寄存器
FIR加法器风格
当
部分系列
选中选项:的乘数系数选项被设置为默认值并禁用。
如果过滤器是多速率的,则时钟输入选项设置为
单
和残疾人。
当
级联序列
选项,则将以下选项设置为默认值并禁用:乘数系数
添加管道寄存器
FIR加法器风格