HDL过滤器块属性

AdderTreePipeline

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

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

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

AddPipelineRegisters

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

以下限制适用于AddPipelineRegisters

  • 如果你使用AddPipelineRegisters,代码生成器在HDL和生成的过滤器模型中要求完全精确。这个选项在HDL代码中实现了一个只支持全精度的管道加法器树结构。金宝app如果生成验证模型,则必须在原始模型中使用完全精度,以避免验证不匹配。

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

    请注意

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

有关指示在何处添加管道阶段的筛选器架构图,请参见高密度脂蛋白过滤器体系结构

ChannelSharing

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

看到生成多通道FIR滤波器的HDL代码(DSP系统工具箱)。

CoeffMultipliers

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

  • “csd”:使用CSD技术将乘数运算替换为移位加运算。CSD技术通过用最少的非零位数表示二进制数来最小化常量乘法所需的加法运算数。这种表示减少了滤波器使用的面积,同时保持或增加时钟速度。

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

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

高密度脂蛋白编码器™支金宝app持CoeffMultipliers用于完全并行的过滤器实现。它不支持全串行和部分金宝app串行架构。

DALUTPartition

LUT的大小随过滤器的顺序呈指数增长。对于具有N系数,LUT必须有2 ^ N值。对于高阶滤波器,LUT大小必须降低到合理的水平。为了减小大小,可以将LUT细分为许多LUT,称为附近地区分区.每个LUT分区操作一组不同的点击。对分区得到的结果进行了总结。

例如,对于160抽头的过滤器,LUT大小为(2 ^ 160) * W位,W为LUT数据的字长。将其划分为16个LUT分区,每个分区需要10个输入(点击),总LUT大小减少为16 * (2 ^ 10) * W位。

虽然LUT分区减少了LUT大小,但是需要更多的加法来对LUT数据进行相加。

您可以使用DALUTPartition以支持DA代码生成并指定LUT分区的数量和大小。

将LUT分区指定为整数向量[p1 p2……pN)地点:

  • N是分区数。

  • 每个向量元素指定分区的大小。单个分区的最大大小是12。

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

看到HDL滤波器的分布式算法

为单速率过滤器指定DALUTPartition

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

过滤器类型 过滤器长度(FL)的计算
直接形式冷杉 FL =长度(找到(高清。分子~ = 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代表了subfilter。

DARadix

DA固有的位串行特性会限制吞吐量。为了提高吞吐量,基本的DA算法可以修改为一次计算多个比特和。同时计算的位和的个数表示为2的幂,称为DA基数.例如,DA基数2 (2 ^ 1)表示一次计算一个位和。A DA基数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,它速度快但面积大。的值N在这些极值之间指定部分串行DA。

请注意

当设置一个DARadix值为对称和非对称滤波器,请参阅对称和非对称滤波器的考虑

看到HDL滤波器的分布式算法

FoldingFactor

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

MultiplierInputPipeline

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

以下限制适用于MultiplierInputPipeline

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

有关这些管道阶段在过滤器体系结构中出现的位置的图表,请参见高密度脂蛋白过滤器体系结构

MultiplierOutputPipeline

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

以下限制适用于MultiplierOutputPipeline

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

有关这些管道阶段在过滤器体系结构中出现的位置的图表,请参见高密度脂蛋白过滤器体系结构

NumMultipliers

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

ReuseAccum

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

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

有关并行和串行滤波器架构的更多信息,请参见高密度脂蛋白过滤器体系结构

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是串行分区的个数。向量的每个元素指定了对应分区的长度。向量元素的和必须等于过滤器的长度。vector元素的值必须按降序排列,但最后两个元素可以相等。例如,对于长度为8的过滤器,分区3 [5](4 2 2)是有效的,但是分区[2 2 2 2](3 2 3)在代码生成时引发错误。
具有自动优化分区的级联串行 忽略该属性。

有关并行和串行滤波器架构的更多信息,请参见高密度脂蛋白过滤器体系结构

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

相关的话题