Xilinx FIR IP使用方法总结

一、概述

在通信数字信号处理的实际工程中会经常用到FIR滤波器,本文重点总结了在vivado环境下调用FIR IP核的使用方法。本次设计的是一个通带频率为500kHz的FIR低通滤波器,滤波器阶数是16阶,滤波器窗函数为汉明窗,信号采样频率为50MHz,对500KHz+10MHz的混合信号进行低通滤波器。

二、配置界面

下面对调用FIR IP核的配置过程说明如下:

步骤1

加载.coe滤波器系数文件(该文件格式请见之前的文章)。
选择滤波器类型,这里选择的是单速率,这里还支持升采样(内插)、降采样(抽取)、Hilbert等滤波器型。
在这里插入图片描述

步骤2

配置输入信号的采样频率及系统时钟频率,其他参数默认即可。
在这里插入图片描述

步骤3

配置滤波器系数是否是有符号数以及位宽。
配置滤波器结构为对称结构。
配置输入信号是否是有符号数以及位宽。
最后配置滤波输出信号为全精度,位宽会自动生成24位(8位输入+16位滤波器系数)。
在这里插入图片描述

步骤4

下面界面采用默认配置,可根据需求更改。
在这里插入图片描述
在这里插入图片描述
下面是最终生成的滤波器参数,左侧是该滤波器的幅频响应(按照π进行了归一化),右侧是生成的滤波参数summary。
在这里插入图片描述

三、生成的滤波器模块接口

生成的模块采用的AXI接口:
在这里插入图片描述
模块接口模版如下:

fir_compiler_0 your_instance_name (
  .aclk(aclk),                              // input wire aclk
  .s_axis_data_tvalid(s_axis_data_tvalid),  // input wire s_axis_data_tvalid
  .s_axis_data_tready(s_axis_data_tready),  // output wire s_axis_data_tready
  .s_axis_data_tdata(s_axis_data_tdata),    // input wire [7 : 0] s_axis_data_tdata
  .m_axis_data_tvalid(m_axis_data_tvalid),  // output wire m_axis_data_tvalid
  .m_axis_data_tdata(m_axis_data_tdata)    // output wire [23 : 0] m_axis_data_tdata
);

各个接口功能说明如下:
在这里插入图片描述

调用的具体代码如下:

module fir_top(
input		    wire 		sclk,
input  			wire			rstn,

output			wire	    indata_ready,		

output          wire [23:0] firdataout,
output			wire			dataout_v
);
wire [8:0] datain;
fir_compiler_0 fir_compiler_0_inst(
  .aclk(sclk),                              // input wire aclk
  .s_axis_data_tvalid(1'b1),  // input wire s_axis_data_tvalid
  .s_axis_data_tready(indata_ready),  // output wire s_axis_data_tready
  .s_axis_data_tdata(datain[8:1]),    // input wire [7 : 0] s_axis_data_tdata
  .m_axis_data_tvalid(dataout_v),  // output wire m_axis_data_tvalid
  .m_axis_data_tdata(firdataout)    // output wire [23 : 0] m_axis_data_tdata
);

design_dds design_dds_inst(
.sclk(sclk),
.rst_n(rstn),
.sin_sig(datain)
);

四、滤波仿真效果

通过仿真可以看出,原来500KHz+10MHz的混合信号经滤波后恢复出原来的500KHz单音信号。
在这里插入图片描述

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Vivado FIR IP是用于FIR(有限脉冲响应)滤波器设计的一个IP核,它提供了一个快速、简便的方法来实现数字滤波器。 使用Vivado FIR IP需要进行以下步骤: 第一步是创建一个新的Vivado设计项目,并添加一个FIR IP实例。这可以通过在IP Catalog面板中搜索“FIR”来完成。 第二步是配置FIR IP。在配置选项卡中,您可以设置滤波器系数、位宽、时钟频率等参数,以满足您的需求。您还可以选择使用输入和输出端口或内部信号连接滤波器。 第三步是生成IP核。单击生成选项卡中的“生成”按钮,Vivado将自动生成所需的IP核,并将其添加到设计中。 第四步是验证和仿真。您可以使用Vivado的仿真工具来验证设计的功能和性能,并通过波形查看器进行观察。 第五步是打包IP核。当您满意于FIR的性能后,您可以将IP核打包并导出到您的系统中。 总的来说,使用Vivado FIR IP可以方便地实现FIR滤波器设计,并且在IP Catalog中提供了许多选项,以满足不同的应用需求。通过跟随上述步骤,您可以获得一个高效的数字滤波器设计。 ### 回答2: Vivado FIR IP(Finite Impulse Response Intellectual Property)是一个用于实现有限脉冲响应滤波器的IP核,它在FPGA中常被用于数字信号处理、音频处理、图像处理等领域。下面是Vivado FIR IP使用指南。 首先,我们需要打开Vivado并创建一个新的项目。在创建项目时,请选择正确的FPGA设备和开发板,并选择Vivado Design Suite的版本。创建完毕后,我们需要在Project Manager中创建一个新的IP。 接下来,我们需要在IP Catalog中选择“Filter”类别,并选择FIR Compiler。我们可以选择使用系统生成的FIR IP或自定义FIR IP。如果要自定义FIR IP,则需要指定滤波器的类型、系数、输入/输出尺寸等。 输出的FIR IP可以通过复制和粘贴到设计中添加。在添加IP时,我们需要指定IP的名称、Clock和Reset接口,并连接FIR IP的输入和输出端口。 在完成IP连接之后,我们需要生成bitstream和导出bit文件。我们可以在Project Manager中进行这些操作。生成完毕后,我们可以将bit文件加载到板子中进行测试。我们可以使用Xilinx的SDK进行编程和测试,或者使用硬件描述语言(例如Verilog、VHDL)编写程序。 总之,Vivado FIR IP是一个强大的IP核,可用于实现各种滤波器。使用它需要掌握一定的FPGA和数字信号处理知识,但是在Vivado的帮助下,它并不难使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值