这一节主要讲解一下转置型FIR滤波器实现。
FIR滤波器的单位冲激响应h(n)可以表示为如下式:
![](https://file.elecfans.com/web1/M00/95/E6/pIYBAF0CRUaAF4M2AAAFoHJYM2I722.gif)
对应转置型结构的FIR滤波器,如图1所示,抽头系数与上一节中讲解直接型FIR滤波器的实例相同,滤波器阶数为10。
![](https://file.elecfans.com/web1/M00/95/8E/o4YBAF0CRROAIk8JAAEeHpHaPW8352.jpg)
图1
可以发现转置型结构不对输入数据寄存,而是对乘累加后的结果寄存,这样关键路径上只有1个乘法和1个加法操作,相比于直接型结构,延时缩短了不少。
综合得到结果如下:
Number of Slice Registers: 1
Number of Slice LUTs: 18
Number of DSP48E1s: 11
Minimum period: 4.854ns{1} (Maximum frequency: 206.016MHz)
关键路径延时报告如图2所示,其中乘累加操作延时Tdspdck_A_PREG_MULT 2.655ns;另外还有一项net delay居然有1.231ns,如此大是因为fanout=11,仔细研究可以发现在h(n)表达式中x(n)与所有11个抽头系数进行了乘法操作,因此fanout达到了11,这也是转置型FIR滤波器的缺点:输入数据的fanout过大。
![](https://file.elecfans.com/web1/M00/95/8E/o4YBAF0CRRSACztmAAB8CFf2N2o086.jpg)
图2