主要内容

HDL过滤器块属性

AdderTreePipeline

此属性适用于基于帧的过滤器。它指定了许多管道寄存器,该体系结构包括级别之间的级别。这些管道阶段在添加延迟时增加滤芯吞吐量。默认值为0.为了提高此体系结构的速度,建议设置为2

管道阶段在包含受影响过滤器的模型中沿着路径引入延迟。当您启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。

有关基于框架的筛选器架构的更多信息,请参见框架体系结构

AddPipelineRegisters

此属性适用于标量输入筛选器。当您启用此属性时,过滤器的默认线性加法器将被实现为管道树加法器。这种体系结构增加了过滤器吞吐量,同时增加了延迟。默认值为

以下限制适用于AddPipelineRegisters

  • 如果你使用AddPipelineRegisters,代码生成器在HDL和生成的滤波器模型中强度强度精度。此选项在HDL代码中实现了流水线加法器树结构,只支持完整精度。金宝app如果生成验证模型,则必须在原始模型中使用完全精度以避免验证不匹配。

  • 管道阶段在包含受影响过滤器的模型中沿着路径引入延迟。当您启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。

    请注意

    属性使用此属性时中投插值(DSP系统工具箱)块,并行路径中的延迟不会自动平衡。在设计需要的地方手动添加延迟。

对于筛选架构图,表示添加了流水线阶段的位置,请参阅HDL过滤器架构

ChannelSharing

你可以使用ChannelSharing实现参数与多通道滤波器,以使共享一个单一的滤波器实现之间的通道,更区域效率的设计。该参数可以是“上”“关闭”.默认为“关闭”,并且将为每个通道实现单独的滤波器。

看到用于FPGA的多通道FIR滤波器(DSP系统工具箱)

CoeffMultipliers

CoeffMultipliers实现参数允许您指定规范有符号数字(CSD)或因子CSD优化的使用,以处理为某些过滤器块生成的代码中的系数乘法器操作。指定CoeffMultipliers参数,使用下列选项之一:

  • 'CSD':使用CSD技术用Shift-and-Add操作替换乘法器操作。CSD技术通过表示具有最小非零位计数的二进制数来最小化恒定乘法所需的添加操作的数量。该表示减少了过滤器使用的区域,同时保持或增加时钟速度。

  • 'feamered-csd':使用因子化CSD技术,将系数的素数因子替换为移位加运算。这个选项让您实现比CSD更大的过滤面积缩小,但以降低时钟速度为代价。

  • “乘数”(默认):保留乘法器操作。

高密度脂蛋白编码器™支金宝app持CoeffMultipliers用于完全并行的过滤器实现。它不支持全串行和部分金宝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。

  • 所有矢量元素的总和等于过滤器长度flfl根据筛选器类型的不同而不同地计算。您可以在下一节中找到如何计算不同过滤器类型的FL。

看到用于HDL过滤器的分布式算术

为单速率过滤器指定DALUTPartition

要确定支持的单速率过滤器类型之一的LUT分区,请计算金宝appfl如下表所示。然后,将分区指定为元素总和的向量fl

过滤器类型 过滤器长度(FL)的计算
直接形式冷杉 fl =长度(find(hd.numerator〜= 0)))
直形非对称FIR,直形对称FIR FL =装天花板(长度(找到(高清。分子~ = 0))/ 2)

您还可以在不进行LUT分区的情况下为过滤器设计指定DA代码的生成。为此,指定一个元素的向量,其值等于过滤器的长度。

为多速率过滤器指定DALUTPartition

支持的多金宝app速率过滤器(冷却抽取冷杉插值),可以将LUT分区指定为

  • 为所有多相子滤波器的lut定义分区的向量。

  • LUT分区的矩阵,其中每个行向量指定相应的多相子滤器的LUT分区。在这种情况下,fl所有亚离别液都是统一的。该方法提供了对每个子滤器进行分区的精细控制。

下表显示了fl每个类型的LUT分区的计算。

附近地区分区 过滤器长度(FL)的计算
向量:确定fl过滤器长度(FL)的计算向右列。将LUT分区指定为整数向量,其元素和为fl
FL =尺寸(多相(HM),2)
矩阵:确定子过滤器的长度fl基于多相分解的滤波器,如图所示过滤器长度(FL)的计算向右列。将每个子过滤器的LUT分区指定为其元素之和为的行向量fl
p =多相(HM);fl=长度(找到(p (,:)));
在哪里索引是多速率过滤器的多相矩阵的行。的矩阵的行p代表了Th exfilter。

