0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Vivado FIR IP核实现

FPGA设计论坛 来源:CSDN技术社区FPGADesigner 2025-03-01 14:44 次阅读

IP核概述

daf89f38-f01d-11ef-9310-92fbcf53809c.png

Xilinx的FIR IP核属于收费IP,但是不需要像 Quartus那样通过修改license文件来破解。如果是个人学习,现在网络上流传的license破解文件在破解Vivado的同时也破解了绝大多数可以破解的IP核。只要在IP Catalog界面中FIR Compiler的License状态为“Included”即可正常使用。

IP核参数设置

和Quartus不一样,Vivado的FIR Compiler没有提供设计FIR滤波器和生成滤波器系数的功能,因此需要使用MATLAB等其它工具设计好滤波器再将系数导入到IP核中。MATLAB的FDATOOL工具在设计好滤波器后,可以直接生成IP核需要的coe文件,如下图所示:

db174078-f01d-11ef-9310-92fbcf53809c.png

在IP Catalog中打开FIR Compiler,主界面如下:

db29f402-f01d-11ef-9310-92fbcf53809c.jpg

左边的Tab可以切换看到FIR的模块图(管脚信息)、频率响应等信息。右边的Tab是对FIR滤波器进行设计。

IP核支持两种FIR系数输入方式,以“Vector”的形式直接写入;或者以“COE File”的形式导入coe文件。Xilinx的FIR IP核支持多种滤波器结构,可以在“Filter Type”中设置,本文选择传统的“Single Rate”结构。该IP核同样也支持系数重载。

除了单速率(Single Rate,即数据输出与输入速率相同)外,FIR Compiler还支持抽取(Decimation)和插值(Interpolation)应用于多速率信号处理系统。此外还支持希尔伯特变换(Hilbert)模式,可以在“Filter Type”中设置。

db40aa58-f01d-11ef-9310-92fbcf53809c.png

IP核支持多通道数据输入,可以在Channel Specification这个Tab中设置输入数据的通道数。还可以在Hardware Oversampling Specification中设置过采样模式,即输入数据的频率可以高出FIR系统时钟的频率。

db532a66-f01d-11ef-9310-92fbcf53809c.jpg

Implementation这个Tab中可以设置FIR系数的类型、量化方式、量化位宽(此值应该与MATLAB中的设置一致,否则频率响应是错的)和结构。本文由于是设计线性相位FIR,滤波器系数是对称的,因此选择为“Symmetric”,也可以选择为“Inferred”,软件会自动判断系数的结构。

Detailed Implementation这个Tab中可以设置优化方式、存储的类型、是否使用DSP单元等与综合、实现有关的信息。Interface这个Tab中可以设置与IP核接口相关的信息。

IP核接口说明

Vivado的很多IP核采用的是AXI4接口,主要有数据(tdata)、准备好(tready)、有效(tvalid)几种信号,还有主机(m)和从机(s)之分。另外在Interface这个Tab还可以配置使用更多辅助的AXI4接口信号。

接下来介绍几个主要的接口:

db63f288-f01d-11ef-9310-92fbcf53809c.jpg

在设置为多通道、可变系数模式时,还会用到其它的接口。上表中的接口已经足够完成一次单通道、固定系数的FIR滤波器设计。其它接口在后文的设计中使用到FIR滤波器的其它模式时,再做介绍。

