IP核实现fir滤波器设计Verilog代码VIVADO仿真
名称:IP核实现fir滤波器设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
IP核实现fir滤波器
设计fir滤波器,使用VIVADO的滤波器IP核,利用fir compiler 实现
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件

2. 程序文件


3. 程序编译

4. Testbench

5. 仿真图

附:
调用IP核时的一些技巧
1. 设置完IP核后,点击下图,可以找到软件自动生成的例化代码,可以直接复制到代码中,避免自己写繁琐且易出错。


2. Vivado会针对一些IP核自动生成testbench,一般自动生成的testbench是VHDL写的,可以用来参考IP核的时序。如下图


可以新建VHDL的测试文件将自动生成的testbench复制过去,仿真一下看看控制时序。
部分代码展示:
`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: // Engineer: // // Create Date: 2020/09/30 05:04:08 // Design Name: // Module Name: Multi_channel_filter // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revision: // Revision 0.01 - File Created // Additional Comments: // ////////////////////////////////////////////////////////////////////////////////// module Multi_channel_filter( rst,clk,din, rdy,dout); inputrst; //复位信号,高电平有效 inputclk; //FPGA系统时钟,频率为100MHz input signed [15:0]din; //数据输入频率为HZ output rdy; //输出数据有效指示信号 output signed [31:0]dout; //滤波后的输出数据 reg clk_1MHz; reg [6:0] cnt=7'd0; reg s_axis_data_tlast=0; wire [2 : 0] s_axis_data_tuser; reg s_axis_config_tlast=0; reg [15 : 0] s_axis_config_tdata=16'd0; wire s_axis_data_tready; wire s_axis_config_tready; wire m_axis_data_tvalid; wire m_axis_data_tlast; wire [2 : 0] m_axis_data_tuser; wire [39 : 0] m_axis_data_tdata; wire event_s_data_tlast_missing; wire event_s_data_tlast_unexpected; wire event_s_data_chanid_incorrect; wire event_s_config_tlast_missing; wire event_s_config_tlast_unexpected; //调用IP核 fir_compiler_0 i_fir_compiler_0 ( .aclk(clk), // input wire aclk .s_axis_data_tvalid(clk_1MHz), // input wire s_axis_data_tvalid .s_axis_data_tready(s_axis_data_tready), // output wire s_axis_data_tready .s_axis_data_tlast(s_axis_data_tlast), // input wire s_axis_data_tlast .s_axis_data_tuser(s_axis_data_tuser), // input wire [2 : 0] s_axis_data_tuser .s_axis_data_tdata(din), // input wire [15 : 0] s_axis_data_tdata .s_axis_config_tvalid(1'b0), // input wire s_axis_config_tvalid .s_axis_config_tready(s_axis_config_tready), // output wire s_axis_config_tready .s_axis_config_tlast(s_axis_config_tlast), // input wire s_axis_config_tlast .s_axis_config_tdata(s_axis_config_tdata), // input wire [15 : 0] s_axis_config_tdata .m_axis_data_tvalid(m_axis_data_tvalid), // output wire m_axis_data_tvalid .m_axis_data_tlast(m_axis_data_tlast),
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » IP核实现fir滤波器设计Verilog代码VIVADO仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » IP核实现fir滤波器设计Verilog代码VIVADO仿真
发表评论
模板文件不存在: ./template/plugins/comment/pc/index.htm