DARadix

DA的固有位串行性质可以限制吞吐量。为了提高吞吐量,可以修改基本DA算法以一次计算多于一个比特和。同时计算的比特和总和的数量表示为两个称为两个的功率DA基数.例如,2的DA基数(2 ^ 1)表示一次计算一位总和。一个da an的4(2 ^ 2)表示一次计算两位和,以此类推。

为了一次计算多个位和,需要复制LUT。例如,要一次对2位(基数4)执行DA,奇数位被馈送给一个LUT,偶数位同时被馈送给一个相同的LUT。奇数位对应的LUT结果在加到偶数位对应的LUT结果之前先左移。然后将这个结果输入一个缩放累加器,累加器将反馈值移动2位。

一次处理一个以上的位会给操作带来一定程度的并行性,以面积为代价提高速度。

您可以使用DARadix指定在DA中同时处理的位数。比特数表示为N,必须是:

  • 是2的幂的非零正整数

  • 这样mod(w,log2(n))= 0, 在哪里W是过滤器的输入字大小

的默认值N是2,表示一次处理一位,或全串行DA,速度慢但面积低。的最大值N2 W ^, 在哪里W是过滤器的输入字大小。此最大值指定完全并行DA,该DA快速但高的区域。价值观N在这些极值之间指定部分串行DA。

请注意

当设置一个DARadix对称和不对称过滤器的价值,参见对称和非对称滤波器的考虑

看到用于HDL过滤器的分布式算术

FoldingFactor

FoldingFactor指定在串行结构的IIR SOS滤波器中,用于计算滤波器输出的时钟周期总数。它与NumMultipliers.您必须选择一个或另一个属性;你不能两者都用。如果您未指定FoldingFactorNumMultipliers,过滤器的HDL代码是用完全并行的架构生成的。

MultiplierInputPipeline

您可以使用此参数在FIR滤波器结构的乘法器输入处生成指定数量的管道级。默认值为0。

以下限制适用于MultiplierInputPipeline

  • 管道阶段在包含受影响过滤器的模型中沿着路径引入延迟。当您启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。

有关这些管道阶段在过滤器体系结构中出现的位置的图表,请参见HDL过滤器架构

MultiplierOutputPipeline

您可以使用此参数在FIR滤波器结构的乘法器输出处生成指定数量的管道级。默认值为0。

以下限制适用于MultiplierOutputPipeline

  • 管道阶段在包含受影响过滤器的模型中沿着路径引入延迟。当您启用此管道选项时,编码器会自动在并行数据路径上添加平衡延迟。

有关这些管道阶段在过滤器体系结构中出现的位置的图表,请参见HDL过滤器架构

NumMultipliers

NumMultipliers指定在具有串行架构的IIR SOS滤波器中用于滤波器实现的乘法器总数。它与FoldingFactor财产。您必须选择一个或另一个属性;你不能两者都用。如果您未指定FoldingFactorNumMultipliers,过滤器的HDL代码是用完全并行的架构生成的。

Reuseaccum.

您可以使用此参数在串行HDL架构中启用或禁用累加器重用。默认是一个完全并行的体系结构。

产生这
建筑学...
设置ReuseAccum……
完全平行 忽略该属性
全系列 未指定,或“关闭”
部分系列 “关闭”
具有明确指定分区的级联串行 “上”
具有自动优化分区的级联串行 “上”

有关并行和串行滤波器架构的更多信息,请参见HDL过滤器架构

SerialPartition

使用此参数为串行筛选器架构指定分区。默认是一个完全并行的体系结构。

产生这
建筑学...
设置SerialPartition……
完全平行 忽略该属性
全系列 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).此分区以4个时钟周期执行,以3乘数的成本为单位执行。

具有明确指定分区的级联串行 (p1 p2 p3…pN):向量N整数,N是串行分区的数量。矢量的每个元素指定相应分区的长度。向量元素的总和必须等于过滤器的长度。除了最后两个元素之外,矢量元素的值必须处于降序,除了最近的两个元素,这可以是相等的。例如,对于8,分区的滤波器长度3 [5](4 2 2)是有效的,但是分区[2 2 2](3 2 3)在代码生成时引发错误。
具有自动优化分区的级联串行 忽略该属性。

有关并行和串行滤波器架构的更多信息,请参见HDL过滤器架构

这个属性也用于具有级联-串行架构的Min/Max块。如何配置最小/最大级联请参见SerialPartition

相关的话题