需要注意,同DDS Compiler一样(https://blog.csdn.net/fpgadesigner/article/details/80512067),AXI4接口的tdata位宽是以字节为单位,即只会是8的倍数,因此需要结合设计的实际位宽做相应处理。

FPGA设计

IP核的接口在Verilog HDL中进行设计时,一定要参考官方文档中给出的时序图。在IP核的配置界面点击“documentation”,可以找到IP核的user guide。也可以在Xilinx官网或DocNav工具中搜索pg149,查阅FIR Compiler的说明。

单通道、固定系数的FIR Compiler接口时序非常简单,Verilog HDL示例代码如下所示:

`timescale 1ns / 1ps

module Xilinx_FIRIP_liuqi

(

input clk, //FPGA系统时钟/数据速率:2kHz

inputsigned [11:0] Xin, //数据输入频率为2kHZ

outputm_tvalid, //FIR输出数据有效信号

outputsigned [24:0] Yout //滤波后的输出数据

);

wire s_tready;

wire signed [31:0] m_tdata;

fir fir_lowpass_500kHz

(

.aclk (clk),

.s_axis_data_tvalid (1'b1),

.s_axis_data_tready (s_tready),

.s_axis_data_tdata ({{4{Xin[11]}},Xin}),

.m_axis_data_tvalid (m_tvalid),

.m_axis_data_tdata (m_tdata)

);

assign Yout = m_tdata[24:0];

endmodule

程序中认为输入的采样数据始终有效,因此将s_axis_data_tvalid永远置1。由于s_axis_data_tdata为16bit位宽,但输入信号数据为12bit位宽,因此用拼接运算符{}在高位填充补码的符号位;由于m_axis_data_tdata为32bit位宽,但输出信号数据有效位仅有25bit位宽,因此仅需取低25bit作为FIR滤波器输出。当然不这么操作,直接将信号赋值到实例化接口,结果也是正确的,这样做只是为了更严谨。

仿真与工程下载

使用MATLAB生成一个200khz+800kHz的混合频率信号,写入txt文件,。编写Testbench读取txt文件对信号滤波,文件操作方法参考“Testbench编写指南(一)文件的读写操作”https://blog.csdn.net/fpgadesigner/article/details/80470972。

在Vivado中进行仿真,对正弦信号的滤波如下图所示:

db80b896-f01d-11ef-9310-92fbcf53809c.jpg

新建一个虚拟总线,仅保留一个符号位。明显看到经过500Hz低通滤波器滤波后,输入的200+800Hz信号只剩下200Hz的单频信号。且当FIR滤波器输出有效时,m_tvalid信号置高。

原文链接:https://blog.csdn.net/fpgadesigner/article/details/80621411

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    188

    文章

    2992

    浏览量

    233001
  • 滤波器
    +关注

    关注

    162

    文章

    8039

    浏览量

    180710
  • Xilinx
    +关注

    关注

    73

    文章

    2181

    浏览量

    124097
  • IP核
    +关注

    关注

    4

    文章

    337

    浏览量

    50353
  • Vivado
    +关注

    关注

    19

    文章

    828

    浏览量

    68060

原文标题:Vivado FIR IP核实现

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐
    热点推荐

    Vivado 使用Simulink设计FIR滤波器

    领域都有着广泛的应用。 Vivado自带的FIR滤波器IP核已经很好用,这里借FIR滤波器的设计,介绍Simulink图形设计编程方法。Simulink可以使设计更直观,使硬件资源得到
    发表于 04-17 17:29

    采用xilinx EDK的GPIO IP核实现中断的功能(里面很详细的)

    采用xilinx EDK的GPIO IP核实现中断的功能(里面很详细的)
    发表于 08-17 10:02

    Verilog中用*实现乘法和用乘法器ip核实现乘法的区别?

    Verilog中用*实现乘法和用乘法器ip核实现乘法综合结果有哪些不同?
    发表于 03-18 09:35

    基于FPGA的FIR滤波器IP仿真实例

    在通信、图像处理、模式识别等领域都有着广泛的应用。Vivado集成的FIR IP核可以实现如下公式所示的N级卷积运算。 FIR
    发表于 07-16 17:24

    请问如何使用单FIR编译器v7.2核实现多频带带通滤波器?

    你好,我希望实现带可变带宽的带通滤波器(如16k,32k,64k等)。我有各种带宽的滤波器系数。我有Vivado 2015和FIR编译器v7.2。我希望将多频段BPF协方系数用于单个IP
    发表于 05-07 08:24

    并行FIR滤波器Verilog设计

    型结构FIR实现时可以采用并行结构、串行结构、分布式结构,也可以直接使用Quartus和Vivado提供的FIR IP核。本篇先介绍并行
    发表于 09-25 17:44

    FIR IP用户手册

    FIR IP 用户手册 FIR(Finite Impulse Response),有限冲击响应滤波器,是数字信号处理里面常用的滤波器类型。
    发表于 08-09 06:56

    在测控系统中用IP 核实现D/A 转换

    采用数字化技术, 在测控系统中用IP 核实现D/A 转换,并且在1 片可编程逻辑器件中实现。它不受温度的影响, 既可保持高分辨率, 又可降低对电路精度和稳定度的要求,并减少元
    发表于 04-16 08:51 11次下载

    在测控系统中用IP核实现D/A转换

    采用数字化技术, 在测控系统中用IP 核实现D/A 转换,并且在1 片可编程逻辑器件中实现。它不受温度的影响, 既可保持高分辨率, 又可降低对电路精度和稳定度的要求, 并减少元
    发表于 05-15 15:09 12次下载

    在测控系统中用IP核实现D/A转换

    摘要:采用数字化技术、在测控系统中用IP核实现D/A转换,并且在1片可编程逻辑器件中实现。它不受温度的影响,既可保持高分辨率,又可降低对电路精度和稳
    发表于 06-20 15:04 1079次阅读
    在测控系统中用<b class='flag-5'>IP</b><b class='flag-5'>核实现</b>D/A转换

    基于vivadofir ip核的重采样设计与实现

    本文基于xilinx 的IP核设计,源于音频下采样这一需求。 创建vivado工程 1. 首先打开vivado,创建一个新的project(勾选create project subdirectory
    发表于 02-08 02:25 5220次阅读
    基于<b class='flag-5'>vivado</b>的<b class='flag-5'>fir</b> <b class='flag-5'>ip</b>核的重采样设计与<b class='flag-5'>实现</b>

    FIR滤波器的FPGA设计与实现

    ,结合MATLAB软件提供的专用数字滤波器设计工具包FDATOOL,以及QuartusⅡ软件提供的FIR核实现快速、便捷的设计FIR滤波器的几个具体实验,得出结论证实了熟练使用FDATOOL工具和
    发表于 12-21 14:53 14次下载
    <b class='flag-5'>FIR</b>滤波器的FPGA设计与<b class='flag-5'>实现</b>

    FPGA实现基于Vivado的BRAM IP核的使用

      Xilinx公司的FPGA中有着很多的有用且对整个工程很有益处的IP核,比如数学类的IP核,数字信号处理使用的IP核,以及存储类的IP核,本篇文章主要介绍BRAM  
    的头像 发表于 12-29 15:59 1.3w次阅读

    Vivado中构建自定义AXI4-Stream FIR滤波器IP 3

    AMD-Xilinx 的 Vivado 开发工具具有很多方便FPGA开发功能,我最喜欢的功能之一是block design的设计流程。Vivado 中的block design是使用RTL IP形式
    发表于 02-10 14:51 1597次阅读
    在<b class='flag-5'>Vivado</b>中构建自定义AXI4-Stream <b class='flag-5'>FIR</b>滤波器<b class='flag-5'>IP</b> 3

    FPGA实现基于Vivado的BRAM IP核的使用

    文章是基于Vivado的 2017.1的版本,其他版本都大同小异。 首先在Vivado界面的右侧选择IP Catalog 选项。
    的头像 发表于 12-05 15:05 2179次阅读