FIR数字滤波器的FPGA实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
进行优化, 使执行效率得到了较大提高.
2 改进方法
1 基本的 FIR 滤波器的实现算法
2.1 优化乘法器结构
FIR 滤波器( 有限冲激响应滤波器) 的直接型输
乘法器的速度影响着整个系统的速度, 如果可
源自文库
N- 1
! 出 y( n) 为: y( n) = h( i) x( n- i) . i=0
以实现快速乘法器的设计, 则可以大大提高整个系 统的速度[2].
收稿日期: 2006- 08- 11 作者简介: 陈晓勇( 1979- ) , 男, 南通大学计算机科学与技术学院教师, 东南大学集成电路 学院工程硕士; 陈建平( 1960- ) , 男 , 南 通 大
学计算机科学与技术学院教授, 主要从事数字信号处理、快速算法等方面的研究.
·92·
南通大学学报( 自然科学版)
( N- 1) /2
! y( n) = ( x( n) +x( N- 1- n) ) h( n) n=0
这样, 一个 8 阶 FIR 滤波器只需要 4 个乘法器就可
以实现, 大大减少了器件资源的耗用.
3 滤波器硬件设计与仿真
20 阶线性相位型 FIR 滤波器仿真波形
现 设 计 一 个 偶 对 称 结 构 的 FIR 滤 波 器 模 块 ,
技大学出版社, 2002. [3] ( 美) Samir Palnitkar. Verilog HDL 数字设计与综合[M]. 夏
宇闻, 胡燕祥, 刁岚松, 译. 2 版.北京: 电子工业出版社, 2004. [4] 王 诚, 吴继华. Altera FPGA/CPLD 设计[M]. 北京: 人民 邮电出版社, 2005. [5] 王 旭 东 , 刘 渝 . FIR 的 FPGA 实 现 及 其 Quartus II 与 MATLAB 仿真[J]. 电子工程师, 2004, 30( 5) : 49- 51.
assign out=c1+c2;
function[7:0] and81; //该函数实现 8x1 位乘法器
input[7:0] operand;
图 1 8 位移位相加乘法器仿真波形图
input sel; and81=(sel)?(operand):8′b00000000;
本 例 中 的 乘 法 器 件 使 用 了 加 法 器 树 乘 法 器 endfunction
图 3 8 位加法器树乘法器仿真波形图
图 3 给出了 8 位加法器树乘法器仿真波形. 可
8 阶直接型 FIR 滤波器波形
以看到, 同样的 8 位乘法, 使用加法器树乘法器, 1 图 4 8 阶直接型与线性相位结构型 FIR 滤波器仿真波形比较
个 8 位乘法在一个时钟周期就可完成运算, 因此延
在 8 阶下两种结构滤波器的差距还不是很明
20 阶直接型 FIR 滤波器波形 图 5 20 阶直接型与线性相位型 FIR 滤波器仿真波形比较
器件使用资源对比中也可看出对称型结构的优 势进一步加大了( 见表 2) . 经时序分析, 20 阶直接 型 FIR 滤波器的时钟频率为 82.26 MHz, 而对称结 构的线性相位滤波器则达到了 122.07 MHz, 比前者 提高了近 50 %.
4总结
目前在数字信号处理的领域中, FPGA 的使用 越来越广泛. 本文所设计的数字滤波器可以作为日 后复杂信号处理系统的子模块来使用, 对于提升整 个系统的运行效率将有较大的帮助.
参考文献: [1] Uwe Meyer- Baese. 数 字 信 号 处 理 的 FPGA 实 现 [M]. 刘
凌, 胡永生, 译. 北京: 清华大学出版社, 2003. [2] 褚振勇, 翁木云. FPGA 设计及应用[M]. 西安: 西安电子科
时, 乘积需延时 160 ns 才能输出 , 速 度 比 较 慢. 因 assign out3=a_temp4+a_temp5;
此, 在高速应用系统中, 一般不采用该方法.
assign out4=a_temp6+a_temp7;
assign c1=out1+out2;
assign c2=out3+out4;
所使用的器件数目较之前有所增加, 但非常适用于
a_temp4[10:3]=and81(a, b[3]);
对速度要求较高的场合.
a_temp4[2:0]=3′b000;
附加法器树乘法器模块实现 Verilog HDL 代码:
a_temp5[9:2]=and81(a, b[2]);
module add_tree(out, a, b, clk);
关键词: FIR 数字滤波器; FPGA; Quartus II; 线性相位
中图分类号: TN713+.7
文献标识码: A
Implementation of a FIR Filter with FPGA
CHEN Xiao- yong, CHEN Jian- ping, LU Dan- qian (School of Computer Science, Nantong University, Nantong 226019, China) Abstr act: This paper introduced how to design a FIR digital filter by using an add- tree function and the linear- phase architecture with FPGA. The implementation was simulated through the Verilog HDL in Quartus II. Compared with the traditional way of using shift- adder function and direct FIR model, this way is better. Especially when the orders of the filter increase, the advantage will be more obvious.
陈晓勇, 陈建平, 陆旦前
( 南通大学 计算机科学与技术学院, 江苏 南通 226019)
摘 要 : 介 绍 了 采 用 加 法 器 树 和 线 性 相 位 结 构 在 FPFA 上 实 现 FIR 数 字 滤 波 器 的 方 法 , 并 通 过 Verilog HDL 用 Quartus II 进行了仿真. 相对于采用传统的移位相加乘法器和直接型结构的 FIR 滤波器设计, 这种实现方式在性能 上有明显的优势, 使执行效率得到了较大提高. 尤其在滤波器的阶数较大的情况下, 优势会更明显.
2007 年
实现硬件乘法运算的最基本的方式是移位相加 乘法器[3]. 其乘法原理是: 乘法 通 过 逐 项 移 位 相 加 原 理来实现, 从被乘数的最低位开始, 若为 1, 则乘数 左移后与上一次的和相加; 若为 0, 左移后以全零相 加, 直至被乘数的最高位[4].
移位相加通过将卷积运算转换为加减法运算, 例如 y(n)=x(1)h(1)+……+x(n)h(n), 将 x(n)由低位起逐 位与 h(n)相乘, 结果则移位相加[5], 其特点是硬件资 源耗用较少, 8 位的乘法器只需要一个 16 位移位寄 存器和一个 16 位加法器即可实现. 但在每个时钟周 期内只能完成一次移位并相加的操作, 也就是说一 个 8 位乘法器需要 8 个时钟周期才能完成.
·94·
南通大学学报( 自然科学版)
2007 年
表 2 20 阶直接型与线性相位型 FIR 滤波器资源使用比较
比较项目 Logic Cells LUT- Only LCs
直接型 268(234) 173(143)
对称型 302(210) 111(69)
随着滤波器阶数的进一步提高, 对称型结构的 FIR 滤波器的效率比直接型的效率将会提高更多.
器和有限冲激响应( FIR) 滤波器两种. 硬件实现 FIR 直 接 实 现 将 占 用 大 量 的 逻 辑 单 元 , 这 种 直 接 实 现
滤 波 器 , 对 于 处 理 速 度 有 很 高 的 要 求 . 本 文 基 于 FIR 滤波器的方法在速度和节省资源上都不是最有
FPGA 实现 FIR 滤 波 器 , 通 过 对 算 法 及 滤 波 器 结 构 效的[1].
a×128 b7
a×64 b6
a×32 b5
a×16 b4
a×8 b3
a×4 b2
a×2 b1
a b0
y=a×b
图 2 加法器树乘法器示意图
图 1 给出了 8 位移 位 相 加 乘 法 器 Quartus II 的 assign out1=a_temp+a_temp1;
仿真波形, 由仿真结果可以看到, 时钟周期为 20 ns assign out2=a_temp2+a_temp3;
a_temp5[1:0]=2′b00;
……
//定义所用的寄存器
a_temp6[8:1]=and81(a, b[1]);
陈晓勇, 等: FIR 数字滤波器的 FPGA 实现
·93·
a_temp6[0]=0; a_temp7=and81(a, b[0]); end endmodule
8 阶线性相位结构型 FIR 滤波器仿真波形
数, 且满足偶对称或奇对称, 即
比较项目
直接型
对称型
h( n) =h( N- 1- n) 或 h( n) =- h( N- 1- n)
Logic Cells
85(79)
103(75)
应用 FIR 滤波器线性相位的特性, 滤波器的输 出可以写成下面的形式
LUT- Only LCs
40(38)
22(14)
第6卷 第2期 2007 年 6 月
南通大学学报( 自然科学版) Journal of Nantong University ( Natural Science)
文章编号: 1673- 2340( 2007) 02- 0091- 04
Vol.6 No.2 Jun. 2007
FIR 数字滤波器的 FPGA 实现
a_temp[6:0]=7′b0000000;
器实现, 这样在一个时钟周期内就可以完成之前需
a_temp1[13:6]=and81(a, b[6]);
要 8 个时钟周期才完成的移位并相加的操作, 延时
a_temp1[5:0]=6′b000000;
大大缩短了. 加法器树使用的加法器数目等于操作
a_temp2[12:5]=and81(a, b[5]);
数位数减 1, 加法器精度为 2 倍操作数位数, 需要
a_temp2[4:0]=5′b00000;
的与门数等于操作数的平方. 因此 8 位乘法器需要
a_temp3[11:4]=and81(a, b[4]);
7 个 16 位加法器和 64 个与门. 可以看出, 这种方法
a_temp3[3:0]=4′b0000;
时比一般的移位相加乘法器要小得多.
显, 修改程序实现一个 20 阶的滤波器, 再次比较这
2.2 采用线性相位结构
两种不同结构的滤波器的仿真结果( 见图 5) .
线性相位特性也是 FIR 滤波器的突出优点. 常
表 1 8 阶直接型与线性相位结构型 FIR 滤波器资源使用比较
用的线性相位 FIR 滤波器, 其单位冲激响应均为实
Key wor ds: FIR digital filter; FPGA; Quartus II; linear- phase architecture
数字滤波是数字信号处理中使用最广泛的一种
这是一种卷积运算形式, 用加法器和乘法器就
方法, 常用的数字滤波器有无限冲激响应( IIR) 滤波 可以实现这种结构的 FIR 滤波器, 但如果用 FPGA
( add_tree) , 在图 2 中左侧为 8 个 8 位×1 位乘法器, always @(posedge clk)
每个乘法器可以用 8 个与门实现, 共需要 8×8 个与
begin
门. 这样可以保证在一个时钟周期内完成所有的移
a_temp[14:7]=and81(a, b[7]);
位运算. 最终的移位后的相加通过一个并行的加法
采 用 4 bit 输 入 , 11 bit 输 出 , 乘 法 器 采 用 加 法 器
树方 式实 现. 利 用 Quartus II 进 行 仿 真 , 可 以 看 到
对称型和直接型两种实现方式的结果是一致的 ( 见图 4) .
将设计项目 综合 到 Stratix 系列 的 EP1S10F484C5 中, 对比两种方式的器件资源使用情况. 由表 1 可 以看出, 对称结构的资源使用相对较少, 这正是由 于线性相位滤波器减少了乘法器数目的结果. 同时 进行时序分析可看出对称结构的时钟频率可达到 165.81 MHz, 而普通直接型结构则只有 145.07 MHz.