基于FPGA的8阶线性相位结构FIR设计Verilog代码VIVADO仿真
名称:基于FPGA的8阶线性相位结构FIR设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
8阶线性相位结构FIR
设计截止频率10K的低通滤波器,时钟为100KHz,100K*0.1=10K
m=fir1(7,0.2),fir1为matlab中滤波器设计函数,7表示滤波器阶数为7,0.2表示截止频率为100K*0.1=10K
滤波器系数设计:打开Matlab软件在指令窗口中键入:m=fir1(7,0.2),即可得到如下的系数:
0.009、0.048、0.164、0.279、0.279、0.164、0.048、0.009
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图



局部放大波形

部分代码展示:
//滤波器 module FIR_filter( input clk_in,//50MHz input reset_p,//高电平复位 input [2:0]amp_cnt1,//幅值控制信号1--值越大输出幅值越高 input [2:0]amp_cnt2,//幅值控制信号2--值越大输出幅值越高 input [15:0]fre_cnt1,//频率控制信号1--值越大输出频率越低 input [15:0]fre_cnt2,//频率控制信号2--值越大输出频率越低 output [10:0] sin_1,//输出频率1 output [10:0] sin_2,//输出频率2 output [10:0] sin_super,//叠加信号 output [9:0] fir_data//滤波后结果 ); wire [10:0] sin_super_buf; wire clk_100K; //分频模块,50M分频到100K div_clk i_div_clk( . clk_in(clk_in), . clk_out(clk_100K) ); wire [7:0] sin_high_out;//输出频率1 wire [7:0] sin_low_out;//输出频率2 //产生带噪声的正弦波 sin_noise i_sin_noise( . clk_in(clk_in),//50MHz . reset_p(reset_p),//高电平复位 . fre_cnt1(fre_cnt1),//频率控制信号1--值越大输出频率越低 . fre_cnt2(fre_cnt2),//频率控制信号2--值越大输出频率越低 . sin_high_out(sin_high_out),//输出频率1 . sin_low_out(sin_low_out)//输出频率2 ); //8阶线性相位结构FIR FIR i_FIR( . clk(clk_100K),//100K . reset_p(reset_p),//高电平复位 . data_in(sin_super_buf[10:1]),//带噪声的正弦波 . fir_data(fir_data)//滤波后结果 ); assign sin_1=amp_cnt1*sin_high_out;//输出频率1 assign sin_2=amp_cnt2*sin_low_out;//输出频率2 assign sin_super_buf=amp_cnt1*sin_high_out+amp_cnt2*sin_low_out;//叠加信号 assign sin_super=sin_super_buf; endmodule
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的8阶线性相位结构FIR设计Verilog代码VIVADO仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 基于FPGA的8阶线性相位结构FIR设计Verilog代码VIVADO仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm