DSP in FPGA:FIR滤波器(二)

发布者:雷电狂舞最新更新时间:2014-12-27 来源: 互联网关键字:DSP  FPGA 手机看文章 扫描二维码
随时随地手机看文章

  这一节主要讲解一下转置型FIR滤波器实现。

  FIR滤波器的单位冲激响应h(n)可以表示为如下式:

  FIR

  对应转置型结构的FIR滤波器,如图1所示,抽头系数与上一节中讲解直接型FIR滤波器的实例相同,滤波器阶数为10。

  FIR

  图1

  可以发现转置型结构不对输入数据寄存,而是对乘累加后的结果寄存,这样关键路径上只有1个乘法和1个加法操作,相比于直接型结构,延时缩短了不少。

  综合得到结果如下:

  Number of Slice Registers: 1

  Number of Slice LUTs: 18

  Number of DSP48E1s: 11

  Minimum period: 4.854ns{1} (Maximum frequency: 206.016MHz)

  关键路径延时报告如图2所示,其中乘累加操作延时Tdspdck_A_PREG_MULT 2.655ns;另外还有一项net delay居然有1.231ns,如此大是因为fanout=11,仔细研究可以发现在h(n)表达式中x(n)与所有11个抽头系数进行了乘法操作,因此fanout达到了11,这也是转置型FIR滤波器的缺点:输入数据的fanout过大。

  FIR

  图2

  线性相位:

  与直接型结构相同,由FIR滤波器的线性相位特征,转置型结构的FIR滤波器也可优化,如图3所示为线性相位FIR滤波器转置型结构,总共11个抽头系数,其中5对系数两两相同,因此可以省去5个乘法器,采用6个DSP资源实现转置型FIR滤波器。

  FIR

  图3

  流水线实现:

  为了进一步缩短关键路径的延时,将乘法器和加法器逻辑分割开,中间加入流水线级,结果如图4所示,在线性相位结构的基础上,加入一级寄存器,这样最大限度上优化时序。

  FIR

  图4

  综合得到结果如下:

  Number of Slice Registers: 355

  Number of Slice LUTs: 340

  Number of DSP48E1s: 6

  Minimum period: 3.861ns{1} (Maximum frequency: 259.000MHz)

  如图5所示为与图2中相对应路径的延时报告(图2由ISE的Timing Analysis工具产生,图5是由PlanAhead的Timing Analysis工具产生),其中由于采用线性相位结构,输入信号的fanout只有6,延时从原先的1.231ns减小到1.01ns;并且分隔乘法器和加法器逻辑之后,关键路径上只有乘法器的延时:1.42ns。

  FIR

  图5脉动型(Systolic)FIR滤波器设计#e#

  脉动型FIR滤波器是对直接型的升级,在每个操作后都加入流水线级,每个动作都打一拍,就跟心脏跳动一样,因此称为脉动型,这种结构非常适用于高速数据流的处理。如图1所示为脉动型FIR滤波器结构。

  FIR

  图1

  与直接型结构不同的是,输入数据到下一个处理单元都需要打2拍,这是为了使乘法后的累加数据同步,下面推导验证:

  x(n)为输入数据,yt(n)为直接型结构的输出

  yt(n)=x(n)h(0)+x(n-1)h(1)+x(n-2)h(2)…x(n-10)h(10)

  ys(n)为脉动型结构的输出,如图1中有P1、P2…P10共10个节点

  P1=x(n-4)h(0)

  P2=(P1 + x(n-5)h(1))*Z-1=x(n-5)h(0) + x(n-6)h(1)

  …

  P10=(P9 + x(n-23)h(10))*Z-1

  ys(n)=x(n-14)h(0) + x(n-15)h(1) + … + x(n-23)h(9)+ x(n-24)h(10)

  由ys(n)和yt(n)的表达式,可以推导出ys(n)=yt(n-14)

  因此脉动型FIR滤波器的延迟较大

  如图2所示为11抽头系数脉动型FIR滤波器FPGA实现结构(实例与前几节相同),穿了一层“衣服”,采用Xilinx FPGA中的DSP48E1 实现,基本处理单元中的操作都可在一个DSP48E1中完成,输入数据经过DSP48E1中寄存2拍后通过ACOUT输出,直接连接到下一个 DSP48E1中的ACIN端口,累加输出PCOUT直接连接到下一个DSP48E1中的PCIN端口,这些连接都没有经过FPGA的Fabric连线逻辑,而是通过DSP Block的内部走线连接,这样实现能够缩短路径的延时。

  FIR

  图2

  编写了相关代码,综合结果如下:

  Number of Slice Registers: 4

  Number of Slice LUTs: 19

  Number of DSP48E1s: 11

  Minimum period: 3.006ns{1} (Maximum frequency: 332.668MHz)

  线性相位实现:

  与前几节相同,由于FIR滤波器的线性相位特性,相对应有线性相位的实现结构,如图3所示,利用DSP48E1中预加器实现乘法前的加法操作。对于脉动型 FIR滤波器的线性相位结构有很多注意点,其中预加器数据的配对,常规情况下,此例中应是x(n)和x(n-10)、x(n-1)和x(n-9)、 x(n-2)和x(n-8)、x(n-3)和x(n-7)、x(n-4)和x(n-6),而图3中结构,加入了延时11的移位寄存器,预加器配对的数据为 x(n-2)和n(n-12)、x(n-4)和x(n-12)、x(n-6)和x(n-12)、x(n-8)和x(n-12)、x(n-10)和x(n- 12),可以发现预加器配对数据中有一个数据始终是x(n-12),但是每一个配对数据的相对延时与常规情况下相同:10、8、6、4和2。

  FIR

  图3

  而各节点P1、P2、P3、P4、P5和y(n)的表达式如下

  P1=x(n-5)h(0) + x(n-15)h(0)

  P2=( P1 + (x(n-6)h(1) + x(n-14)h(1)) )Z-1=x(n-6)h(0) + x(n-16)h(0) + x(n-7)h(1) + x(n-15)h(1)

  P3=( P2 + (x(n-8)h(2) + x(n-14)h(2)) )Z-1=x(n-7)h(0) + x(n-17)h(0) + x(n-8)h(1) + x(n-16)h(1) + x(n-9)h(2) + x(n-15)h(2)

  P4=( P3 + (x(n-10)h(3) + x(n-14)h(3)) )Z-1=x(n-8)h(0) + x(n-18)h(0) + x(n-9)h(1) + x(n-17)h(1) + x(n-10)h(2) + x(n-16)h(2) + x(n-11)h(3) + x(n-15)h(3)

  P5=( P4 + (x(n-12)h(4) + x(n-14)h(4)) )Z-1=x(n-9)h(0) + x(n-19)h(0) + x(n-10)h(1) + x(n-18)h(1) + x(n-11)h(2) + x(n-17)h(2) + x(n-12)h(3) + x(n-16)h(3) + x(n-13)h(4) + x(n-15)h(4)

  y(n)=(P5 + x(n-14)h(5))Z-1= x(n-10)h(0) + x(n-20)h(0) + x(n-11)h(1) + x(n-19)h(1) + x(n-12)h(2) + x(n-18)h(2) + x(n-13)h(3) + x(n-17)h(3) + x(n-14)h(4) + x(n-16)h(4) + x(n-15)h(5)

  因抽头系数对称,由h(0)=h(10),h(1)=h(9),h(2)=h(8),h(3)=h(7),h(4)=h(6)可得

  y(n)= x(n-10)h(0) + x(n-11)h(1) + x(n-12)h(2) + x(n-13)h(3) + x(n-14)h(4) + x(n-15)h(5) + x(n-16)h(6) + x(n-17)h(7) + x(n-18)h(8) + x(n-19)h(9) + x(n-20)h(10)

  验证得到y(n)=yt(n-10),比普通脉动结构延时小,但是相比于其他结构的FIR滤波器延时还是较大的。

  编写了相关代码,综合结果如下:

  Number of Slice Registers: 84

  Number of Slice LUTs: 99

  Number of DSP48E1s: 6

  Minimum period: 3.256ns{1} (Maximum frequency: 307.125MHz)

  在DSP in FPGA: FIR滤波器设计(一)、(二)中分别讲解了直接型、转置型和脉动型结构FIR滤波器的实现方法,这三种结构是FPGA实现中比较常用的方法,以下对这三种结构做一个比较:

  (1) 直接型:方法简单易实现,但是使用加法树优化后增加了功耗

  (2) 转置型:关键路径延时较小,时序易满足,但是输入数据扇出较大,不适用于阶数较高的滤波器实现

  (3) 脉动型:适用于高速数据处理,但是延时相比于其它结构较大

 

关键字:DSP  FPGA 引用地址:DSP in FPGA:FIR滤波器(二)

上一篇:基于DSP+FPGA的红外移动目标识别跟踪系统设计
下一篇:基于DSP的模块化教育机器人硬件系统方案

推荐阅读最新更新时间:2024-05-02 23:24

使用TI 的低功耗C5x DSP的指纹识别方框图和解决方案
方案框图 设计说明 指纹识别用于各种应用,包括电子门禁系统、智能卡、车辆点火开关控制系统、带指纹控制存取功能的 USB 记忆棒及许多其它应用。指纹扫描仪中的数字信号处理元件可执行滤波、转换、特征提取、匹配运算及其它算法等复杂的 DSP 功能。 指纹传感器可以运用电容、光学、压力或热感技术来获取手指特征的图像。最常用的指纹传感器解决方案首先使用激光或 LED 灯照亮指纹,然后使用 CCD 或价格较为低廉的 CMOS 传感器进行图像采集。指纹传感器通常为自包含模块,其包括可将模拟信息转换成数字化数据流的模数转换器。分辨率、动态范围和像素密度均是决定图像质量并影响传感器精确度的因素。 一旦采集到图像,数字信息将被传输到数字信号处
[嵌入式]
使用TI 的低功耗C5x <font color='red'>DSP</font>的指纹识别方框图和解决方案
机器学习实战:GNN加速器的FPGA解决方案
1. 概述 得益于大数据的兴起以及算力的快速提升,机器学习技术在近年取得了革命性的发展。在图像分类、语音识别、自然语言处理等机器学习任务中,数据为大小维度确定且排列有序的欧氏(Eucidean)数据。然而,越来越多的现实场景中,数据是以图(Graph)这种复杂的非欧氏数据来表示的。Graph不但包含数据,也包含数据之间的依赖关系,比如社交网络、蛋白质分子结构、电商平台客户数据等等。数据复杂度的提升,对传统的机器学习算法设计以及其实现技术带来了严峻的挑战。在此背景之下,诸多基于Graph的新型机器学习算法—GNN(图神经网络),在学术界和产业界不断的涌现出来。 GNN对算力和存储器的要求非常高,其算法的软件实现方式非常低效
[嵌入式]
机器学习实战:GNN加速器的<font color='red'>FPGA</font>解决方案
基于FPGA的高速数字隔离型串行ADC及应用
   1.引言   目前,逆变器在很多领域有着越来越广泛地应用。对逆变器的研究具有十分重要的意义和广阔的工程应用前景。常见逆变技术的控制方法大致分为开环控制的载波调制方法和闭环控制的跟踪控制方法。跟踪控制方法属于闭环控制,闭环反馈中的检测环节需要与高压主电路相互隔离,避免高压侧电磁噪声对控制电路的窜扰。高性能的跟踪型逆变器对反馈量的实时性要求很高,因此要求反馈环节具有高速隔离传输模拟信号的能力。   目前,最常用的隔离技术可以分为线性隔离和数字隔离。线性隔离器存在温度漂移、线性度差,鲁棒性弱的问题,很难满足宽频带高精度的隔离传输要求。在现代跟踪控制用逆变器领域中大多采用数字化控制,如果在高压侧将模拟量变成数字量,再通过高速隔
[嵌入式]
基于<font color='red'>FPGA</font>的高速数字隔离型串行ADC及应用
一种基于PCI总线和DSP技术的虚拟仪器设计
  传统的虚拟仪器由一块基于PCI总线的直接利用A/D和D/A芯片构成的数据采集板卡和相应的软件组成,但随着计算机网络技术的迅速发展,越来越多的数据需要由计算机处理、存储和传输,由于通用计算机本身的特点,它们通常不适于进行实时性要求很高的数字信号处理,因此这种虚拟仪器不能满足现实应用对数据实时处理能力、数据传输能力以及数据管理能力所提出的越来越高的要求。   与此同时,随着数字信号处理器(DSP)性价比的不断提高,其应用领域飞速扩展,从而使基于PCI总线和DSP技术的新型虚拟仪器应运而生。    系统的基本框架   笔者设计的基于PCI总线和DSP技术的虚拟仪器的基本框架如图1所示。 图1 虚拟仪器系统的基本框架  
[嵌入式]
CEVA在CES 2012展会上展示最新IP技术
全球领先的硅知识产权 (SIP) 平台解决方案和数字信号处理器(DSP)内核授权厂商CEVA公司宣布将于2012年1月10日至13日在美国拉斯维加斯的CES 2012上展会上展示一系列用于数字家庭和移动市场的创新多媒体和通信解决方案。在此次展会上,CEVA将在拉斯维加斯希尔顿酒店专用会议室与恭候来访嘉宾,与会者可参与互动演示,并与CEVA管理层会谈。 CEVA将在CES展会上展示各种不同的技术组合,这表明公司继续向新型潜在市场进行战略扩张,而高性能、完全可编程的DSP内核在降低成本和实现真正产品差异化方面将发挥重要的作用。CEVA在CES所展示的演示平台包括: 用于智能电视的虚拟鼠标接口 —— CEVA 将与C
[嵌入式]
可编程芯片:拼合成一个模拟解决方案
   要点   经济形势刺激了对可编程模拟元件的兴趣。   不存在将可编程模拟芯片用于一个系统的设计流程。   设计流取决于供应商为理解芯片而提供的隐喻(metaphor)。   今后,这些设计流也许是今天FPGA(现场可编程门阵列)流的混合信号版。   可配置模拟IC已经出现了多年,表面看来对市场的影响不及其数字同胞FPGA(现场可编程门阵列)。不过,当前的经济形势却使可编程模拟标准产品的概念突然显现出吸引力。一些需求能很好地适合这些器件的优点:保持在某个产品领域的设计前沿,不花费很多的设计成本,并且不存在会影响任何一个设计进入量产的最终用户需求。这样的日子可能为时不远了。 不过,如果可编程模拟时代到来了,仍
[嵌入式]
可编程芯片:拼合成一个模拟解决方案
基于DSP离散频率编码雷达信号的实现
摘要:离散频率编码序列集合是一种具有良好自相关和互相关性的正交编码波形序列集合,其信号可以提升网状多雷达系统的目标搜索能力、追踪与识别能力。为了设计这种信号,需要求解NP-难的组合优化问题,且考虑到DSP的速度限制和信号产生的实时性要求,采取简单有效的局部搜索算法,并利用TI公司的 TMS320F28335 和BB公司的DAC7724完成目标算法和波形输出,得到了符合要求的波形。 关键词:离散频率编码序列;局部搜索算法;数字信号处理器;数/模转换 0 引言     随着信息融合技术的快速发展,网状多雷达系统的目标搜索能力、追踪与识别能力都得到了极大的提升,进而凭借其高性能得到更加广泛的应用。然而,为了避免自干扰和检测混乱,网状雷达
[嵌入式]
抖动测量的DSP实现
引言 近年来,抖动(Jitter)已经成为通信工程师非常重视的信号特征。在数字系统中,时钟频率正在变得越来越高。随着速率的升组,在上升沿或是下降沿哪性是微小的变化也变得越来越重要。因为时钟或数据的抖动会影响到数据的完整性、建立时间和保持时间。并且在考虑信号速率与传输距离之间的折中时,抖动也成为必须考虑的因素。 抖动会使数字电路的传输性能恶化,由于信号上升沿或是下降沿在时间轴上的正确位置被取代,在数据再生的时候,数据比特流中就会引入错误。在合并了缓冲存储器和相位比较器的数字仪表中,由于数据溢出或是损耗,错误就会引入到数字信号中。此外,在数模变换电路中,时钟信号的相位调制会使恢复出的采样信号恶化,这在传输编码的宽带信号时会造成
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved