此属性适用于基于帧的筛选器。它指定体系结构在加法器树的各个级别之间包含多少管道寄存器。这些管道阶段在增加延迟的同时增加筛选器吞吐量。默认值为0
. 要提高此体系结构的速度,建议使用以下设置2.
.
管道阶段沿包含受影响筛选器的模型中的路径引入延迟。启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。
有关基于帧的过滤器体系结构的更多信息,请参阅基于框架的体系结构.
此属性适用于标量输入筛选器。启用此属性时,过滤器的默认线性加法器将改为流水线树加法器。此体系结构增加了过滤器吞吐量,同时增加了延迟。默认值为关
.
以下限制适用于添加管道寄存器
:
如果你使用添加管道寄存器
,代码生成器强制HDL和生成的过滤器模型具有全精度。此选项在HDL代码中实现流水线加法器树结构,仅支持全精度。如果生成验证模型,则必须在原始模型中使用完全精度,以避免验证不匹配。金宝app
管道阶段沿包含受影响筛选器的模型中的路径引入延迟。启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。
笔记
将此属性与CIC插值(DSP系统工具箱)块,并行路径中的延迟不会自动平衡。在设计需要时手动添加延迟。
有关指示管道阶段添加位置的过滤器体系结构图,请参阅HDL滤波器结构.
你可以使用频道共享
带有多通道滤波器的实现参数,用于在通道之间共享单个滤波器实现,以实现更高效的面积设计。此参数为“开”
或“关”
。默认值为“关”
,并为每个通道实施单独的滤波器。
看见用于FPGA的多通道FIR滤波器(DSP系统工具箱).
这个系数乘数
实现参数允许您指定使用规范有符号数字(CSD)或带系数的CSD优化来处理为某些过滤器块生成的代码中的系数乘数操作。指定系数乘数
使用以下选项之一的参数:
‘惩教署’
:使用CSD技术将乘法器操作替换为shift和add操作。CSD技术通过使用最少的非零数字计数来表示二进制数,从而最小化常数乘法所需的加法运算的数量。此表示减少了滤波器使用的面积,同时保持或提高了时钟速度。
“考虑因素的csd”
:使用系数化CSD技术,该技术将乘法器操作替换为系数的质数因子上的移位和加法操作。此选项允许您以降低时钟速度为代价,实现比CSD更大的滤波器面积缩减。
“乘数”
(默认):保留乘数操作。
HDL编码器™ 支持金宝app系数乘数
用于完全并行滤波器实现。完全串行和部分串行架构不支持该功能。金宝app
LUT的大小随过滤器的阶数呈指数增长。对于带有N
系数,LUT必须具有2^N
值。对于高阶筛选器,LUT大小必须减小到合理的级别。要减小大小,可以将LUT细分为多个LUT,称为LUT分区。每个LUT分区在一组不同的抽头上运行。从分区获得的结果相加。
例如,对于160抽头滤波器,LUT大小为(2^160)*W
比特,在哪里W
是LUT数据的字大小。将其划分为16个LUT分区,每个分区接受10个输入(抽头),总LUT大小减少到16*(2^10)*W
位。
虽然LUT分区减少了LUT大小,但需要更多的加法器对LUT数据求和。
你可以用达卢特分区
启用DA代码生成并指定LUT分区的数量和大小。
将LUT分区指定为整数向量[p1 p2…pN]
哪里:
N
是分区数。
每个向量元素指定分区的大小。单个分区的最大大小为12。
所有矢量元素之和等于滤波器长度佛罗里达州
.佛罗里达州
根据过滤器类型的不同,计算结果也不同。在下一节中,您可以找到不同过滤器类型的FL计算方法。
看见HDL滤波器的分布式算法.
要确定一种受支持的单速率筛选器类型的LUT分区,请计算金宝app佛罗里达州
如下表所示。然后,将分区指定为元素总和为的向量佛罗里达州
.
过滤器类型 | 过滤器长度(FL)计算 |
---|---|
直形冷杉 | FL=长度(查找(Hd.分子~=0)) |
直接形式非对称FIR,直接形式对称FIR | FL=ceil(长度(查找(Hd.分子~=0))/2) |
您还可以在不进行LUT分区的情况下为过滤器设计指定DA代码的生成。为此,请指定一个元素的向量,其值等于过滤器长度。
对于支持金宝app的多速率过滤器(杉木抽取和FIR插值),可以将LUT分区指定为
为所有多相子滤波器的LUT定义分区的向量。
LUT分区矩阵,其中每个行向量为相应的多相子滤波器指定LUT分区。在这种情况下佛罗里达州
适用于所有子过滤器。这种方法为每个子过滤器的分区提供了良好的控制。
下表显示了佛罗里达州
计算每种类型的LUT分区。
LUT分区 | 过滤器长度(FL)计算 |
---|---|
矢量:确定佛罗里达州 如图所示过滤器长度(FL)计算右边的一列。将LUT分区指定为其元素总和为的整数向量佛罗里达州 . |
FL=尺寸(多相(Hm),2) |
矩阵:确定副过滤器的长度佛罗里达州 我基于滤波器的多相分解,如过滤器长度(FL)计算列。将每个子筛选器的LUT分区指定为其元素总和为的行向量佛罗里达州 我. |
p=多相(Hm);佛罗里达州我=长度(查找(p(我,:))); P 代表我th副滤波器。 |
DA固有的位串行特性可能会限制吞吐量。为了提高吞吐量,可以修改基本DA算法,使其一次计算多个位和。同时计算的位和数表示为两的幂,称为DA根。例如,DA基数为2(2^1
)指示一次计算一个位和。基数为4的DA(2^2
)指示一次计算两位和,依此类推。
为了一次计算多个位和,将复制LUT。例如,为了一次对2位(基数4)执行DA,奇数位馈送到一个LUT,偶数位同时馈送到相同的LUT。对应于奇数位的LUT结果在被添加到对应于偶数位的LUT结果之前被左移位。然后,该结果被输入缩放累加器,该累加器将其反馈值移动2位。
一次处理多个位会在操作中引入一定程度的并行性,以牺牲面积为代价提高速度。
你可以用达拉迪克斯
指定在DA中同时处理的位数。位数表示为N
,必须是:
二次幂的非零正整数
以致mod(W,log2(N))=0
哪里W
是筛选器的输入字大小
的默认值N
为2,指定一次处理一位,或完全串行DA,速度慢但面积小。的最大值为N
是2^W
哪里W
是筛选器的输入字大小。此最大值指定完全并行的DA,速度快但面积大。的值N
在这些极值之间指定部分串行DA。
笔记
在设置达拉迪克斯
对称和非对称过滤器的值,请参见对称和非对称滤波器的注意事项.
看见HDL滤波器的分布式算法.
折叠因子
指定在具有串行体系结构的IIR SOS滤波器中计算滤波器输出所采用的时钟周期总数。它与数倍钳。必须选择一个属性或另一个属性;不能同时使用这两个属性。如果未指定其中一个属性,则折叠因子
或数倍钳
,过滤器的HDL代码以完全并行的架构生成。
可以使用此参数在FIR滤波器结构的乘法器输入处生成指定数量的管道级。默认值为0。
以下限制适用于多路输入管道
:
管道阶段沿包含受影响筛选器的模型中的路径引入延迟。启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。
有关这些管道阶段在过滤器体系结构中出现的位置的示意图,请参阅HDL滤波器结构.
您可以使用此参数在FIR滤波器结构的乘法器输出处生成指定数量的管道级。默认值为0。
以下限制适用于多路输出管道
:
管道阶段沿包含受影响筛选器的模型中的路径引入延迟。启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。
有关这些管道阶段在过滤器体系结构中出现的位置的示意图,请参阅HDL滤波器结构.
数倍钳
指定在具有串行体系结构的IIR SOS滤波器中用于滤波器实现的乘法器总数。它与折叠因子属性。必须选择一个属性或另一个属性;不能同时使用这两个属性。如果未指定其中一个属性,则折叠因子
或数倍钳
,过滤器的HDL代码以完全并行的架构生成。
您可以使用此参数启用或禁用串行HDL体系结构中的累加器重用。默认为完全并行的体系结构。
要生成这个 建筑学 |
将ReuseAccum设置为。。。 |
---|---|
完全平行 | 省略此属性 |
全序列 | 未指定,或“关” |
部分连续 | “关” |
使用显式指定的分区进行串行级联 | “开” |
具有自动优化分区的串行级联 | “开” |
有关并行和串行过滤器体系结构的更多信息,请参阅HDL滤波器结构
使用此参数为串行筛选器体系结构指定分区。默认为完全并行体系结构。
要生成这个 建筑学 |
将SerialPartition设置为。。。 |
---|---|
完全平行 | 省略此属性 |
全序列 | N 哪里N 是过滤器的长度 |
部分连续 | [p1 p2 p3…pN] :具有N 元素,在哪里N 是串行分区的数目。向量的每个元素指定相应分区的长度。向量元素的总和必须等于过滤器的长度。当为部分串行体系结构定义分区时,请考虑以下内容:
|
使用显式指定的分区进行串行级联 | [p1 p2 p3…pN] :向量N 整数,其中N 是串行分区的数量。向量的每个元素指定相应分区的长度。向量元素的总和必须等于筛选器的长度。向量元素的值必须按降序排列,但最后两个元素可以相等。例如,对于筛选器长度为8的情况,partitions[5 3] 或[4 2 2] 是有效的,但是分区[2 2 2 2] 和[3 2 3] 在代码生成时引发错误。 |
具有自动优化分区的串行级联 | 省略此属性。 |
有关并行和串行过滤器体系结构的更多信息,请参阅HDL滤波器结构.
此属性还用于级联串行体系结构的最小/最大块。有关如何配置最小/最大级联,请参阅串行分区.