Xilinx滤波器IP核的延时问题

时间:2025-09-16  作者:Diven  阅读:0

前一段时间一直在研究通信系统,必然就会和各种滤波器打交道,同样也遇到了一些问题。比如说本文的主要内容,滤波器的延时问题。

Xilinx滤波器IP核的延时问题

在生成滤波器IP核之前需要产生抽头系数,这个抽头系数的阶数是自己设定的,阶数越高代表滤波器乘累加运算越多,但是阶数大小的选择要看是否满足自己的设计要求(例如衰减db是否满足要求)。生成的滤波器抽头系数的值是与自己设计滤波器的各种参数确定的,如数据采样速率,通带截止频率、阻带起始频率(低通)、滤波器类型等。

这些抽头系数可以用MATLAB生成,MATLAB中有一个FDATool的工具,以图形化的方式供使用者产生所需的滤波器,然后将系数导出(以coe格式),这样我们在ISE中新建FIR IP核之后就可以直接导入刚刚产生的抽头系数表,非常方便。

下面直接开始用MATLAB生成抽头系数表:

1、利用 matlab 的 FDATool,产生需要的滤波器系数,打开【FDATool】

2、滤波器参数设置

注意:

Order数=滤波器阶数-1

尽量设计偶数阶滤波器,偶数阶滤波器乘法器利用率高。

3、滤波器系数量化

一般量化位数在12-16之间,量化位数越低乘法器消耗的资源越少,需要设计者权衡资源与精度。对于FIR Compiler,使用的是DSP48 slICes,经测试14位输入时16位量化位数与16位量化位数消耗相同资源,应选择16位系数。(至于为什么消耗相同的资源,是因为FPGA内部的DSP48E1硬核乘法器是25*18的,所以无论是16位还是14位都会占用一个DSP)。

4、导出量化系数点击【file -> export】

点击【Export】,即可把数据导入fcf文件,保存后用UltraEdit打开即可。

5、如果使用IP core则将16进制数拷贝生成coe文件;

如果使用乘法/加法器则直接将数据在代码中生成parameter。

注意:由于FIR的对称性,parameter的数量为(阶数+1)/2。

FIR Compiler生成:

1. 看图说话,基于s6的FIR,k7与其设计方式相同,都是5.0版本

2. (1)左边的部分是通带阻带设计,如图通带0.0-0.5pi,阻带0.5-1.0pi。(显然,低通滤波器是以2pi为周期关于pi对称,所以只需要设计0到pi的部分)

例如,滤波器参数80MSPS,通带0-3.75MHz,阻带8-40MHz,那么通带参数0.0-0.09375pi,阻带参数0.2-1.0pi。

(2)改成coe形式,然后找到coe文件,用“show”检查滤波器系数。

注意:IP核生成后不能更换coe文件,coe文件数据不能更改,拷贝到其目录下或者其电脑内都会导致IP核失效。

解决办法是删除IP核重建,并且需要在ipconfig文件夹内手动删除文件。

(3)时钟频率与输入采样数据速率。输出数据速率与输入采样数据速率相等。时钟频率指的是提供给FIR工作的时钟频率,该参数影响复用,也就是影响DSP的复用。

3、 (1)滤波器系数设置,一般都是有符号数,宽度参见coe文件。

(2)输入输出设置,一般都是有符号数,输出数据选择全精度输出,在FIR模块外面再用assign代码截位,这样截位可控。

4. 一般选择优化目标为area,节约资源。

5. 生成

点击generate就可以了

滤波器输出截位设置与测试:

滤波器截位调整的主要目的是使得输入峰峰值接近最大量程的正弦波时经过该滤波器能够产生峰峰值接近最大量程的输出正弦波,这样做的目的是滤波器输出的精度最大化。

好了,上面讲了滤波器系数的产生及ISE中生成FIR IP核的方法,下面讲一个问题,就是滤波器延时的问题。

在FPGA工程中调用FIR IP核,把系数文件导进去,输入进FIR IP核的数据速率为2.5k,采样速率为10k,FIR工作时钟为50M。接着用Chipscope抓取数据时发现第一个送进滤波器的数据会延时11ms输出,直接上图。第一张图是输入滤波器数据,第二张图是滤波器输出数据

后来查了一下FIR的datasheet,发现里面确实有这个延时相关的信息,数据手册上说这个延时其实可以直接在生成IP核的最后一页的Summary中看到。。。。。。

打开IP核后确实有这一项,而且数值也为11ms

在数据手册中也解释了这个时延是FIR 的initial startup latency (初始化启动时延)

就是说FIR会有一个初始化的时间,初始化完成后才开始正常工作,而这个时延的大小与滤波器的参数有关,即滤波器阶数、通道数、系数是否对称,时延是这些参数的一个函数,但是没有给出计算公式。所以只能理解这个时延究竟是什么。。。。。。

这里还有一个时延的说明,贴个图

翻译:

FIR的时延周期个数是阶数、滤波器类型、通道个数及系数是否对称的函数。时延周期个数指的是从RFD失效(表明一个DIN引脚数据已经被采样到)到RDY引脚有效(表明滤波器输出一个有效的数据)。

当输入数据速率与 ip core的工作时钟一样的时候,RFD信号引脚在每一个周期都不会失效。同样对于单数据速率滤波器,RDY引脚也一直保持有效(就是说当工作时钟与采样时钟相等时,每一个时钟周期输出的数据都是有效的)。在这种情况下,周期延时个数就表示输入到FIR的采样数据到这个数据输出时需要经过的周期个数。

对于那些将FIR配置成具有多通道抽取或内插功能的情况,IP 核就会包含一些采样的缓冲器,这些缓冲器会产生延时,延时个数与缓冲器的大小有关。此时延时周期个数表示的是从输入的最后一个采样数据的RFD信号失效(表明输入数据已经接收)到RDY信号的有效(输出数据有效)。

猜您喜欢

肖特基二极管因其低正向压降和高速开关特性,应用于电源管理、整流电路及信号处理等领域。随着使用时间的增加,肖特基二极管可能会出现性能下降或损坏的情况。了解如何判断...
2025-03-31 05:30:01

电子电路中,二极管作为重要的元器件,应用于整流、限流、保护等多种场合。在众多的二极管类型中,稳压二极管和普通二极管是两种较为常见的类型。尽管基本结构相似,但在功...
2025-04-03 17:30:02

想要为您的家庭或企业构建安全可靠的监控系统? 那么,正确安装监控电源是很重要的一步。别担心,即使您不是电工专家,也能轻松完成!这份手把手教程将为您详细介绍监控电...
2024-03-31 00:00:00

漏电保护芯片是重要的电气安全组件,主要作用是检测电气设备中的漏电流,并在发生漏电时迅速切断电源,从而保护人身安全和设备的正常运行。漏电流通常是由于绝缘老化、设备...
2011-03-30 00:00:00

PCIE简介PCI Express 是用来互联计算机和外围设备的高速接口总线,是一种能够应用于移动设备,台式电脑,工作站,服务器,嵌入式计算机和通信平台等。...
2023-02-23 09:39:00

本文介绍了一种压电传感器电荷/电压转换电路,并分析了反馈电容的温度特性对开关电路输出的影响,同时分析了不同滤波器的特性,并根据实际传感器带宽配置了相应的滤波电路...
2023-10-17 14:18:00

防护靴是专业的安全装备,应用于多个领域,以保护穿戴者的双脚免受伤害。在建筑行业,工人们常常需要在不平坦的地面上行走,防护靴能够有效抵御砸伤和刺伤。在化工厂,防护...
2015-10-12 00:00:00

电阻电流采样电路是现代电子电路中重要的一部分,应用于电源管理、信号处理及其需要监测电流的场景。通过精确测量电流,电阻电流采样电路能够提供实时数据,以便进行有效的...
2025-04-18 09:00:03

过采样技术是数字信号处理者用来提高模数转换器(ADC)性能经常使用的方法之一,它通过减小量化噪声,提高ADC的信噪比,从而提高ADC的有效分辨率[1]。过采样技...
2018-12-19 09:55:00

电子产品的设计与维修中,贴片电阻作为一种常见的电子元件,应用于电路中。了解如何正确读取贴片电阻的阻值,对于工程师和电子爱好者来说非常重要。本文将为您详细介绍贴片...
2025-03-16 22:31:07