优化FIR数字滤波器的FPGA实现
法器结构。由CSA加法器树组成的树型加法器中调用5个CSA加法器和一个普通加法器。R(0)~R(15)为前一级乘法器的16个输出。在整个加法过程中,CSA加法器在电路实现上本身就具备快速、面积小的特点,再加上树型结构的特点,使整个加法器在实现速度上进一步提升。同时整个加法过程能够满足最严格的时序要求,因为CSA电路只在最后的时间内执行进位加法,也就是由构成树的最后一级的Normal Adder(进位加法器)执行进位加法。通常在大部分的应用上会有一段足够的时间允许执行进位加法的时间延迟。
2.4 FIR在FPGA中的实现结构
本文设计的FIR在FPGA中的实现结构如图5所示,除了必须的乘法器和加法器外,还需要一个宽度为15、深度为16的滤波器系数存储器(ROM)和一个宽度为30、深度为16的乘结果存储器(RAM)。分别由相应的计数器控制模块控制,配合计数的值,执行相应的动作。针对输入的数据提取相应的滤波器参数,送入乘法器相乘,每得到一个结果送入下一级RAM中存储起来,最后统一送入加法器,一次性执行加运算并输出,最后得到滤波的结果。其中乘法器和加法器处理的都为符号数。
3 16阶FIR的设计及仿真结果
设计一个16阶的15位FIR滤波器。设计语言使用Verilog。设计工具使用Xilinx ISE平台。FIR的输入和系数都为15位有符号数,乘法器的位数为30位,经加法器后得到的滤波器输出为38位有符号数。编写testbench对设计进行逻辑仿真,随机选取16个输入数据。配合前面有量化后的滤波器系数,即可进行行为级仿真。图6中,rst为复位信号,clk为系统时钟信号,din为输入数据,coe为滤波器系数,dout为输出信号,control为输出同步信号。由仿真结果看出最终滤波器的输出结果和预期的结果相一致。同时利用ISE自带的综合器SXT进行综合,器件选用Xilinx公司的3s400pq208-4。综合报告显示,滤波器最大的频率可达到143.328 MHz,达到高速目的。报告显现资源的使用相对较大,没有预期的理想。从RTL电路分析出在CSA构成的加法器树部分在面积上的优化还不够明显,这个问题将在以后的研究中进一步解决。
4 结语
本文以FIR在FPGA中的实现结构为基础,研究了提高乘法器性能的途径,并实现了Booth算法的乘法器,此算法保证高速的前提下,缩小了硬件规模,使得该乘法器的设计适合工程应用及科学计算,在加法器实现上提出了一种结合了CSA加法器和树型结构的新型实现结构。利用以上两部分,成功设计了一个16阶FIR滤波器,并且达到了高速的目的,但在实现面积上还有待优化。
- 用频率采样法设计FIR滤波器(10-07)
- 高阶FIR滤波器的计算机设计与FPGA实现(03-13)
- FIR结构IQ串行处理RRC滤波器(04-18)
- 基于Matlab的FIR数字滤波器设计(10-07)
- 详解FIR滤波器和IIR滤波器的区别(04-04)
- GreenFire系统:智能电网的核心(08-25)