几种不同的FIR滤波器设计及对比
扫描二维码
随时随地手机看文章
ce="Verdana">数字滤波器通常分成有限脉冲响应(finite impulse response,也就是FIR)和无限脉冲响应(infinite impulse response,也就是IIR)两大类。FIR 滤波器相对于IIR滤波器而言,优点是相位线性和性能稳定,应用范围广,缺点是需要长的冲击响应(即高阶数)才能得到理想的结果,实现难度较大。因此在FPGA 上实现高性能FIR 滤波器是很具有挑战性的。下面我们用几种不同的方法来完成FIR滤波器设计,并进行比较。
FIR 滤波器的系数为{11,-69, -51, 61, 85, -72, -198, -37, 234,72,-631,-922,594,4185,8139,9871,8139,4185,594,-922,-631,72,234,-37,-198,-72,85,61,-51,-69,11}。两路输入,输入信号位宽为7,输出信号位宽为23。
设计输入为VHDL 语言,输入输出信号声明如下:
entity receive_low_pass_filter is
port (chip_input_i : in signed(6 downto 0);
chip_input_q : in signed(6 downto 0);
clk : in std_logic;
reset : in std_logic;
data_i_channel_output : out signed(22 downto 0);
data_q_channel_output : out signed(22 downto 0) );
end receive_low_pass_filter;
第一种方法:使用Altera 公司的QuartusII3.0 单独完成整个设计过程,在Quartus 中新建一个项目(project),然后将VHDL 文件添加进去,我们选
择APEX 系列20K1000EBC652 芯片,执行Start Compilation,得到时序分析报告,发现最大频率为72.19MHz。
第二种方法:使用Precision RTL 综合在不使用任何约束条件下对VHDL 文件进行综合,如图2 所示。
图 2 Precision RTL 综合界面
用综合得到的网表文件(EDIF 文件)代替Quartus 项目中的VHDL 文件,执行Start Compilation,得到时序分析报告,发现最大频率为95.2MHz。
ce="Verdana">B 时序仿真
图4 仿真结果
以上实例充分验证了Precision RTL 综合在FPGA 设计中的重要作用,它对我们设计水平的提高有很大帮助。