主要内容

HDL优化属性

优化生成HDL代码的速度或面积

使用HDL优化属性,您可以在生成的代码中指定速度与面积的权衡。

属性的名称-值参数指定这些属性generatehdl函数。的名字属性名称和价值对应的值。您可以以任意顺序指定多个名称-值参数Name1, Value1,…,“以”,家

例如:

Fir = dsp。FIRFilter (“结构”"直接形式反对称");generatehdl(杉木、“InputDataType”15) numerictype(16日,“AddPipelineRegisters”“上”);

速度优化

全部展开

优化管道寄存器的时钟速率,指定为“关闭”“上”.不能将此属性用于完全串行或级联串行筛选器。当您将此属性设置为“上”,编码器在滤波器计算阶段之间添加管道寄存器。尽管寄存器增加了总体的过滤器延迟,但它们对时钟速率提供了显著的改进。

过滤器类型 新增管道寄存器的位置
冷杉转置 在系数乘数和加法器之间
直接形成FIR,反对称FIR和对称FIR

在基于树的最终加法器的级别之间

有关另一种基于树的求和技术,请参见属性FIRAdderStyle

信息检索 之间的部分
中投公司 梳段之间

详情请参见使用管道寄存器优化时钟速率

使用求和技术优化时钟速率,指定为“线性”“树”,或“级联”.此属性仅适用于直接形式FIR、反对称FIR和对称FIR滤波器。不能将此属性用于完全串行或级联串行筛选器。当您将此属性设置为“树”,编码器创建一个最终加法器,对并行执行的连续产品执行成对加法,而不是按顺序执行。s manbetx 845当您将此属性设置为“级联”,编码器创建了一个基于树的最终加法器,在树的级别之间使用管道寄存器。

详情请参见FIR滤波器最终求和的优化

依赖关系

属性仅适用于AddPipelineRegisters属性设置为“关闭”

额外的输入寄存器,指定为“上”“关闭”.当此属性设置为“上”时,编码器生成一个名为input_register并包含一个控制寄存器的流程语句。如果引起的延迟是一个问题,或者如果过滤器被合并到具有现有输入寄存器的代码中,则将此属性设置为“关闭”.详情请参见指定或抑制注册的输入和输出

额外的输出寄存器,指定为“上”“关闭”.当此属性设置为“上”时,编码器生成一个名为output_register并包含一个控制寄存器的流程语句。如果引起的延迟是一个问题,或者如果过滤器被合并到具有现有输出寄存器的代码中,则将此属性设置为“关闭”.详情请参见指定或抑制注册的输入和输出

倍增器输入上的管道级数,指定为非负整数。此属性仅适用于FIR滤波器。乘法器管道可以显著提高时钟速率。详情请参见FIR滤波器的乘数输入和输出流水线

依赖关系

若要启用此属性,请设置CoeffMultipliers“乘数”

倍增器输出上的管道级数,指定为非负整数。此属性仅适用于FIR滤波器。乘法器管道可以显著提高时钟速率。详情请参见FIR滤波器的乘数输入和输出流水线

依赖关系

若要启用此属性,请设置CoeffMultipliers“乘数”

区域优化

全部展开

HDL代码优化,指定为“关闭”“上”.默认情况下,编码器生成具有精确匹配过滤器对象的数值行为的过滤器的文字实现。这个实现不一定是最佳的HDL实现。当此属性设置为“上”,编码器减少了硬件实现的面积,优化了数据类型和量化效果。有关底层权衡的详细信息,请参见针对HDL进行优化

系数乘法的实现,指定为“乘数”“csd”,或“factored-csd”.不能将此属性用于多速率或串行筛选器。

  • “乘数”编码器在生成的HDL代码中保留倍增器逻辑。

  • “csd”“factored-csd”-编码器使用规范有符号数字(CSD)逻辑实现乘法。CSD技术用移位和添加逻辑取代了乘法器。这种技术还通过用最少的非零数字表示二进制数来最小化用于常数乘法的加法器数量。这种优化减少了滤波器使用的面积,同时保持或增加时钟速度。

  • “factored-csd”编码器使用因式CSD逻辑实现乘法。因式CSD将乘数运算替换为对系数的素数因子进行移位和加法运算。这个选项实现了比CSD更大的面积减少,代价是降低时钟速度。

详情请参见系数乘数的CSD优化

串行过滤器体系结构的分区,指定为以下之一:

  • -1-编码器生成一个完全并行的架构。这种架构相当于一个串行分区,定义为有效过滤器长度大小的向量。

  • 有效的过滤器长度-编码器生成一个完全串行的架构。

  • [p1 p2…]pN-编码器生成一个部分串行架构与N分区。vector中的整数指定每个分区的长度。向量元素的和必须等于有效滤波器长度。属性可以生成级联串行体系结构,以进一步减少面积ReuseAccum财产。有关一些示例,请参见为FIR滤波器生成串行分区

  • 串行分区的单元阵列——编码器为级联过滤器中的每个筛选阶段生成分区。为每个筛选阶段指定分区为-1,有效过滤器长度,或者一个整数向量。每个向量的元素之和必须等于级联中相关过滤器的有效过滤器长度。有关示例,请参见生成级联过滤器的串行分区

    当过滤器级的串行分区设置为-1,则可以使用DALUTPartition而且DARadix属性。详情请参见级联过滤器的体系结构选项

不能将此属性用于IIR SOS过滤器。要为IIR SOS滤波器生成串行体系结构,请使用FoldingFactorNumMultipliers属性来代替。

使用此表作为计算有效过滤器长度的指南。或者,您可以使用hdlfilterserialinfo函数显示筛选器的有效长度和可能的分区。

过滤器类型 有效滤波器长度计算
直接的形式 FL = length(find(filt)。分子~ = 0))
直接对称 FL = ceil(length(find(filt))分子~ = 0))/ 2)
直接形式反对称

详情请参见通过generatehdl属性指定速度与区域的权衡

有关并行和串行体系结构的概述以及每种体系结构支持的筛选器类型的列表,请参见万博1manbetx速度与面积的权衡

级联串行体系结构的累加器重用,指定为“关闭”“上”.当此属性设置为“上”,编码器将过滤器组到几个串行分区。每个分区的累计输出级联到前一个分区的累加器。因此,分区的输出在第一个分区的累加器上计算。这种技术叫做蓄电池重用,节省芯片面积。如果财产SerialPartition未定义时,编码器将生成最佳分区。详情请参见通过generatehdl属性指定速度与区域的权衡

有关并行和串行体系结构的概述以及每种体系结构支持的筛选器类型的列表,请参见万博1manbetx速度与面积的权衡

用于分布式算术(DA)的查找表(LUT)分区,指定为以下之一:

  • -1-编码器生成一个完全并行的架构。

  • 有效过滤器长度——编码器生成一个没有LUT分区的DA实现。

  • [p1 p2…]pN编码器生成一个DA实现N附近地区分区。vector中的整数指定每个分区的大小。单个分区的最大大小为12。向量元素的和必须等于有效滤波器长度。对于多速率滤波器,每个多相子滤波器使用相同的LUT分区。有关示例,请参见单速率滤波器的分布式算法

  • {p1 p2…pN;Q1 q2…问N;...}编码器生成一个DA实现N多速率滤波器的每个多相子滤波器的唯一LUT分区。矩阵的每一行都为一个子过滤器指定分区。每行中的元素之和必须为相关的子过滤器长度,FLi.有关示例,请参见多速率滤波器的分布式算法

  • DALUT分区的单元数组——编码器为级联的每个过滤阶段生成具有不同LUT分区的DA实现。为每个筛选阶段指定LUT分区为-1,有效过滤器长度,或者一个整数向量。每个向量的元素之和必须等于级联中相关过滤器的有效过滤器长度。有关示例,请参见级联滤波器的分布式算法

    当过滤器级的LUT分区设置为-1方法为该阶段指定串行分区SerialPartition财产。详情请参见级联过滤器的体系结构选项

使用此表作为计算有效过滤器长度的指南。或者,您可以使用hdlfilterdainfo函数显示有效过滤器长度、LUT分区选项和可能的DARadix过滤器的值。

过滤器类型 有效滤波器长度计算
直接的形式 FL = length(find(filt)。分子~ = 0))
直接对称 FL = ceil(length(find(filt))分子~ = 0))/ 2)
直接形式反对称
每个多相子滤波器具有统一LUT分区的多速率 FL = size(多相(filt),2)
每个多相子滤波器具有独特的LUT分区的多速率 多相(filt)
FLi = length(find(p(i,:)))
,在那里是索引吗滤波器多相矩阵的第一行。的矩阵的第Th行p代表了subfilter。

详情请参见FIR滤波器的分布式算法

在分布式算法(DA)中同时处理的比特数,指定为22N,或{2N,2,……}地点:

  • N > 0

  • mod(W,N) = 0,在那里W输入字大小的过滤器

  • 2N< =2W

此属性指定DA体系结构中的并行度,可以以牺牲面积为代价来提高时钟速度。

  • 21-编码器实现了一个完全串行DA架构,一次处理1位。

  • 2N-编码器生成部分串行DA架构时1 < n < w

  • 2W-编码器生成一个完全并行的DA架构。

  • {2N,2,……}-编码器生成不同的DA实现DARadix级联筛选器中每个筛选阶段的值。有关示例,请参见级联滤波器的分布式算法

    DARadix值设置为2时,可以使用SerialPartition财产。详情请参见级联过滤器的体系结构选项

详情请参见FIR滤波器的分布式算法

IIR滤波器的折叠因子,指定为1或者一个正整数。使用此属性可为直接形式I或直接形式II SOS过滤器定义串行体系结构。为了减少串行体系结构实现中的面积,您可以以延迟为代价共享乘数器。折叠因子指定响应区域优化时时钟速率增加的因子。

您可以指定FoldingFactor财产或NumMultipliers财产,但不是两者。如果不指定任何属性,编码器将生成完全并行的体系结构。

有关示例,请参见为IIR滤波器生成串行架构.获取FoldingFactor选项和相应的NumMultipliers,致电hdlfilterserialinfo函数。

IIR过滤器的共享乘数数,指定为正整数。使用此属性可为直接形式I或直接形式II SOS过滤器定义串行体系结构。共享乘法器以增加时钟速率为代价减少面积。

您可以指定NumMultipliers财产或FoldingFactor财产,但不是两者。如果不指定任何属性,编码器将生成完全并行的体系结构。

有关示例,请参见为IIR滤波器生成串行架构.获取NumMultipliers选项和相应的FoldingFactor,致电hdlfilterserialinfo函数。

提示

如果你使用fdhdltool函数生成HDL代码,您可以在“生成HDL”对话框中设置相应的属性。

财产 对话框位置

添加输入寄存器

全局设置选项卡>港口选项卡

添加输出寄存器

其他优化属性

过滤器体系结构选项卡

参见: