3986.net
小网站 大容量 大智慧
赞助商链接
当前位置:首页 >> 信息与通信 >>

基于FPGA的高阶FIR滤波器设计


南京理工大学 硕士学位论文 基于FPGA的高阶FIR滤波器设计 姓名:朱好学 申请学位级别:硕士 专业:电路与系统 指导教师:钱建平 20080615

硕士论文

基于FPGA的高阶FIR滤波器设计





随着科技的发展,电子电路的设计J下逐渐摆脱传统的设计模式,而采用FPGA来设 计电子电路正成为设计的趋势,因为采用FPGA设计电子电路不仅开发时间短,资金投
入相对少,而且可以将电路板产品集成为芯片级产品。

在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用。在工程实践 中,对信号处理往往要求具有实时性和灵活性,而传统的实现方式难以同时满足这两方 面的要求,采用FPGA来实现FIR滤波器,既可以满足实时性,又能兼顾到一定的灵活 性,所以越来越多的人采用FPGA来实现FIR滤波器。 本文以数字信号处理系统的实现为应用背景,着重研究基于FPGA的FIR数字滤波 器的实现方法。本论文主要做下述三方面的工作: 1.以FIR数字滤波器的基本理论为依据,使用乘累加、并行乘法器结构和分布式 算法为滤波器的硬件实现算法,并对这三种算法进行详细的讨论且比较它们的优缺点。 针对乘累加算法实现的乘法器规模庞大,本文采用系数分解、最佳CSD编码算法和简 化加法器图的方法;针对分布式算法中查找表规模过大的缺点,本文采用多块查找表方
法,从而减小了硬件规模。

2.在设计中采用层次化,模块化的思想,将整个滤波器划分成多个功能模块,然
后利用Verilog HDL硬件描述语言进行各个模块的设计,最终完成FIR数字滤波器的系


统设计。 3.最后给出在Altera公司的Stratix FPGA硬件平台上实现一个128阶的FIR低通 数字滤波器的设计实例,对这个设计实例用ModelSim软件进行了仿真,并用MATLAB 对仿真结果进行了分析。

关键词:FPGA,FIR,数字滤波器,分布式算法,查找表,CSD编码

Abstract

硕七论文

Abstract With

the development of the technology,the design of the electronic circuit is getting rid

of traditional

pattern,while

using FPGA to

design

electronic circuits is becoming the trend of

design.Because using FPGA to relative less In the

design

electronic circuit have the advantage of short time and
to product as chip.

fund,and

can

make product as electronic circuit

modern electrical system,the FIR digital filter is used for many practical

applications for its good linear phase character.In

engineering practice,there

is always



real—time and flexible

difficult

to

meet the

requirement demand for the

for signal processing.However,traditional pattern are
two aspects in the same

time.More

and more people

use

FPGA to

implement

FIR filter,as it not only meet the real-time

requirement,but

also has

some flexibility.
This paper focuses
on

the

witll the background of the

implementation technology of digital filters based on FPGA, implementations of digital signal processing system.It contains


three main

parts:

1.According

to

the.basic

theory of

FIR

filters,three

schemes

of hardware

implementation

al e

worked

out using

MAC,parallel multiplier and distributed arithmetic

algorithm.As the
winl the

scale of multiplier in the

MAC algorithm is
as

SO

large,the thesis reduces it

use

of canonic

signed digit

coding and

the scale of LUT in the distributed
use

arithmetic algorithm is memory banks. 2. hardware

SO

large,the thesis

reduces

it winl the


of multiple coefficient

From the clew of implementing



stratified,modular design,the thesis describes the

design taken

of all functional modules and the FIR system with the Verilog HDL.

3.At last,a Stratix is

one-hundred-twenty-eight tapped

low-pass FIR filter based
out

on

Altera’s

as all

example,and

the simulation

design carried

using ModelSim.The

result of the simulation is

analyzed、Ⅳim

the use of MATLAB.

Key word:FPGA,FIR,Digital Filter,Distributed Arithmetic,Look Signed Digit Coding

Up

Table,Canonic

II

图表目录

硕士论文

图表目录
表2.3.1.1
Stratix

FPGA系列…………………………………………………………………….6

图2.3.2.1 Stratix器件的平面布局示意图(EPlS25)………………………………………….7

图2.4.1完整的FPGA设计流程……………“………………………………………………9 图3.4.1直接型结构的FIR滤波器………………………………………………………….15
图3.4.2转置结构的FIR滤波器…………………………………………………………….16

图3.4.3线性相位FIR滤波器结构………………………………………………………….17 表3.5.1窗函数性能指标比较………………………………………………………………19
图4.2.1 FIR滤波器设计流程………………………………………………………………。22 图4.3.1 FDAT001界面示意图………………………………………………………………..23 图4.4.1滤波器的总体结构框图……………………………………………………………25

图4.5.1基于乘累加结构的FIR滤波器硬件结构………………………………………….26 图4.6.1基于并行乘法器FIR滤波器结构………………………………………………….27 图4.7.2.1传统的乘累加结构实现的滤波器示意图…………………………………………….30
?图4.7.2.2 DA算法直观实现图………………………………………………………………..30

图4.7.2.3全并行DA算法实现结构图……………………………………………………一31 图4.7.3.1改进DA算法实现结构图…………..……………………………………………33 表5.1.1.1半加器真值表……………………………………………………………………..36 图5.1.1.1半加器符号示意图………………………………………….j…………………..36 表5.1.2.1全加器真值表…………………………………………………………………….37
图5.1.2.1全加器符号示意图……………………………………………………………….37 图5.1.3.1 4bit行波进位加法器结构图………………………………………………………37 图5.1.4.1 4bit超前进位加法器RTL视图……………………………………………………38 图5.1.5.1 8bit流水线加法器结构框图………………………………………………………39

图5.1.6.1进位保留加法器示意图………………………………………………………….40 图5.1.6.2级联CSA结构示意图……………………………………………………………40
图5.2.1.1二叉树结构示意图………………………………………………………………..40

图5.2.2.1多比特7输入Wallace树结构示意图………“…………………………………4l
图5.2.3.1 l比特7输入的Wallace树的示意图………………………………………………42 图5.3.2.1 4bit加法器树乘法器结构图………………………………………………………44 图5.4.1.1常系数231的系数分解结构图…………………………………………………。45

图5.4.3.1常系数155与93的简化加法器图……………………………………………….47 图6.1系数量化后的FIR低通数字滤波器的幅频响应示意图…………………………….49
VI

硕士论文

基于FPGA的高阶FIR滤波器设计

表6.2.2.1滤波器性能分析表……………………………………………………………….50 图6.2.3.1基于乘累加结构的FIR滤波器的部分仿真输出结果图………………………..50 图6.2.3.2卷积结果和滤波器输出结果示意图…………………………………………….51 表6.3.2.1滤波器性能分析表……………………………………………………………….52

图6.3-3.1基于并行乘法器结构的FIR滤波器部分输出结果示意图……………………..53
图6.3.3.2卷积结果和滤波器输出结果示意图…………………………………………….53 图6.4.2.1滤波器的RTL级视图…………………………………………………………….55 表6.4.2.1滤波器性能分析表……………………………………………………………….55

图6.4.3.1基于分布式算法结构的FIR滤波器部分输出结果示意图……………………一56
图6.4.3.2卷积结果和滤波器输出结果示意图…………。…………………………^….56





本学位论文是我在导师的指导下取得的研究成果,尽我所知,在本 学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发表或 公布过的研究成果,也不包含我为获得任何教育机构的学位或学历而使 用过的材料。与我一同工作的同事对本学位论文做出的贡献均己在论文 中作了明确的说明。

学位论文使用授权声明

南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅或 上网公布本学位论文的部分或全部内容,可以向有关部门或机构送交并 授权其保存、借阅或上网公布本学位论文的部分或全部内容。对于保密

论文,按保密的有关规定和程序处理。

研究生签名:



硕十论文

基于FPGA的高阶FIR滤波器设计

1绪论
1.1本课题的研究意义
。滤波技术是信号分析、信号处理技术中的重要分支。无论是信号的获取、传输,还 是信号的处理、转换都离不开滤波技术。滤波技术对信号安全可靠和有效灵活的传递至
关重要。 在电子系统中,由于滤波器的好坏直接影响系统的性能,所以滤波技术已成为备受

关注而热门的课题,滤波器的研制已受到各国研究者越来越多的重视。追溯到上世纪, 1917年美国和德国科学家分别发明了LC滤波器,1918年美国又发明了第一个多路复用 系统,至50年代无源滤波技术日趋成熟。自60年代起由于微电子技术、信息技术、计 算机技术、集成工艺和材料工业的发展,滤波器朝着低功耗、高精度、小体积、多功能、 高稳定性和廉价方向努力,并成为70年代以后的发展方向。这个时期,RC有源滤波器、
数字滤波器,开关电容滤波器和电荷转移器等各种滤波器迅速发展,并被单片集成化。

80年代,电子工程师主要致力于各类新型滤波器性能的研究,并逐渐扩大应用范围。90
年代至今各类滤波器已被应用于各种产品中。

上世纪50年代后期我国开始广泛使用滤波器,主要应用场合是话路滤波和报路滤
波。经过半个世纪的发展,我国滤波器在研制、生产、应用等方面已纳入国际发展轨道,

但由于缺少专门研制机构,加之集成工艺和材料工业发展步伐的缓慢,使得我国在许多 新型滤波器的研制和应用方面与国外仍有较大的差距。
数字滤波器是对离散时间信号进行滤波处理以得到期望的响应特性的离散时间系

统。数字滤波器一般由寄存器、延时器、加法器和乘法器等基本数字电路来实现。数字 滤波器能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压 漂移、温度漂移和噪声等问题。随着集成电路技术的发展,数字滤波器性能不断提高而 成本却不断降低。数字滤波器在语音信号处理、图像信号处理、医学生物信号处理以及 其他应用领域都得到了广泛应用。随着电子计算机和大规模集成电路技术的发展,数字 滤波器可用计算机软件实现,也可用大规模集成数字硬件实时实现,数字滤波器已具备 了高精度、高可靠性、可程控改变性或复用、便于集成等众多优点。
.按照数字滤波器的特性,它可以被分为线性与非线性、因果与非因果、无限长冲激

响应(IIR)与有限长冲激响应(FIR)等类型。在这些滤波器中,线性时不变的数字滤波器是 最基本的类型。由于数字系统可以对延时器加以利用,因此若在数字滤波器中引入一定 程序的非因果性,就可获得比传统的因果滤波器更灵活强大的特性。相对于IIR滤波器, FIR滤波器具有易于实现和系统绝对稳定的优势,因此得到广泛的应用【1】。

1绪论

硕‘上论文

1.2国内外研究现状
FIR数字滤波器的实现,大体上可以分为软件实现和硬件实现两种。 软件实现方法是在通用的计算机上用软件实现。利用计算机的存储器、运算器和控 制器把滤波所要完成的运算编成程序通过计算机来执行。由于这种方法速度慢,难以对 信号进行实时处理,因而多用于教学与科研。 硬件实现是设计专门的数字滤波电路,如今FIR滤波器的硬件设计有多种实现方 法。第一种是采用单片机来实现,但单片机的处理速度比较慢。第二种是采用专用的 DSP芯片,但是DSP的串行指令执行方式使其速度和效率大打折扣,因此当滤波器的 系数增加或字长增长时,计算时间会大大增加,而且在一些高速的应用中,DSP的性能 的提高却落后于需求的增加。第三种是采用市场上通用的FIR滤波器集成电路,但由于 它的通用性,很难满足设计者独特的要求。第四种是采用可编程逻辑器件的方法实现。 可编程逻辑器件在电子技术领域中的应用,为数字硬件电路系统的设计带来了极大的灵 活性。由于可编程逻辑器件可以通过软件编程而对其硬件结构和工作方式进行调整,使 得硬件的设计可以如同软件设计那样方便[2】。 在FIR数字滤波器的设计过程中涉及的乘法运算方式有位串行乘法、并行乘法和采 用分布式算法的乘法。 位串行乘法器的实现方法主要是通过对乘法运算进行分解,用加法器来完成乘法的
功能。由于一个8×8位的乘法器输出为16位,为得到正确的16位结果,串行输入的

二进制补码数要进行符号位扩展,即将串行输入的8位二进制补码前补8个o(对正数) 或8个l(对负数)后才输入乘法器。如果每一位的运算需要一个时钟周期的话,则这个 乘法器完成一次运算就需要16个时钟周期。虽然位串行乘法器使乘法器的硬件规模达 到了最小,但由于运算周期过长,在对一些实时性要求较高的场合是不适用的。 并行乘法速度快,但占用的硬件资源极大。随着滤波器阶数的增加,乘法器的位数 也变大,硬件规模将变得十分庞大。 分布式算法利用ROM或寄存器将固定系数的乘累加运算转移成查找表操作,避免 了乘法运算。同时,查找表后的数据执行的都是简单加法运算,可以较大幅度地提高运 算速度。这种方法是目前比较常用的基于FPGA设计FIR滤波器的方法。分布式算法又 分为串行分布式算法、串并结合的分布式算法和并行分布式算法。串行分布式算法其结 构相对简单,占用资源少,但是处理速度吞吐量很高;并行分布式算法结构齐整,利于 流水实现,多用于对速度要求高的场合,但占用资源大:串并结合的分布式算法是串行 分布式算法与并行分布式算法的一个折衷,具体情况不同,效果也不同,缺点是有控制 电路的加入,增加了电路的复杂性【31。 相对于前两种方法,分布式算法既可以全串行实现,又可以全并行实现,还可以串


硕士论文

基于FPGA的高阶FIR滤波器设计

并行结合实现,可以在硬件规模和处理速度之间作出适当的折衷,是现在被研究的主要
方法。


1.3研究思路
1.首先选定要使用的FPGA芯片。Altera公司的Stratix系列FPGA芯片密度大, 使用频率高,是目前大规模数字逻辑设计的优选产品,是专用数字滤波器设计的理想载
体,而且Altera公司专用的设计软件Quartus II使用起来非常方便易用,因此选用它来 进行设计。

2.探讨FIR数字滤波器的原理、结构和设计方法,使用MATLAB进行FIR滤波器 设计,并对结果进行仿真。 3.数字系统的设计有多种方法,可以采用传统的数字系统设计方法,也可以采用 硬件描述语言的数字系统设计方法。传统的设计方法不适合大规模系统的设计,所以采
用硬件描述语言的数字系统设计方法。研究自顶向下的系统设计方法、硬件描述语言、 综合工具、仿真工具等。

4.深刻理解FIR数字滤波器实现过程中所使用到的算法,得出用它来实现FIR滤 波器的硬件结构,对其实现方式进行深入研究,最后在FPGA器件上实现滤波器的硬件 电路,并用MATLAB对结果进行仿真分析。

1.4本论文的所做的主要工作
本论文探讨了利用FPGA器件实现FIR滤波器的研究过程。所做的主要工作如下: 1.学习和研究了实现FIR数字滤波器的三种主要设计方法,分析了它们各自的优 缺点,针对以速度最快和以硬件规模最小以及在速度和硬件规模均有要求的这三种情 况,对各种方案进行比较。 2.采用了应用硬件描述语言和自顶向下的数字系统设计方法,指出采用硬件描述 语言和自顶向下设计方法的优势,并给出了利用FPGA进行数字系统设计的设计流程。 采用层次化,模块化的设计思想,将整个滤波器划分成多个功能模块,利用Verilog 硬件描述语言进行各个模块的设计,最终完成FIR数字滤波器的系统设计。
3.利用Altera公司的Stratix系列器件和Quartus
II HDL

7.0以及ModelSim

6.1

SE软件

对设计进行综合和仿真,并将结果和用MATLAB计算的结果进行比较,验证设计的正


确性。

1.5本论文的结构
本文主要内容分为7个部分:


1绪论

硕士论文

第1章为绪论,阐述了课题的背景和意义,主要包括数字滤波器历史和发展以及 FPGA在FIR数字滤波器中的应用状况; 第2章论述了FPGA技术,并重点介绍Altera Stratix系列FPGA芯片,以及未来
FPGA的发展趋势; 第3章论述了FIR数字滤波器的原理、设计和实现方法,并着重研究了利用窗函数

实现FIR滤波器的方法;
第4章给出了FIR数字滤波器具体的设计方法,详细说明如何在FPGA上进行FIR 数字滤波器的设计;

第5章给出了在FPGA上实现FIR数字滤波器时乘法器电路的设计及其优化方法; 第6章给出了一个用三种结构实现的基于‘FPGA的128阶的数字低通FIR滤波器的 的实例,并对相应电路进行了仿真,分析比较了这三种结构的优缺点; 第7章给出了对本设计的总结。



硕十论文

基于FPGA的高阶FIR滤波器设计



FPGA技术及Altera

Stratix FPGA

2.1引言
FPGA/CPLD、DSP和CPU被称为未来数字电路系统的3块基石,也是目前硬件设 计研究的热点。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发过程投资 少、周期短,可反复编程修改,保密性能好,开发工具智能化等特点,特别是随着电子 工艺的不断改进,低成本的FPGA/CPLD器件的性能不断提升;另一方面集成电路技术 飞速发展,最新的工艺水平由90nm发展到了65nm,现在45nm工艺也已开始应用,而 一般ASIC的流片费用的增长速度非常惊人,并且ASIC开发周期相对较长,这一切促 使FPGA/CPLD成为当今硬件设计的首选方式之一。近年来,FPGA/CPLD市场应用数 量持续保持高速增长,市场占有份额越来越大14】。
本章主要讨论了FPGA技术,并重点介绍Altera Stratix系列FPGA芯片,以及未来 FPGA的发展趋势。

2.2可编程逻辑器件简介
可编程逻辑器件(Programmable
Logic

Devices,简称PLD)是一种用户根据需要自行

构造逻辑功能的数字集成电路。它的基本设计方法是借助于EDA软件,用原理图、状 态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后再由编程器或下 载电缆,下载到目标器件中去。 这种利用PLD内建逻辑结构、由用户配置来实现任何组合逻辑和时序逻辑功能的 器件,最初被用来作为分立逻辑电路和中小规模集成电路的替代物,随着设计技术和制 造工艺的完善,器件性能、集成度、工作频率等性能不断提高,PLD的应用范围越来越
广,目前它己成为ASIC设计的主流。

上世纪80年代中期,美国Xilinx公司率先推出了现场可编程门阵列(Field
Programmable Gate

Array,即.FPGA)器件,FPGA器件采用逻辑单元阵列结构,静态随

机存取存储工艺,设计灵活、集成度高、可重复编程,并可现场模拟调试验证。目前,
除Xilinx以外,Altera、Actel、Lattice等公司也为比较著名的FPGA产品生产厂商。 FPGA的最基本结构是查找表(Look.Up Table,即LUn,本质上就是一个RAM。

目前FPGA中多使用4输入的uJT,所以每一个uJT可以看成一个有4位地址线的16 ×1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,FPGA软件会 自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM。这样,每输入一个信 号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可【5j。




FPGA技术及Altera Stratix

FPGA

硕士论文

在FPGA中由四输入查找表和触发器组成的可配置逻辑功能块为信号处理提供了 大量可以使用的资源,信号可以通过寄存器或存储器实现流水,大量的逻辑资源能够产 生完全并行的结构,从而使计算能力达到最高。
2.3 Altera Stratix

FPGA芯片的结构和特点

2.3.1器件概述
Stratix

FPGA在2002年初推向市场,以突出的性能价格比迅速占领了高端FPGA市

场。Stratix器件在结构和工艺上较前一代的APEX系列都有较大的提高,增加了许多业 界领先的特性,如DSP块、三重的RAM结构、内嵌LVDS高速电路以及DQS/DQ移 相电路实现高速存储器接口等。
Stratix

FPGA采用成熟的1.5V、9层金属直线、0.13 lI in全铜工艺制造,清晰和紧

密的互连线几何结构,保证了Stratix低缺陷率、低漏电流和高品质。 Stratix系列FPGA的特性见表2.3.1.1【6】。
表2.3.1.1
Stratix

FPGA系列

2.3.2平面布局和设计原则
Stratix

FPGA的平面布局如图2.3.2.1171所示。



硕士论文

基于FPGA的高阶FIR滤波器设计

图2.3.2.1 Stratix器件的平面布局示意图(EPl¥25)

Stratix器件左右两边(Bank 1/2/5./6)支持调整的LVDS信号,最高可达840Mbit/s的

速率。每个LVDS的发送或接收通道都有专用的硬件SERDES电路来实现高速的并/串
转换,性能可以做得很高,而且不需要占用内部的逻辑资源。同时,支持高速源同步设 计中随路时钟输入的快速锁相环(Fast PLL)同样也都分布在器件的这两边。 器件上下两边(Bank 3/4/7/8)支持相对低速的PCI总线标准,用于实现外部高速DDR 存储器接口的DQS/DQ专用移相电路也分布在这里。另外,增强型锁相环(Enhanced PLL) 为FPGA内部提供丰富的全局时钟资源,同时也为外部存储器提供采样时钟【8】。 对于内部逻辑阵列块(LAB)之间的互连资源,相比较而言,横向的互连要比纵向的

快一些。而且器件内部的RAM块和DSP块是一列一列地平均分布在芯片当中的,这种 结构非常有利于横向数据通道的高速处理和缓存。 2.3.3互连线资源、逻辑阵列块(LAB)和逻辑单元(LE) Stratix器件沿袭AlteraFPGA传统的行列直线的结构,在行列走线之间就是LAB块、 RAM块或者DSP块等功能模块。
逻辑阵列块(LAB)内部包含10个逻辑单元(LE)。LE是Stratix FPGA内部最小的逻

辑组成部分。一个LE主要是由一个4输入查找表(LUT)和一个可编程触发器,再加上




FPGA技术及Altera

Stratix FPGA

硕士论文

一些辅助电路组成。

2.3.4内嵌RAM块 在逻辑设计中,常常需要在FPGA内部缓存一些数据,或者在两个时钟域之间进行 数据的交换。随着设计的日益复杂,RAM的需求量越来越大,以往FPGA内单一的RAM 种类已满足不了日益复杂系统的要求。因此,Stratix器件根据不同应用的需求,设计了 3种内嵌的RAM块,分别是M512 RAM(512bit RAM),M4K(4kbit RAM)和
M-RAM(5 1 2kbit RAM)。

2.3.5时钟网络和锁相环(PLL)
在Stratix FPGA中,共有16个内部的全局时钟网络,可以将时钟或其他全局控制

信号(如全局复位、时钟使能等)分发到整个芯片。
在Stratix FPGA中,锁相环分为增强型锁相环(EPLL)和快速锁相环(FPLL)两种。

EPLL可以为整个设计提供丰富的时钟资源,它有6个内部输出时钟,4个专用的片外 输出时钟。FPLL同样可以提供内部使用的时钟,而它另一个主要功能是作为高速差分 信号的随路时钟输入,同时输出调整采样时钟和控制信号给内部的源同步接口的
SERDES电路。


2.3.6

DSP块
在数字信号处理(Di西tal
Signal

Processing)领域,最常用的功能函数包括有限脉冲响

应滤波器(FIR)、无限脉冲响应滤波器(ira)、快速傅立叶变换(FFT)等。 虽然这些系统非常复杂,但它们都有相似的功能单元,如乘法器和乘累加器等。 Stratix中的DSP块集成了乘、‘加/减/累加、求和这几种算术操作,并且在这些计算的路 径中,集成了可选的寄存器级,可以实现高性能的DSP算法。
2.3.7

I/O结构 为了满足系统中越来越多的接口电平要求,Stratix FPGA的管脚支持业界大部分的

标准接口电平。 2.3.8高速差分I/o的应用
在Stratix FPGA中,FPGA的左右两边(Bank 1/2/5/6)支持高速差分电平,包括LVDS、 LVPECL、HyperTransport和3.3V PCML。每对差分输出或输入都包含高速的并串/串并

转换模块,数据率可达到840Mbit/s,这些调整的差分接口信号加上快速锁相环的功能,

可以构成源同步的高速并行差分信号组。


硕士论文

基于FPGA的高阶FIR滤波器设计

2.4

FPGA的设计流程
一般来说,完整的FPGA设计流程包括电路设计与输入、功能仿真、综合、综合后

仿真、实现、布线后仿真与验证,板级仿真验证与调试等主要步骤,如图2.4.1 E91所示。

图2.4.1完整的FPGA设计流程




FPGA技术及A|tera

Stratix FPGA

硕J二论文

1.电路设计与输入 电路设计与输入是指通过某些规范的描述方式,将工程师的电路构思输入给EDA 工具。常用的设计输入方法有硬件描述语言(HDL)和原理图设计输入方法等。原理图设 计输入法在早期应用得比较广泛,它根据设计要求,选用器件,绘制原理图,完成输入 过程。这种方法的优点是直观、便于理解、元器件库资源丰富。但是在大型设计中,这 种方法的可维护性较差,不利于模块构造与重用,更主要的缺点是当所选用的芯片升级 换代后,所有的原理图都要做相应的改动。目前进行大型工程设计时,最常用的设计方 法是HDL设计输入法,其中影响最为广泛的HDL语言是VHDL和Verilog HDL。它们 的共同特点是利于由顶向下设计,利于模块的划分与复用,可移植性好,通用性好,设 计不因芯片的工艺与结构的不同而变化,更利于向ASIC移植。
2.功能仿真

电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能
是否符合设计要求。功能仿真有时也被称为前仿真。

通过仿真能及时发现设计中的错误,加快设计进度,提高设计的可靠性。 3.综合优化


综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与、或、非门, RAM,触发器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优 化所生成的逻辑连接,输出edf和edn等标准格式的网表文件,供FPGA厂家的布局布 线器进行实现。
?4.综合后仿真


综合完成后为检查综合结果是否与原设计一致,需要做综合后仿真。在仿真时,把 综合生成的标准延时文件反标到综合仿真模型中去,可估计门延时带来的影响。综合后 仿真虽然比功能仿真精确一些,但是只能估计门延时,不能估计线延时,仿真结果与布 线后的实际情况还有一定的差距,并不十分准确。这种仿真的主要目的在于检查综合器 的综合结果是否与设计输入一致。 5.实现与布局布线


综合结果的本质是一些由与、或、非门,触发器,RAM等逻辑单元组成的逻辑网 表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA厂商提供的软件工具, 根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA器件上,这个过程就 叫做实现过程。 6.时序仿真与验证 将布局布线的时延信息反标注到设计网表中,所进行的仿真就叫时序仿真或布局布 线后仿真,简称后仿真。布局布线之后生成的仿真时延文件包含的时延信息最全,不仅 包含门延时,还包含实际布线延时,所以布线后仿真最准确,能较好地反映芯片的实际
10

硕士论文

基于FPGA的高阶FIR滤波器设计

工作情况。 7.板级仿真与验证



在有些高速设计情况下还需要使用第三方的板级验证工具进行仿真与验证,如
Mentor
Tau,Forte Design——Timing

Designer,Mentor Hyperlynx,Mentor ICS,Cadence

SPECCTRAQuest、Synopsys HSPICE。这些工具通过对设计的IBIS、HSPICE等模型的

仿真,能较好地分析高速设计的信号完整性、电磁干扰(EMI)等电路特性等。 8.调试与加载配置 设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行测试。示 波器和逻辑分析议(LA,LogicAnalyzer)是逻辑设计的主要调试工具。
SignalTap

II是一种FPGA在线片内信号分析工具,它的主要功能是可以通过JTAG

口,在线、实时地读出FPGA的内部信号。其基本原理是利用FPGA中未使用的Block RAM,根据用户设定的触发条件将信号实时地保存到这些Block RAM中,然后通过 JTAG口传送到计算机,最后在计算机屏幕上显示出时序波形。 任何仿真或验证步骤出现问题,就需要根据错误的定位返回到相应的步骤更改或者 重新设计。
?

2.5未来FPGA技术展望
可编程逻辑设计技术正处于高速发展的阶段。新型的FPGA/CPLD规模越来越大, 成本越来越低。高性价比使可编程逻辑器件在硬件设计领域扮演着日益重要的角色。低 端的CPLD已经逐步取代了传统的74系列数字元件,高端的FPGA也在不断地夺取ASIC
的市场份额,特别是目前大规模FPGA多数支持可编程片上系统(SOPC),与CPU或DSP

Core的有机结合使FPGA已不仅仅是传统的硬件电路设计手段,也是当今逐步升华为系
统级实现工具。
2.5.1

下一代可编程逻辑器件硬件上的四大发展趋势

下一代可编程逻辑器件硬件上的四大发展趋势可总结如下:最先进的ASIC生产工 艺将被更广泛地应用于以FPGA为代表的可编程逻辑器件;越来越多的高端FPGA产品 将包含DSP或CPU等处理器内核,从而FPGA将由传统的硬件设计手段逐步过渡为系 统级设计平台;FPGA将包含功能越来越丰富的硬核(Hard 越高,价格越来越合理,将成为FPGA发展的中坚力量【l o】。
1.先进工艺
IP

Core),与传统ASIC进一

步融合、并通过结构化ASIC技术加快占领部分ASIC市场;低成本FPGA的密度越来

一方面可编程逻辑器件的应用场合越来越广泛,客户对FPGA等可编程逻辑器件提 出了更苛刻的要求,希望FPGA/CPLD的封装越来越小,速度越来越快,器件密度越来


11

2 FPGA技术及Alrera Stratix FPGA

硕上论文

越高,有丰富的可编程单元可供使用,并要求基础功能强大的ASIC硬核,以便实现复 杂系统的单片解决方案。另一方面,FPGA、CPLD等可编程逻辑器件的可观利润又要 求生产商不断降低器件成本,从而在激烈的市场竞争中立于不败之地。这一切就要求可 编程器件生产商不断将最新最尖端的IC设计方法与制造工艺运用于FPGA/CPLD的新
产品中。,

2.处理器内核 电路设计主要有偏硬和偏软两种应用,偏硬的应用即数字硬件电路,其特点是要求 信号实时或高速处理,处理调度相对简单,前面已经提到FPGA/CPLD已经逐步取代传 统数字硬件电路,成为偏硬部分的主要设计手段;偏软的应用即数字运算电路,其特点 是电路处理速度要求相对较低,允许一定的延迟,但是处理调度相对复杂,其主要设计 手段是CPU或者DSP。偏硬电路的核心特点是实时性要求高,偏软电路的核心特点是 调度复杂。
3.硬核与结构化ASIC

高端FPGA的另一个重要特点是集成了功能丰富的Hard 些Hard
1P

IP

Core(硬知识产权核)。这
IP

Core~般完成高速、复杂的设计标准。通过这些Hard

Core,FPGA正在


逐步进入一些过去只有ASIC能完成的设计领域。 ‘4.低成本器件 低成本是FPGA发展的另一个主要趋势。 2.5.2下一代EDA软件设计方法发展趋势

EDA软件设计技术不断发展,总的趋势可以归纳为:支持不断更新的器件族,越来 越人性化的设计,越来越好的设计优化效果,仿真软件的速度越来越快和精度越来越高, 综合软件的综合优化效果越来越好,分析验证手段越来越完备,布局布线软件的效率和 优化效果不断提高【111。EDA软件设计方法具有下列比较显著的特点:
1.高级设计语言

高级设计语言的设计方法是HDL语言设计方法。HDL是Hardware

Description

Language的缩写,即硬件描述语言,与较早的EDA原理图输入方式相比,HDL设计输 入方式利于由项向下设计,利于模块的划分与复用.可移植性好,通用性好,设计不因 芯片的工艺与结构的变化而变化,更有利于向ASIC移植等优点。 高级语言是系统级设计方法和软硬件联合设计的利器。所谓系统级设计方法即指在 系统级层次进行设计和仿真,运用系统级综合工具将代码综合为门级网表,然后进行布 局布线的设计流程。系统级设计的好处是非常利于由顶向下和团队分工协作,抽象层次 高,仿真和结构描述代码一致,优化效果好,缩短了设计周期。 2.系统级仿真和系统级综合优化方法
12

硕士论文

基于FPGA的高阶FIR滤波器设计

前面提到系统级设计方法最关键的技术难点是系统级仿真、系统级综合工具的效 能。系统级仿真要求传统的功能、时序仿真工具能够直接支持对系统级模型的仿真,从 而实现自系统级而下,一直到门级的仿真与验证。这就对仿真工具的编译机制和仿真库 提出了新的要求。系统级综合工具是指能直接对系统级代码进行编译,抽象出系统级模 型,然后进行综合优化,并得到门级网表的高级综合工具。
3.团队协同设计与模块化设计方法

随着可编程器件的发展,越来越多的复杂系统的核心电路采用FPGA设计来完成, 这些复杂系统经常需要使用百万门以上的大规模FPGA来设计。另一方面,为了对市场 需求做出最迅速的反映,要求这些电子产品的设计周期尽量缩短。于是,一方面需要百 万门以上的大规模FPGA以满足设计需要,另一方面需要在最短的时间内高质量地完成 设计以满足市场需求,这两者出现了矛盾。解决这个矛盾的出路之一是投入更多的人力, 进行并行工作、协同设计。FPGA的团队协同设计方法叫做模块化设计方法,其核心是 将大规模复杂系统按照一定规则划分成若干模块,然后对每个模块进行设计输入、综合, 并将实现结果约束在预先设置好的区域内,最后将所有模块的实现结果有机地组织起 来,就能完成整个系统的设计;

2.6本章总结
本章主要阐述了FPGA技术以及Altera公司的Stratix系列的FPGA芯片的结构和特
点。

首先对可编程逻辑器件进行了简短的描述,之后重点描述了Altera公司的Stratix系 列FPGA芯片的结构和特点,包括:芯片的平面布局和设计原则,芯片内部的互连线资 源、逻辑阵列块(LAB)和逻辑单元(LE),内嵌的RAM块,时钟网络和锁相环(PLL),DSP 块,I/O结构,高速差分I/O的应用,然后给出了完整的FPGA的设计流程,最后从硬 件结构和软件设计两个方面上阐述了对未来FPGA技术的展望。

13



FIR数字滤波器的原理及设计

硕一1:论文



FIR数字滤波器的原理及设计

3.1数字滤波器
数字滤波器通常应用于修正或改变时域或频域中信号的属性。最为普通的数字滤波 器就是线性时不变(1inear time.invariant,简写为LTI)滤波器。输入信号进入LTI数字滤

波器后,经过一个线性卷积的过程,得到输出信号,其函数表达式为.),矿x,其中,.厂是
滤波器的脉冲响应,X是输入信号,Y是卷积输出。线性卷积过程的定义如下:

y(n)=x(,1)木f(n)=∑x(k)f(n—k)=∑f(k)x(n一忌)“


(3.1.1)





LTI数字滤波器通常分为有限脉冲响应(finite impulse response,简写为FIR)和无限

脉冲响应(infinite

impulse

response,简写为IIR)两大类。顾名思义,FIR滤波器由有限个

采样值组成,式(3.1.1)中卷积的数量为有限个。而IIR滤波器需要执行无限数量次卷积。
3.2

FIR滤波器的特点
FIR滤波器相对于IIR滤波器的优点与不足如下:


优点:

1.具有严格的线性相位又具有任意的幅度: 2.FIR滤波器的单位采样响应是有限长的,因而滤波器性能稳定; 3.FIR滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法

来实现过滤信号,可大大提高运算效掣121。
不足: 1.FIR系统的系数长度一般会比IIR系统大,也就是说要设计一个符合要求的滤波 器,FIR系统需要较多乘法器,当以直接回旋运算执行时其效率较差。 2.此系统的输出延迟时间长【13】。 由上面的比较可以看出,FIR滤波器还是存在缺点的,但采用FPGA进行FIR滤波 器的设计,运用FPGA中的算法来提高速度,缩短延迟的时间,可以使FIR滤波器符合 指标的要求。随着FPGA的快速发展,FIR的缺点将逐渐被克服。
3.3

FIR数字滤波器基础
数字滤波器(DF)是个离散系统,它所处理的对象是用序列表示离散信号或数字信

号。DF的因果离散系统函数可表示成:

14

硕士论文

基于FPGA的高阶FIR滤波器设计

肌力2连N≯。端 l一∑吒z“
其常系数线性差分方程为:


。,,,、Z,:。b,z一7

】,(z)

(3.3.1)

五LzJ





y(玎)=∑aky(n-k)+∑b,x(n-r)
k=l r=O

(3.3.2)

可以看出,数字滤波器是把输入和之前输出的序列经过一定的运算变换成输出的序
列。对于FIR系统,其系统函数仅有零点(除z=0的极点外),因此FIR系统的差分方程 可以表示为:


y(刀)=∑b,x(n-r)
r=O

(3.3.3)

转移函数为:
^,

日(z)=∑brz吖
r=0

(3.3.4)

由式(3.3.3)可知,系统的脉冲响应是因果序列,因为其输出仅与即时输入以及过去 的输入数据有关,而与过去的输出数据没有直接的关系。由此可见FIR滤波器是因果的, 是物理可实现的系统,因而它在实际中往往采用非递归(无反馈作用)形式的结构来实 现。人们把用非递归形式实现的FIR滤波器叫做非递归型滤波器。而且,由式(3.3.3)还 可以知道,此系统的脉冲响应是绝对可加的,所以FIR滤波器总是稳定的。
3.4

FIR数字滤波器的基本结构
FIR滤波器的构成形式主要有直接型、级联型、线性相位FIR滤波器和频率采样型

等,下面分别加以讨论。 1.直接型结构

图3.4.1给出了Ⅳ阶LTI型FIR滤波器的图解。由图3.4.1可见FIR滤波器是由一 个“抽头延迟线"加法器和乘法器的集合构成的。赋给每个乘法器的操作数就是一个 FIR系数,显然也可以称作“抽头权重",因此该结构也称为“横向滤波器"。

,r



h(O)

hO)

IIl(2)

h(N-2

h(N-1)

















-L

y(,z)

图3.4.1直接型结构的FIR滤波器
15



FIR滤波器的原理及设计

硕上论文

直接FIR模型的一个变型称为转置FIR滤波器,它是根据转置定理定义的。如果将 图3.4.1所示网络中所有支路的方向倒转,并将输2x,x(n)和输出灭行)互换,则其系统传递

函数酢)不变,其转置结构见图3.4.2。












’ L



y(功

h(Ⅳ-1)

h(N-2)

h(N-3)

而(0)

x(n 图3.4.2转置结构的FIR滤波器


IL

转置式滤波器通常是指FIR滤波器的实现。该滤波器的优点是不再需要给缸,z)提供 额外的移位寄存器,而且也不必要为达到高吞吐量给乘积的加法器(树)添加额外的流水
线级。

直接型FIR滤波器的优缺点如下: 优点:简单直观,乘法运算量较少; 缺点:调整零点较困难n劓。 2.级联型 如将式(3.3.4)分解为二阶实系数因子形式:
N-I






日(z)≮∑办(托),z叫嚣兀(属,+展,2卅+展,z’2)
nIO

(3.4.1)

l=i

便可得二阶级联结构,式中雄)为IIl(玎)的z变换;触、崩j、励为实数。
级联型FIR滤波器的优缺点如下: 优点:每一节控制一对零点,因而在需要控制传输零点的场合时可采用; 缺点:相应的滤波系数增加,乘法运算次数增加,因而需要较多的存储器,运算时
间比直接型长【1 51。 3.线性相位FIR系统的结构
. .

在许多应用领域,例如通信和图像处理中,在一定频率范围内维持相位的完整性是 一种所期望的系统属性,因此,设计能够建立线性相位一频率功能的滤波器是必须遵循 的规范。系统相位线性度的标准尺度就是“组延迟",其定义为:

f(co)誊掣盟
口国

(3.4.2)

完全理想的线性相位滤波器对于一定频率范围的组延迟是~个常数。如果滤波器是 对称或者反对称的,就可以实现线性相位。 线性相位(相移)表示一个系统的相频特性与频率成正比,由于不同频率传输速度都
16

硕上论文

基于FPGA的高阶FIR滤波器设计

一样,所以信号通过它产生的时间延迟等于常数k,所以不出现相位失真,对一个数字
系统来说,即

矽(cD)=一尼缈



(3.4.3)

假设一个离散时间系统的幅频特性等于1,则当信号缸疗)通过该系统后,其输出灭,z)
的频率特性


Y(ejm)=H(ejm)X(ej埘)=e一’七m X(ej彩)I eJarg[x‘一9)】=l X(ej脚)J

e’硝J‘一。’勘1

(3.4.5)

所以灭珂)=x(n一动,这样输出灭以)和输入在时间上是唯一对应的,达到无失真输出的目的。
可以证明,线性相位条件为:

fh(n)=h(N一1一,z)偶对称 I Jiz(咒)=一h(N一1一以)奇对称
即如果单位脉冲响应矗(,z)为实数,且具有偶对称或奇对称性,则FIR数字滤波器具有严 格的线性相位特性,其对称中心在以=(Ⅳ.1)/2处。当Ⅳ为奇数和偶数时,其网络结构可 以分别用图3.4.3(a),(b)的信号流图来实现。由该信号流图可以看出,线性相位结构比 图3.4.1的直接实现形式少用(Ⅳ.1)/2个乘法器【16】。 线性相位型FIR滤波器的优点:简化网络结构。

y(n (a)N为奇数

一1)
y(n (b)Ⅳ为偶数 图3.4.3线性相位FIR滤波器结构

4.频率采样型

频率采样型结构是一种用系数将滤波器参数化的实现结构。一个有限长序列可以由
17



FIR滤波器的原理及设计

硕=1:论文

相同长度频域采样值来唯一确定。

系统函数在单位圆上作Ⅳ等分取样就是单位取样响应矗(,z)的离散傅里叶变换月㈤。
H(X3与系统函数之间的关系可用内插公式表示:



酢)=扣z-Ⅳ)篆嵩争
频率采样型FIR滤波器的优缺点如下:

(3.4.6)

其中呒七=ej2驯Ⅳ。由式(3.4.6)可见,FIR系统可用一子FIR系统和一子IIR系统级联而
成。

优点:选频性好,适于窄带滤波,这里大部分觎的为零,只有较少的二阶子网络;
不同的FIR滤波器,、若长度相同,可通过改变系统用同一个网络实现;复用性好。 缺点:具体实现时难免存在误差,零、极点可能不能正好抵消,造成系统不稳定;

结构复杂,采用的存储器梦171。
3.5

FIR数字滤波器的设计

.FIR滤波器设计方法是以直接逼近所需离散时间系统的频率响应为基础的。设计方 法包括窗函数法和最优化方法(等同纹波法),其中窗函数法是设计FIR滤波器的最常用
的方法之一。 1.窗函数法

任何数字滤波器的频率响应斌ei勺都是u的周期函数,它的傅里叶级数展开式为:

纸(e’∞)2∑hd(n)e,伽
其中

(3.5.1)

帕)露去』非如妙如

(3.5.2)

傅里叶系数^(以)实际上就是数字滤波器的冲激响应。由于JIl(疗)可能是无限长序列且为非 因果响应,是物理不可实现的,为此要寻找一个因果的III(忍),在相应的误差准则下最佳 逼近粕伽)。窗函数法设计的初衷是使设计的滤波器频率特性觑eI“)在频域均方误差最小 意义下进行逼近,即

占2=三2『I风(e’埘)一日(e徊)l
表示为:

dco=min

(3.5.3)

窗函数法就是用被称为窗函数的有限加权序列酬,1)来修正式(3.4.6),其所需h(n)
JII(刀)=%(刀)GⅣ(川
(3.5.4)

刚刀)是有限长序列,当,l>N一1及n<O时,刚,2)=O。这里仅以冲激响应对称即JIi(,z)=

硕士论文

基于FPGA的高阶FIR滤波器设计

^(Ⅳ.1.力)(以=O,1,2…N一1)时低通滤波器为例进行说明。低通滤波器的频率响应函数 n(d。)如下式所示: H(ej-)=e-j。)(N-I)/2,0-<1功降纹
(3.5.5)

在∞。<l甜l<Ⅱ时为0,其中∽为采样频率归一化时的角频率,∞。为归一化截止角频率。 利用傅里叶变换公式求出式(3.5.2)对应的冲激响应hal(n)为:

7c[,l一(≥一)】 姒功。i罕i

sin阪(万一.N-1)]

(3.5.6)

设计FIR滤波器常用的窗函数有:矩形窗函数、三角(Bartlett)窗函数、汉宁(Hanning)

窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数,具 体性能指标可参看表3.5.1【18】。
表3.5.1窗函数性能指标比较

窗函数的选择原则:

(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度;
(2)旁瓣幅度下降速度要快,以利增加阻带衰减; .(3)主瓣的宽度要窄,以获得较陡的过渡带【1 91。

通常上述几点很难同时满足。当选用主瓣宽度较窄时,虽然得到较陡的过渡带,但
通带和阻带的波动明显增加;当选用最小的旁瓣幅度时,虽然能得到匀滑的幅度响应和

较小的阻带波动,但是过渡带加宽。因此,实际选用的窗函数往往是它们的折中。在保 证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。
2.等同波纹设计方法

窗函数法存在某些缺陷。首先,在设计中不能精确地给定边缘频率∞,和∞。,这意 味着,在设计完成之后无论得到什么都必须接受;其次,不能够同时标定波纹因子万。 和万。,在窗函数设计法中只能设定万。=万。;最后,近似误差在频带区间上不是均匀分布 的,在靠近频带边缘误差愈大,远离频带边缘误差愈小。一种非常有效地解决这种问题 的FIR滤波器就是等同波纹FIR滤波器。对于线性相位的FIR滤波器来说,有可能导得 一组条件,对这组条件能够证明,在最大近似误差最小化的意义下,这个设计是最优的。
19



FIR滤波器的原理及设计

硕上论文

具有这种性质的滤波器就称为等同波纹滤波器,因为近似误差在通带和阻带上都是均匀 分布的【删。

等同波纹法是采用Parks.McClellan迭代方法来实现的。与直接频率法相比,等同波 纹设计方法的优点在于通频带和抑制带偏差可以分别指定,且实现相同指标的滤波器时 所用的滤波器阶数较小。
3.用MATLAB设计FIR滤波器 在MATLAB的SIGNAL
PROCESSING

TOOLBOX中有一个专门的数字滤波器设计

软件模块FDATool(Filter Design&Analysis T001),其功能强大,可以设计多种滤波器,

而且可以采用多种方法设计FIR滤波器,包括窗函数法和等同波纹法。它使用起来非常 直观有效,在输入设计要求下选择了设计方法后,可计算出各阶系数,并以图形的直观 方式显示幅频、相频、冲激响应和零极点图。它还可以把各阶系数以二进制补码的形式 导出到文本文件中去,方便了系数的转换。

3.6本章总结
本章主要探讨了FIR数字滤波器的原理和设计。 ?首先讨论了FIR数字滤波器的优缺点:之后讨论了FIR数字滤波器的理论基础:然 后给出了FIR数字滤波器的实现结构,包括直接型结构,直接型结构的转置结构,级联 型结构,线性相位FIR滤波器的结构和频率采样型结构等;最后讨论了FIR数字滤波器 的设计方法,主要有窗函数法,等同波纹设计方法和用MATLAB设计FIR滤波器的方 法。本文在设计滤波器时所采用的方法是在窗函数法的基础上采用MATLAB软件进行
设计,详细的设计过程将在第4章中给出。

硕士论文

基于FPGA的高阶FIR滤波器设计

4基于FPGA的FIR滤波器设计
4.1

FPGA设计方法

.在进行传统的数字系统设计时,一个系统硬件设计的实现过程是从选择具体的元器 件开始的,通过用这些元器件进行逻辑电路设计,完成系统中各独立功能模块的设计, 再把这些模块连接起来,总装成整个的硬件系统。上述整个过程是从底层设计开始,因 而称为自底向上的设计过程。 这种设计过程的优点是符合硬件工程师传统的设计习惯,缺点是在进行底层设计时 缺乏对整个系统总体性能的把握,在整个系统设计完成后,如果发现性能不能满足需求, 修改起来比较困难,因而设计周期长,而且,随着设计规模与系统复杂度的提高,这种 设计方法的缺点就显得越来越突出。 与自底向上的设计过程相反,现在的FPGA设计工具,可以自动实现从高一层次向 低一层次的转换,实现自顶向下的过程。 自顶向下的设计过程是在设计的最顶层,把整个系统看成是包含输入输出端口的单 个模块,并在系统级层次上对其性能进行描述,再通过系统仿真,对其性能进行优化; 然后这个系统模块又进一步被划分为各个子功能模块,再对每一个子功能模块进行描 述,同时进行相关的仿真;最后通过FPGA开发工具提供的逻辑综合软件,自动地将其
综合到特定元器件上,从而完成设计过程【211。

采用自项向下的设计方法的优点是明显的,因为整个设计是从顶层开始的,结合仿 真手段,可以从一开始就掌握要实现的系统的性能,再结合要实现的系统的具体性能要 求,通过调整,可以直接进行性能的优化。随着设计层次向下的进行,系统的性能参数 将进一步得到细化,并随时可以根据需要进行调整,从而保证了设计结果的正确性,缩 短了设计的周期,而且随着系统规模的增大,这种设计方法的优势也更为明显。这种设 计方法的缺点是需要先进的逻辑综合工具。不过随着逻辑综合工具的不断完善,这个缺


点也会随之消失。
4.2

FIR滤波器设计流程
FIR滤波器的设计流程包括以下几个方面:
1.设计规范

设计规范包括滤波器的类型,阶数,滤波器的设计方法,选定设计方法后对应的参 数,采样频率,截止频率等。
2.滤波器系数的计算

利用MATLAB软件的FDATool模块,通过设置上面的参数后可以简单地计算出滤
21

4基于FPGA的F|R滤波器设计

硕上论文

波器的参数,之后再对计算出的参数进行量化就可以得到一系列的整数,这样就可以在
FPGA中使用了。

3.硬件的实现和验证 硬件的实现就是通过常用的如原理图或者硬件描述语言等方面描述出滤波器的原 型,验证则是把前面实现出来的原型转化成网表下载到FPGA器件里面,通过实际电路 来观察设计是否正确,如果不正确,要返回上面的步骤重新开始设计。
4.设计优化


当第3步硬件的实现和验证正确后可以根据实际情况对设计进行优化,优化完后通 过验证,如果结果符合实际的要求,设计完成,如果不正确,则要返回上面的步骤重新 开始,直至正确为止。 FIR数字滤波器的设计流程如图4.2.1【22】所示。



图4.2.1 FIR滤波器设计流程


4.3

FIR数字滤波器系数的计算

传统的滤波器如数字低通滤波器的设计步骤如下:

Ⅱ一1论i

*J FPGA的∞阶FIR镕被#№H

(川诞掘技术指标计算出滤波_;}:}的阶数_Ⅳ; (2)求出归‘化的极点,代入公式求出归一化传输函数,或由_v查表得到; (3)将传输函数归一化,得到实际滤波器的忙输函数,截止频率也由公式计算[引。 埘这种公式进行实验和分析时,往往会遇到非常繁重的数学运算和数值分析。因此,
很多人借助MATLAB柬辅助设计。MATLAB软件足MathWorks公司于1982年推山的

一套高性能的数值运算可视化软件,它集数值分析、矩阡运算,信号处理和图形显不F 一体,功能强大,编程效率高,足没计数字滤波器的强有力L具。
下而L1个采样频率Fs为48kHz,滤波器的截Jr频牢为10 8kHz,输入序列何宽为 9位(最高他为符号位1的16阶的采用直接型结构的FIR低通数字滤波器为倒术晚明如何 利用MATLAB软件柬设计滤波器。 打丌MATLAB的FDATool。MATLAB集成丁一套功能强大的滤波器设训工具

FDATool(FilterDesign&AnalysisT001),可以完成多种滤被器的设训、分析和性能评估。 单c|亍MATLAB主窗口下方的Start按钮,选择ToolBox—FilterDesign~FilterDesign

幽4.3 l FDATool抖血示意削

FDATool左下侧排列的一组工具按钮,功能分别是:

4基于FPGA的FIR滤波器设计

硕上论文

?堕滤波器转换(TraIlsF。nn Filt神
?‘o《,
象燃荡设置量化参数(Set Quantization Parameters)
F.~

?亨孪。

i'实现模型(Realize Model) ;‘
Jh


?!隧矽导入滤波器(Import Filter)

?:豳设计滤波器(Desi盟Filter)
单击其中的“设计滤波器”按钮,进入设计滤波器界面,再选择滤波器类型(Filter Type) 为低通(Lowpass);设计方法(Design Method)为FIR,采用窗函数法(Window);滤波器阶 数(Filter Order)定制为16;窗口类型为Kaiser,Beta为O.5:采样频率Fs为48kHz,滤

波器的截止频率Fc为10.8kHz。

单击里曼!幽婴曼|按钮,让MATLAB计算FIR滤波器的系数并作相关分析。计算完
FIR滤波器的系数后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解 是否满足设计要求。
在FDATool的菜单Analysis下分别有Magnitude Response(幅频响应),Phase

Response(相频响应),Magnitude&Phase Response(幅频与相频响应),Group

Delay

Response(群延时响应),Impulse Response(冲激响应),Step Response(阶跃响应),Pole/Zero Plot(零极点图),Filter Coefficients(滤波器系数),点击上面的予菜单即可看到对应的性能 分析,如果满足要求,最后点击Filter Coefficients查看滤波器的系数,可以发现计算出 来的滤波器系数为一系列带符号的小数,而在FPGA中设计时这些系数必须要是整数,


因此要对计算出来的滤波器系数进行量化【241。 点击FDATool左下角的工具量化按键通过设置系数、中间乘积结果、中间相加结果 以及输出结果的位数对系数进行量化,量化后的系数仍为小数,将它们乘上2的滤波器 系数量化的位数次幂即可得到量化后的FIR滤波器的整数形式的系数,然后就可以在 FPGA中使用了,至此有关滤波器的系数计算工作全部完成。
4.4

FIR滤波器设计的总体结构
本设计的总体结构框图如图4.4.1【25】所示.

24

硕上论文

基于FPGA的高阶FIR滤波器设计

图4.4.1滤波器的总体结构框图

各模块的主要功能如下: (1)移位寄存器

移位寄存器的功能是将输入序列缸,z)通过移位寄存器改为并行输入,这个模块的功 能对于所要讨论的三种FIR滤波器的实现结构是完全一致的。
(2)优化模块

优化模块的功能是根据FIR滤波器h(,1)的对称特性将滤波器降阶,完成输入求和 缸幼+x(m-1.幼,对于本例中的128抽头的滤波器,即完成颤O)+缸127),双1)+缸126),……, 缸63)+x(64),这个模块的功能对于所要讨论的三种FIR滤波器的实现结构是完全一致


的。 (3)乘法器模块

对于使用乘法器结构的FIR滤波器,乘法器的实现对于系统的性能有很大的影响, 在第5章将着重介绍乘法器的实现及优化问题。基于DA算法的乘法器是通过查找表的
方法实现的。 (4)加法器

将前面乘法器模块得到的结果相加,最后得到输出结果Y(玎),有关加法器的设计及 优化将在第5章重点介绍。

4.5基于乘累加FIR滤波器结构
图4.5.1所示为基于乘累加结构的FIR数字滤波器的硬件结构示意图。

4基于FPGA的FIR滤波器设计

硕’f:论文

图4.5.1基于乘累加结构的FIR滤波器硬件结构

图4.5.1中,FIR滤波器的系数存储器用来存入所有的FIR滤波器系数,存储器的容 量根据FIR滤波器的阶数和系数的位数来确定。采样数据存储器用来暂存外部输入的采 样数据。读取控制模块用来控制采样数据与相对应的FIR滤波器系数输出以及滤波器输
出【261。

采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加, 经过滤波器的阶数次的反复乘加最后输出滤波结果。 乘累加结构FIR滤波器性能分析: 优点:这种滤波器结构简单,硬件资源占用少,只要一个加法器和一个乘法器,成 本低。


缺点:这种结构FIR滤波器每次都需在多个时钟周期下才有输出,时钟周期的个数 受滤波器阶数的影响,因此这种乘累加结构的FIR滤波器处理速度慢,只能用于对处理 速度要求不高的系统【271。

4.6基于并行乘法器FIR滤波器结构
图4.6.1所示为基予并行乘法器的FIR数字滤波器硬件结构示意图。

硕士论文

基于FPGA的高阶FIR滤波器设计



图4.6.1基于并行乘法器FIR滤波器结构

直接并行FIR滤波器虽然可以在一个时钟周期内完成一次滤波,但由于其中和乘累 加器都是用大面积的组合逻辑完成,器件延时比较大,所以其工作速度不可能太高。为 了提高滤波速度,可以在中间适当的插入寄存器,构成流水线,这样的好处是滤波器可
以工作在很高的运行频率上,但是要占用更多的硬件资源【281。

从图4.6.1基于并行乘法器的FIR滤波器的实现结构图上可以看出,在实现的时候, 在加法器和乘法器后面都插入了相应的流水寄存器,相乘后的结果用平行的加法器树的 结构实现相加。加法器的实现级数由参与相加的被加数的个数决定,如k个被加数,则
需要l092k级加法器才能得到最后的加法结果。

一个8阶对称系数的FIR滤波器的流水实现由4级流水构成,具体如下:., (1)8个输入用4个加法器相加构成第一级流水; (2)4个并行乘法器构成第二级流水: (3)得出的4个中间值两两相加构成第三级流水;


4基于FPGA的FIR滤波器设计

硕士论文

(4)得出的2个中间值两两相加构成第四级流水。 流水并行结构虽然多消耗了寄存器资源,但可大大缩短器件中关键路径的长度,使 程序的工作速度显著提高。 直接结构实现的FIR滤波器主要由三部分组成:数据移位寄存器、乘法器和多操作 数加法。对于一个Ⅳ阶FIR滤波器而言,直接结构实现的FIR滤波器共需要Ⅳ级数据 移位寄存器、Ⅳ个乘法器和Ⅳ-1个加法器,其最大采样频率(厂咖戤)与系统时钟频率(厂。Ik)

的关系为厂锄酞可cik。



转置结构实现的FIR滤波器主要由两部分组成:乘法器和加法器。与直接结构实现 的FIR滤波器相比,转置结构实现的FIR滤波器有两个特点:一是所有乘法器的被乘数 都相同,二是不需要额外的寄存器来存储采样数据。利用转置结构实现的FIR滤波器的 第一个特点可以简化其乘法器的设计,即简化加法器图。

4.7基于分布式(DA)算法的FIR滤波器结构
基于乘法器结构的FIR滤波器设计中乘法运算总是系数一个一个依次相乘的,也就 是说有多少阶的FIR滤波器,就需要有多少次的乘法运算。在乘累加结构中由于累加次 数与FIR阶数成线性相关,所以对于高阶的FIR滤波器设计一般不采用乘累加结构,而 并行乘法器结构就会使用大量的乘法器。基于FPGA的高阶FIR滤波器,采用这种方法 就显得非常浪费资源。分布式算法就是将乘法运算转换成基于查找表结构,并且高效地 实现多个乘法运算操作,在速度上和资源占用上都比使用乘法器结构设计FIR滤波器有 优势。 4.7.1分布式算法原理 分布式算法(Distributed Arithmetic,DA)是一项重要的FPGA技术,被广泛地应用来
计算乘积和
N-I


y--'--<|Ii,X>--.--∑办(疗)?石(,1)
nffi0.

(4.7.1.1)

运算式中。除了滤波器,卷积、相关、DFT等凡是有乘累加运算的地方,都可以用这个 算法实现。 当使用传统的算法单元完成一个滤波周期时,大约需要^,次MAC循环,当使用并 行的流水结构时,可以缩短这一周期,但这是以硬件资源的消耗为代价的。但不论采用 哪种实现方案,都需要硬件的乘法器(只是乘法器的个数不同),硬件乘法器是非常消耗 硬件资源的。 ’在许多DSP应用领域,在技术上是不需要通用的乘法运算的,比如FIR滤波器的 实现,多数情况下滤波系数JIl仰)是一串常数,则这样就不需要通用的乘法器,这也是
28

硕士论文

基于FPGA的高阶FIR滤波器设计

DA算法的一个先决条件。
有关DA的讨论最初可以追溯到1973年Croisier发表的论文[29/,而DA的推广工作

则是由Peled和“u进行的。Liu将DA扩展到有符号数。由于FPGA的发展,DA算法
现在得到了广泛的应用。为了理解DA设计,考虑乘积和为
.N...—-—I

J,=<,∥>=姜ho).“功2
打=U

(4.7.1.2)

、1?,?-?●,

办(0)x(O)+办(1)x(1)+…+h(N一1)x(N—1) 进一步假设系数五(珂)是已知常数,缸,z)为输入常量。对于无符号DA系统,假设变量
缸玎)的表达式为
X ,L 以

、,

|J

纠∑脚

% ,L 万 、, 2



xb(n)∈[O,1】

(4.7.1.3)

其中xb(n)表示缸,z)的第b位,而《,z)也就是x的第n次采样,而内积Y可以表示为

Y=∑办(,z)?∑xb(n)?26
n=0

(4.7.1.4)

b=0

重新分别求和(也就是“分布式算法’’名称的由来),其结果为

Y=h(O)(xB—l(O)2口一+%一2(O)2口一2+…+xo(O)20)+ 办(1)(%一l(1)2口-1+%一2(1)2占一2+…+Xo(1)20)+ h(N-1)(xs—l(Ⅳ一1)2纠+XB一2(Ⅳ一1)2占一2+…+%(Ⅳ一1)20)= (五(O)‰一l(O)+五(1)x口一1(1)+…+元(Ⅳ一1)‰一1(N-1))2口-1+ (h(O)xB一2(O)+h(1)xB一2(1)+…+元(Ⅳ一1)xB一2(Ⅳ一1))2口一2+ (h(O)xo(O)+h(1)Xo(1)+…+办(Ⅳ一1)xo(N-1))20
或者可以写成更为简洁的形式,即 (4.7.1.5)

y=∑26?∑办(,z)%(,z)=∑26?∑厂(办(玎),%(咒))
b=0 n--0 b=0
n=0


(4.7.1.6)

函数火Jil(,z)鳓(,z))的实现需要特别地注意,所指的实现方法就是利用一个uJT实现

映射,预先设定程序的UJT接收_个Ⅳ位输入向量驴∞(O),xb(1),…,Xb(N-1)),输
出为苁^(”)鳓(,2)),各个映射以办(,z)鳓(,z))都由相应的二次幂加权并累加,最后得到一次滤 波的结果。 如果参与滤波的是有符号的二进制补码形式,在补码中,最高有效位是用来区分正

数和负数的,这里采用下面的肘1位表示“刀),即

x(,z)=-2占?‰(,z)+∑xb(n)?26
b=0

(4.7.1.7)

式(4.7.1.7)与式(4.7.1.6)联立可以得到输出Y,如式(4.7.1.8)所示

4皋于FPGA的F1R滤波器设计

硕|{:论文

Y=-2口?/(办(咒),%(,z))+∑26?∑厂(忍(咒),%(以))
b=O

(4.7.1.8)

n=0

从式(4.7.1.8)可以看出,对于有符号的DA算法,除符号位需要做减法运算外,其
他都和无符号DA算法相同。
4.7.2

I)A算法的实现结构 采用传统的乘累加结构实现的滤波器和采用DA算法实现的滤波器如图4.7.2.1,

4.7.2.2【30】所示。

I坂M1)

舰1)

坝o)I-_
×










H(N-1)

娥1)

坝∞卜

4.7.2.1传统的乘累加结构实现的滤波器示意图


XB(0) Xi(O)

胤。,卜
胤1)L_
LLrr






l麒1) l

蜀(1)

≮|.



xn(Nq)

局(M1)

泓删卜
图4.7.2.2





。L

DA算法直观实现图

图4.7.2.1是采用传统的乘累加结构实现的滤波器,图4.7.2.2是采用DA算法实现的 滤波器。比较一下通用乘累加器和DA算法的Ⅳ阶口位线性卷积的带宽,假设LUT和 通用乘法器的延迟时间相同,即萨《UJlr卜r(MUL),这样计算一次滤波需要等待的时间 就是DA的Br(LUT)和MAC的Nz(MUL),就小位宽召来讲,DA设计的速度可以显著 地超过基于MAC的设计,并且DA算法不需要很耗资源的乘法器。
就图4.7.2.2所示的最基本的DA实现,来分析一下DA算法的性能。
30

硕士论文

基于FPGA的高阶FIR滤波器设计

(1)可以看出这种结构的滤波器,不需要通用乘法器; (2)可以看出这种结构的滤波器,完成一次滤波所需要曰次的累an(或减),也就是需 要曰个时钟周期完成一次运算,B为输入数据的位宽,所以这种结构的滤波器对处理输
入数据的位宽比较小的系统,有比较明显的优势;

(3)这种结构的滤波器中的查找表(LUT)的大小是由滤波器的阶数Ⅳ决定的,共需要 2Ⅳ个查找表单元,表中每个单元的位宽是由滤波器系数的量化位宽决定的,假设系数 量化位宽为B∞eft",则表中每个单元的位宽为(口。o。矿l092N),所以共需要∞。∞一-l092N)?2N
bit的RAM或者LIJT。从这点可以看出,当Ⅳ比较大的时候,比如N=32,则需要232

个LUT单元,这是很难满足的,当Ⅳ更大时,需要的LUT单元是不可想象的,所以这 种结构的DA实现不太适合Ⅳ比较大的情况【311。 这种结构的DA算法有两种变换形式,一种就是把DA算法的查找表复制曰份,每 一份的内容相同,这样就可以同时对B份UJT进行查找,同时得到召个中间结果,如 果这曰个结果再采用加法器树结构进行相加,就构成了这种全并行(或者称为速度最


优)DA算法的实现,其实现结构如图4.7.2.3[32】所示。

图4.7.2.3全并行DA算法实现结构图

这种速度最优的DA算法可以在一个时钟周期内完成一次滤波,但是它在硬件资源
31

4基于FPGA的FIR滤波器设计

硕上论文

消耗上是惊人的,比如Ⅳ阶滤波器,输入变量Bbit,则需要限∞er+l092N)?2Ⅳ?Bbit

RAM

资源,Ⅳ很大的时候更是无法想象的。除了RAM资源j而且还需要增加额外的寄存器 和加法器,可以说这种结构的DA实现的速度,完全是以硬件资源的消耗换来的,这在 很多情况下是不经济的。 还有一种变换形式是介于上面两种实现结构的中间,可以称为串并结合的实现结

构。这种结构是把DA算法的查找表复制,份,其中2≤‘,妨,这样就需要B/,个时钟
周期得出部分和,然后再进行累加。

上面三种DA实现结构,不论是全串行的、串并结合的还是全并行流水结构的,它

们的每个DA查找表的大小都需要∞咖n+log煳?Tv bit的RAM来实现,况且在串并结
合、全并行结构中需要的查找表的个数还不止一个。前面已经分析过,在当滤波器阶Ⅳ 很大时,需要的RAM资源很多,甚至有的时候由于硬件资源的限制,是不可实现的, 所以需要寻找一种改进的实现结构,以降低RAM资源的消耗。 4.7.3改进的DA解决方案 如果系数Ⅳ过多,用单个UJT不能够执行全字查找(表过大,消耗资源,难于实现), 则可把系数进行分组,利用部分查找表并将结果相加。如果我们再加上流水线寄存器, 显然这一改进并没有降低速度,但却可以极大地减小设计规模。因为LUT的规模随着

地址空间,也就是滤波器系数Ⅳ的增加而呈指数增加。假定长度为叫的内积如下式所
示:

Y嚣h?X筝乏:^(疗)-H疗)


L..N.一-1



(4.7.3.1)

可以用一个DA结构实现,将和分配到三个独立的Ⅳ阶并行DA的LUT之中,如式(4.7.3.2) 所示:
£一1 N-I

Y=h*x誊∑∑h(Ll+,1).x(Ll+刀) ‘一.‘一


(4.7.3.2)
、 ’

11,,0 n=O

例如要实现一个4N的DA设计,需要3个辅助加法器,其实现的结构如图4.7.3.1(33】 所示。

32

硕士论文

基于FPGA的高阶FIR滤波器设计

图4.7.3.1改进DA算法实现结构图

从图4.7.3.1可以看出,这种实现结构不是复制DA查找表,而是把输入数据按阶数 分组,分解成£个小滤波器。当然对于一个固定阶数的滤波器,可以有多种不同的分组 方法,因为一般可以分成两个不同的数相乘。例如一个128阶的FIR滤波器,可以把 128表示成128=2×64=4X32=8×16等几种情况: (1)如果分成16组,每组8(小滤波器的阶数)个数据,则总共需要的LuT单元数为 16X28=4096个。 (2)!ZI:I果分成32组,每组4(小滤波器的阶数)个数据,则总共需要的uJT单元数为 32×24=512个。 (3)!zn果分成64组,每组2(小滤波器的阶数)个数据,则总共需要的uJT单元数为 64×22:256个。

同理,也可以分成2组、4组、8组等几种情况,每种情况所需的叫T单元数可以
很容易地计算出来。 从上面的数据可以看出,分的组数越多,所需的LUT单元数越少,但随着组数的增 多,所需要辅助加法器也随之增多。在实际的工程应用中,划分多少个组,要根据实际
的情况具体分析,总的原则是节省硬件的资源。

在用FPGA实现具体的基于分布式算法的FIR滤波器的时候,因为FPGA中有不同
33

4基于FPGA的FIR滤波器设计

硕J二论文

的资源,比如BLOCK RAM,LC(Logie Cells)等,不同的资源有不同的用途,比如BLOCK

RAM只能用做RAM或者ROM来使用,不能用做其他的用途。而FPGA中的LC既可 以用作普通的逻辑资源使用,其中的查找表和D触发器也可以用来存储数据,并且LC 中的查找表的位宽一般是4位宽的。因此在具体实现的时候,分组也要考虑所选用的 FPGA器件的限制,,是用BLOCK

RAM实现分布式算法的查找表,还是用LC中的查找

表实现分布式算法的查找表。如果用BLOCK RAM实现,要考虑FPGA支持哪几种位

宽,如何充分利用块RAM资源;如果用LC中的查找表,则要求4位宽的,以便充分
利用LC中查找表资源[34】。

DA算法结构的FIR数字滤波器的优势是不使用乘法器资源,但它的滤波速度比较 慢,由输入数据的位宽决定,所以适合于对资源敏感,并且输入位宽比较窄的滤波系统。

4.8三种滤波器实现方案总结
上面介绍的三种滤波器实现方案各有自己的优缺点,总结如下: 串行MAC滤波器所占硬件资源较少,只需要一个MAC即可完成滤波工作,但它 完成一次滤波需要N(N为滤波器的阶数)次乘累加运算,假设完成一次乘累加需要一个 时钟周期,则串行MAC完成一次滤波需要Ⅳ个时钟周期,而利用FIR滤波器系数的对 称性可以把完成一次滤波的时间减小为N/2个时间周期。 全并行FIR滤波器是把滤波的实现展开,用多个乘法器和加法器按流水的结构工作, 所以这种结构的滤波器所需硬件资源最多,能达到的运行速度也最快,除掉流水线的延 迟,可以一个时钟周期就完成一次滤波。 对于上面的两种实现方案还有直接型和转置型两种,下面分别讨论它们的优缺点。 直接结构实现的优点: 1.可以利用CSD编码和系数分解优化乘法器: 2.可以利用各种加法树实现多操作数加法。 直接结构的缺点是需要额外的寄存器存储数据,当采样数据的字长很长时资源利用 率低。因此直接结构的实现方法适合采样数据和系数的字长都不是很长、阶数很大的 FIR滤波器,而不适合实现采样数据字长很长的FIR滤波器。 转置结构的优点是:
1.不需要额外的寄存器存储数据; 2.可以利用简化加法器图简化乘法器的设计。

转置结构的缺点是加法器的字长逐渐增加,不便于模块化设计,而且当采样数据和 系数字长都很短、阶数很大时,加法器字长的增加将会浪费很多资源。因此转置结构的 实现方法适合采样数据和系数字长都较长、阶数较小的FIR滤波器,而不适合字长较短、
阶数很大的FIR滤波器。
34

硕士论文

基于FPGA的高阶FIR滤波器设计

DA算法结构的滤波器利用滤波器常系数的特点,把滤波器中的乘法器转换成查找 表的方式来实现,是滤波器可以省掉很消耗硬件资源的乘法器,而只需要一些查找表、 累加器、寄存器就可以完成运算。比较实际的DA滤波器完成一次滤波只需要B个时钟 周期,B为输入数据的位宽,所以DA算法比较适合输入数据位宽比较窄的系统,可以
提高滤波效率。


综上所述,FIR滤波器的三种实现方案都各有优点及缺点,因此实际设计中要根据 FIR滤波器的采样率、采样精度(字长)、系数长度以及滤波器的阶数这四个主要因素,
综合考虑,在性能与设计规模之间做出最佳的权衡。

4.9本章总结
本章讨论了基于FPGA的FIR滤波器的设计。

首先给出了自底向上和自顶向下设计的设计方法,并讨论了自顶向下设计方法的优 点;之后讨论了FIR数字滤波器的设计流程,然后在这个设计流程的基础上讨论了在 FPGA上FIR数字滤波器的实现,主要包括: 1.FIR数字滤波器系数的计算,本文使用MATLAB软件来完成FIR数字滤波器的
系数的计算;

2.FIR数字滤波器设计的总体结构,并在这个总体结构的基础上讨论了三种具体
的FIR数字滤波器在FPGA上的实现结构,依次是基于乘累加FIR滤波器结构,基于并

行乘法器FIR滤波器结构和基于分布式算法的FIR滤波器结构。在这三种具体的实现结
构中着重讨论了基于分布式算法的FIR滤波器结构。

3.最后对上述的三种具体的实现结构进行了总结。

35

5加法器和乘法器的设计与优化

硕.J:论文

5加法器和乘法器的设计与优化
5.1加法器
加法器是数字信号处理中最常用、最基本的设计单元,很多其他的运算,比如减法、 乘法,都可以转换成加法运算。加法器有许多不同的实现结构,不同的结构可以达到不 同的资源、速度的要求。为便于理解,不妨从最简单的半加器开始来说明常用加法器的
设计及特点。

5.1.1半加器 半加器对两个lbit的输入进行求和,之所以称为半加器是因为它忽略了进位输入信 号。半加器的真值表如表5.1.1.1所示。
表5.1.1.1半加器真值表 输入端 (a)



输入端 (b)



进位输出 (c_out)
0 0

和输出 (S)
.0 l

输入端 (a)



输入端 (b)
0 1

进位输出
(c_out)
O l

和输出 (S)



通过真值表可以得出c

out=-a?b,s-aob。

半加器通常用图5.1.1.1所示符号表示。

图5.1.1.1半加器符号示意图

5.1.2全加器 全加器和半加器的区别在于全加器多了一个进位输入端,全加器的真值表如表
5.1.2.1所示。

硕士论文

基于FPGA的高阶FIR滤波器设计

表5.1.2.1全加器真值表

输入
端 (a)

输入 端 (b)

进位

和 输出 (S)

进位 输出 (c_out)

输入 端 (a)

输入 端 (b)

进位 输入 (c—in)

和 输出 (S)

进位 输出
(c_out)

输入
(c—in)

s=a o b o

c—in,cout=(a?b)+((a o b) ‘cjn);

全加器通常用图5.1.2.1所示符号表示。

图5.1.2.1全加器符号示意图

5.1.3行波进位加法器 Nbit行波进位加法器是将Ⅳ个bit全加器串联起来进行两个Nbit数的相加,进位是
采用串行进位的方法来实现的,即本级的c out作为下一级的c in参与下一位的加法运

算。这种加法器结构简单,但速度较慢,其逻辑表达式为:si=ai



bi

o ci,

ci+l=慨.bi)+((ai obi)?Ci)。如4bit行波进位加法器结构图如图5.1.3.1所示。
a【3】 b【3】 a[2】 b[2】 a[1】 b[1】 a[0】 b[0】

图5.1.3.1 4bit行波进位加法器结构图



行波进位加法器串行进位链的总延迟时间与字长成正比,字长越长,延迟时间就越 长。假设每一级全加器的延迟时间为t,则Nbit加法器的进位总延迟为M。由于延迟时


间较长,高性能设计中一般不采用这种结构的加法器。
37

5加法器和乘法的设计与优化

硕上论文

5.1.4超前进位加法器 影响加法器速度的关键因素是进位信号产生和传递的时间,要提高加法器的速度, 就必须尽可能地缩短进位时间,改进进位的方式。超前进位加法器的特点是各级进位信 号同时产生,大大减少了进位产生的时间。在加法器进位计算的表达式
Ci+1=(ai.bi)+((ai


bi)?ei)中,令Pi=ai o bi,Gi=ai?bi,则有ca+l=Gi+(ct?Pi)。各进位产

生逻辑可以写成:
CI=GI+(PI?co) c2=GI+(P2?C1)+(P2?PI?co) c3=G3+(P3。Gz)+(P3。P2?G0+(P3?P2?P1?co)



从表达式可以看出,所有位的进位都不依赖低位的进位,每一位的进位只依赖于输 入的a,b和co,它们可以同时产生。可见Nbit超前进位加法器的延时与字长无关,这 样可以大大提高加法器的工作速度。
4bit的超前进位加法器在Altera Stratix器件EPlS25上综合后的I盯L视图如图 5.1.4.1所示。
嘎墨卜?
?

=移
=黔一
∞ =葛》一

●嘲

=驴 o吨¥:, —广产叫厂|===- 珍
t《l!l

稍I广—J

——o.

r\

”i

J一口产1

E扔



l一

=驴 H} =扔
叫同

湓习 J

:兮 :驴
qm

7一

,U.>嶙

图5.1.4.1

4bit超前进位加法器RTL视图

超前进位加法器虽然可以缩短进位链的传输时间,但随着加法器位数的增加,ci的 表达式会越来越长,电路结构会越来越复杂,而且受到器件扇入系数的限制,电路性能 会下降,所以完全采用并行进位是不可能的。实际上通常采用分组的方法来解决,即把 Nbit字长的加法器分成若干小组,在组内实现超前进位,在组间即可以用行波进位,也 可以采用超前进位。一般把组内采用超前进位,组间采用行波进位的加法器称为单级超 前进位加法器,把组内组间都采用超前进位的加法器称为多级超前进位加法器【351。
38

硕-{:论文

基于FPGA的高阶FIR滤波器设计

5.1.5流水结构加法器 当采用超前进位加法器时速度快,但随着加法器倍数增加,消耗的门越来越多,门 延迟也越来越大。这时候虽然充分利用了查找表资源,但触发器资源却没有充分利用, FPGA器件是触发器非常丰富的器件,因此可以考虑采用流水结构,充分利用触发器资 源,从而大大提高加法器的工作速度。流水线结构的每一步的中间结果都需要用寄存器 暂存,尽管单个运算需要多个时钟才能出结果,但由于操作数是不断送入到运算输入端 的,所以总的效果是每个加法器运算平均消耗一个时钟周期,大大提高了系统的处理速
度和吞吐量【361。

图5.1.5.1所示为把一个8bit的加法器分成两个4bit的加法器,采用两级流水结构 实现的结构框图【3
71。

图5.1.5.1 8bit流水线加法器结构框图

5.1.6进位保留加法器(CSA) 为了减d,N法树的时延,Wallace,Dadda等人都给出了不同的加法树结构来减小加 法树的时延。虽然这些加法树的形式各异,但它们都是基于进位保留加法器(carry
SaVe

adder,CSA)的加法树,这里统称为进位保留加法树。进位保留加法器的结构如图5.1.6.1

所示,它是将三个操作数利用全加器相加,将进位结果保留下来,变为两个操作数。从 图5.1.6.1中可以看出进位保留加法器的延时只有一个全加器的延时【381。进位保留加法 树就是以进位保留加法器为基本单元的树形结构,使刀个操作数变为两个操作数,最后
再用普通加法器生成两个操作数的和,如图5.1.6.2所示。

39

5加法器和乘法的设计与优化

硕士论文

图5.1.6.1进位保留加法器示意图
?




C S A

C S A

C S A

C S A

?



图5.1.6.2级联CSA结构不意图

基于进位保留加法器的树形结构,由于设计的不同,相同的操作数可以有不同的树 高,最后生成的两个操作数的字长也有差别,因而性能也有所不同。

5.2多操作数加法优化



在大多数应用场合下,滤波器都是线性时不变系统,即系数是常数。在这种情况下, 硬件方面的工作基本上就是降低到开发实现FIR滤波器算法所需要的乘法器和多操作 数加法。本节主要讨论两种常用的多操作数加法实现方法:二叉树和Wallace树,然后 在Wallace树的基础上讨论适合在FPGA上实现的1比特多操作数加法树。有关乘法器 的设计和优化将在后面的两节中给出。 5.2.1二叉树 =叉树是一种最简单也最容易实现的并行多操作数加法,其结构示意图如5.2.1.1
所示。


图5.2.1.1二叉树结构示意图



二叉树是将操作数两两分组相加,然后再分组相加直到只有一个和为止。因此二叉

硕士论文

基于FPGA的高阶FIR滤波器设计

树的高为ceil(109an),其中刀为操作数的个数。 假设加法器采用的是串行加法器,如图
5.1.3.1所示,再假设每个全加器的延时都为乃 操作数的字长为k,则可以得出整个二 叉树的最大延时为T?[k+2ceil(109an)]t391。

可以在加法器后面添加流水结构,虽然单个运算需要多个时钟周期才能出结果,但
由于操作数是不断送入到运算输入端的,所以总的效果是每个加法器运算平均消耗一个 时钟周期,大大提高了系统的处理速度和吞吐量。
5.2.2

Wallace树 Wallace树的主要思想是:将最低权值相同的输入操作数每三个分为一组,应用进

位保留加法器相加变为两个操作数,如此反复,若最低权值中的最小值只有一个,则将 这个最低位输出,直至最后剩下两个K比特数用普通加法器相加。可见,如果一列有m 个点,则在这一列应用m/3个CSA,这使得最后的加法器尽量短,从而使总延时最短【4叭。

k+2

【2,七+1】





图5.2.2.1多比特7输入Wallace树结构示意图

Wallace树的结构如图5.2.2.1所示,所用的基本模块为k比特进位保留加法器,可
41

5加法器和乘法的设计与优化

硕士论文

以将其模块化,模块的输入为总路线型操作数,所有的进位保留加法器不是作用在同一 个权值,底层的进位保留加法器作用权值大,项层的进位保留加法器作用权值小。 Wallace树的缺点在于其模块间互联复杂,没有规律性。各层上的输入延迟不同,所以
在最后的输出端的毛刺,需要用寄存器进行同步处理【4¨。

将n个操作数的Wallace树的最小树高记为h,则h满足下面的公式:

2(妄)6_+l≤r/≤2(詈)“
Z 二

(5.2.2.1)

解得Jl满足:
log
≤ 2 (5...2) (5…2 3(芸)≤ h22 2) 3(昙)≤≤log 3(掣)+l 3(=i二)+l j


i二

因此Wallace树总的时延为

T-[1093《)+七】≤‰≤r?[1093掣)+l+七】




(5…2 2 3)





5.2.3

l比特多操作数加法树 Wallace树虽然在各种多操作数加法器树中是延时最小的一种,但是由于其复杂的

互连线使得其难以被实现。但是当k=l时,则图5.1.6.1中的进位保留加法器将变成全加 器,输出字宽为ceil(1092n)。图5.2.3.1所示为1比特7输入的Wallace树的示意图。由 图5.2.3.1可知,1比特7输入的Wallace树只需要4个全加器,树高为3。这与多比特7 输入Wallace树相比,无论在全加器数量还是树高都明显减少。

图5.2.3.1 l比特7输入的Wallace树的示意图

1比特7输入Wallace树中的基本单元是全加器,其逻辑表达式为:
S=AoBo
42

Cf

(5.2.3.1)

硕士论文

基于FPGA的高阶FIR滤波器设计

co=A?B+A?E+B?Cf
式(5.2.3.2)还可以写成:
c= A)3...5( o 0 B ? B + A o B ?e

(5.2.3.2)

2 3

因此,在FPGA中全加器的实现方式就有两种。?种是利用式(5.2.3.1)和(5.2.3.2)的实现 方式,这种实现方式可以完全利用逻辑单元中的查找表来实现,共需要2个查找表,由 于每个逻辑单元只有1个查找表,因此需要2个逻辑单元。另一种实现方式是利用式 (5.2.3.1)和(5.2.3.3),这种实现方式利用了一个查找表和1个进位逻辑,它们都被包含在 1个逻辑单元中,因此这种方式只需要1个逻辑单元。

5.3乘法器
乘法器是数字信号处理运算中最基本的设计单元之~,比如最常用的滤波、FFT都 要用到乘法器。乘法器的实现方法也是多种多样的,下面讨论几种在数字信号处理中常 用的乘法器的实现方法。 5.3.1移位相加乘法器 移位相加乘法器实现起来相对简单,就和手工做二进制乘法的过程一样,大多数单 片机和微处理器的乘法器运算都采用这种方法。移位相加就是根据乘数的每一位是否为 1进行计算,若为1则被乘数移位相加。这种方法资源消耗较少,需要一个加法器和一 个移位寄存器。比如一个4bit乘法器只需要一个8bit加法器即可实现。移位相加乘法器 的最大缺点是速度慢,4bit乘法需要4个时钟周期才能得到结果,因此移位相加乘法器 只能用在那种对速度要求场合不高的场合。移位相加乘法器可以用状态机来进行控制
【42】



由于移位相加乘法器的一个乘数是并行形式的,另一个乘数是逐位形式的,所以移 位相加乘法器又称为串行/并行乘法器。如果两个操作数都是串行的,那么就称为串行/ 串行乘法器,这样的乘法器只需要一个全加器,硬件资源非常节省,但是乘法器等待的

时问也大大增加了,状态机需要大约舻个时钟周期才能得到最终结果。移位相加乘法
器因为这种计算结构有计算延迟。为了在一个时钟内计算出结果,可以将移位加进行变 形,将乘法使用加法器树来实现。 5.3.2加法器树乘法器 加法器树的设计思想和移位相加基本相同,也就是将“移位后加"使用“加法器树"
替换。举例说明:一个4bit无符号乘法为例。乘数为1011,被乘数为1101。“移位加”

时使用4个时钟周期: 第一个周期计算结果为1 101: 第二个周期计算结果为1101+11010(根据权值移位)=100111;


43

5加法器和乘法的设计与优化

硕:l:论文

第三个周期计算结果为100111+000000(根据权值移位)=10011l; 第四个周期计算结果为100111+1101000(根据权值移位)=10001111; 如果使用“加法器树”,由于乘数的每一位权值一定,只需要根据乘数是否为1进 行判断,然后将其值相加就行。 权值为0对应乘数第一位,如果为1:1101;如果为0:0000; 权值为2对应乘数第二位,如果为1:11010;如果为O:00000; 权值为4对应乘数第三位,如果为1:110100;如果为O:000000; 权值为8对应乘数第四位,如果为1:l 101000;如果为O:0000000; 最终的移位相加是通过一个并行的加法器来实现的。加法器树需要的加法器数目等 于操作数位数减一,加法器的数目为操作数的两倍。如果采用流水线技术,加法器树乘 法器运算需要的时间仅为1个时钟周期。图5.3.2.1所示为4bit的加法器树乘法器的结
构示意图【42】。


圈5.3.2.1 4bit加法器树乘法器结构图

5.3.3查找表乘法器 查找表可以实现快速乘法器。这种方法将乘积项直接存放在存储器中,将乘数和被 乘数作为地址访问存储器,得到的数据就是乘法运算的结果。这种方法实现的乘法器的 速度由存储器的存储速度决定,小型的乘法器使用这种技术则非常的合适。例如一个 4bitx4bit的乘法,就需要一个256B的查找表来实现。但查找表的规模随着操作数的精 度提高而迅速扩大,比如一个8bitx4bit的乘法,乘法器需要216x2B的存储器,这是个 比较庞大的数据。 在第4章给出的分布式算法的FIR滤波器的乘法器就是基于查找表结构的乘法器。 当数据位数较大时,利用FIR滤波器的系数是常数的特点,把对应的输入数据进行分组, 从而减小了硬件的规模。


硕士论文

基于FPGA的高阶FIR滤波器设计

5.3.4混合乘法器

混合乘法器就是利用查找表做小型乘法器,然后再利用权值相加做大型乘法器。混 合乘法器结合了“查找表”和“移位加’’两者的优点,比如一个2Nx2N的乘法器可以 按照Ⅳ×Ⅳ乘法器模块的方式定义‘431,其表达式如下:

P=】,?X=(K2Ⅳ+X)(五2Ⅳ+五) =K置22Ⅳ+(E墨+Xt)2Ⅳ+X五
上式中下标2和1分别代表Nbit的两部分中最有效和最无效的一半。如果2N=8,则N=4,

这样就把一个8×8的乘法器分成了4个4X4和乘法器,每个小乘法器可以用不同的方 式实现,最后再进行移位加运算。

5.4乘法器的优化
本节着重介绍常系数FIR滤波器中乘法器的优化问题。 5.4.1通过系数分解优化乘法器实现


当一个二进制数和一个常数(也是二进制数)相乘时,该常数中的1的个数决定了加
法器的个数。


系数分解就是将系数分解为几个数之和或几个数之积。例如:系数231的传统二进 制编码为111001112,按照传统二进制编码系数231实现乘法器需要5个加法器,如果 将系数231表示为231=7×33=(23-1)(25+1),则每个因子只需要1个加法器,共需要两个 加法器即可实现【删。
图5.4.1.1为系数231采用系数分解法实现的结构框图。

图5.4.1.1常系数231的系数分解结构图

5.4.2通过CSD编码优化乘法器实现



在数字信号处理系统中,有一个重要的概念就是数的表示。数字信号处理系统中, 数的表示主要可以分为定点数和浮点数表示。一般认为定点数的实现具有更高的速度和 更低廉的成本,而浮点数则具有更高的动态范围且不需要换算,这对较为复杂的算法更
具吸引力。

定点数的表示法包括传统的二进制原码、反码、补码和非传统的有符号数字量编码、 对数编码、余数进制编码。CSD(Canonie
表示方法。
Signed

Digit)编码就属于非传统的有符号数字量


4S

5加泫器和乘法的设计与优化

硕士论文

传统二进制编码的数字值域只有0和1,而对于有符号数字量编码的数字值域却有 三个值,0、1、.1,其中.1用r表示。CSD编码就是使非零元素最少的有符号数字量表 示法。 经典的CSD编码的方法是:从最低有效位开始,用10…0r代替所有大于或等于2 的1序列,例如,1112=100rcsD。这种经典的CSD编码是独一无二的,而且另一个特性 是在最终表达式中两个非零元素(1或i-)之间至少有一个0。
经典CSD编码也不是总能够生成最佳的二进制编码,例如,1 12的经典CSD编码就

变成10TcsD,非零元素的个数没有改变,但字长却增加了1位,这样在实现乘法器时就 增加了硬件的复杂度。因此,需要对经典CSD编码方法进行修改,使其变成最佳CSD
编码方法。

最佳CSD编码的方法是: (1)从最低有效位开始,用10…Or代替所有大于或等于2的1序列。此外还需要用
110r代替1011。

(2)从最高有效位开始,用01 1取代101"1451。 常系数FIR滤波器中乘法器的硬件成本与系数中的非零元素的个数直接相关,最佳 的CSD编码可以使系数中非零元素的个数减至最少,因此利于CSD编码可以减少常系 数FIR滤波器中乘法器资源使用量。 5.4.3简化加法器图 对于转置结构的常系数FIR滤波器,所有乘法器的被乘数都相同,因此当系数含有 相同的因子时,可以简化乘法器的实现,这就是简化加法器图(reduce 来减小工作量,这些措施如下:
adder graph)算法。

通常找到最优的简化加法器图是一件非常艰苦的事情,但是还是有一些简单有效的措施
..

1.去掉系数的符号.因为符号可以通过滤波器的抽头延迟线上的减法来实现; 2.去掉所有是2的幂的乘数和因子,因为可以通过硬连线的数据移位来实现; 3.实现权值最低系数的乘法器; 4.用权值最低的系数构造更高权值的乘法器【46】。 图5.4.3.1给出了系数155与93的简化加法器图。由图可知,利用简化加法器图使 系数为155与93的乘法器的实现由原来的4个加法减少为3个加法。

硕上论文

基于FPGA的高阶FIR滤波器设计

图5.4.3.1系数155与93的简化加法器图

5.5本章总结
本章主要讨论了加法器和乘法器这两个数字信号处理单元中最常用、最基本的模块 以及它们的优化方法。加法器部分从最基本的半加器和全加器开始,逐步讨论了行波进 位加法器、超前进位加法器、流水结构加法器和进位保留加法器,并在这些结构的加法 器基础上给出了在进行多操作数相加时比较实用的三种加法器树:二叉树,Wallace树 和1比特多操作数加法树;乘法器部分逐步讨论了移位相加乘法器、加法器树乘法器、 查表乘法器和混合乘法器,提出了采用系数分解、CSD编码和简化加法器图的方法来优
化乘法器的设计。

47

6基于FPGA的128阶FIR数字滤波器设计实例

硕十:论文

6基于FPGA的128阶FIR数字滤波器设计实例
任务:在Altera公司的Stratix系列FPGA芯片上分别采用第4章所述的三种结构实 现一个128阶的FIR数字低通滤波器,并比较验证这三种结构的优缺点。 参数:滤波器的类型为低通,阶数为128阶。数据采样频率Fs为48kHz,滤波器的 截止频率Fc为10.81d-Iz,采样数据为8位定点数,滤波器系数为12位定点数,输出数
据为21位的定点数。

按照第4.3节介绍的方法调用MATLAB软件中的FDATool,设计出满足上述设计指 标的FIR滤波器,最后得到经过量化后的系数:9,4,.9,.7,7,9,-4,.11,1,1l,
3,-11,?6,9,10,一7,-12,3,14,l,.14,.6,13,10,.10,.14,7,17,.1,.19,

-4,18,11,一16,-17,12,22,-6,?25,.2,27,1l,.26,.2l,22,30,.14,.38,3,
45,1l,一48,一30,47,52,-40,.80,23,118,11,.181,。100,371,847,847,371,

-100,?18l,11,118,.23,一80,.40,52,47,.30,.48,1l,45,3,.38,.14,30, 22,-21,-26,1l,27,-2,一25,?6,22,12,.17,.16,11,18,.4,.19,.1,17,7, -14,-10,10,13,-6,-14,l,14,3,?12,.7,10,9,-6,.1l,3,ll,l,.11,.4,
9, 7,.7,-9,4,9。

假设滤波器的输入为:3,9,2,6,.20,15,4,.15,100,25,.3l,.52,13,46,
-93,-69,79,81,55,123,则卷积计算的结果共有147个数字,依次为:27,93,27, -40,-216,77,317,-123,509,653,-687,.1404,332,2006,-491,..2996,299,
4018,1497,02541,?2246,1733,2916,?918,。3344,.123,3416,1236,;3269,.2287, 2664,3292,-1758,?3916,565,4419.848,-4397,.2286,3832,3632,.2924,-4903, 1693,5785.218,.6028,?2129,5825,4291,.5004,-6184,3348,7770,.952,.8864, -1904,9335,521l,-8482,-8965,6089。12490,549,.5485,11973,25886,2332, 一34577,.21656,51 107,106554,75261,.8177,-48746,.21978,-3422,-47623,.93682, -40092,10628l,219518,200939,90574,3080,-9963,8665,7188,.8333,.8134, 6073,8921,-3342,.9091,433,8373,1930,.7089,.3878,5595,5250,.3620,.5856, 1496,5925,362,一5515,.1843,4630,3149,.328l,.3977,1892,4374,.524,-4328, ?773,3788,2024,?2974,.2688,2123,3292,.1007,.3453,.129,3248,1078,.2780, ?1866,2173,2513,?1267,.3071,549,3061,425,t1997,.757,1330,680,.899,
-558,-321,?158,987,1107。

系数量化后的FIR低通数字滤波器的幅频响应示意图由图6.1所示。

倾1论立

#十FPGA∞:^晰FIR瞎∞%啦,十

恻6 1系数耸化后的FIR低通数宁滤波器的幅频响戍示意l划

山图6 1可见,虽然因为系数量化引入了

定的量化噪声,但是存F。=10 8kHz处t

也就是截止频率处幅值迅速衰减为原柬的十分.z一,在f>2F。之后,幅值的衰减火r 35dB,因此利用FDATool软件所设计的FIR滤波器符合设计指标的要求。

6.1整体设计思路
存滤波器的设计L|J采用白顶向下的设计方洼,在瑷计过秤中采JJj层次化、模块化 的设计思想,将整个滤波器划分成多个功能模块,然后利用Venlog HDL硬件拙述晤i

进行各个模块的笈计,最终通过一个项层模块完成整个FIR数字低通滤波器的系统设
计。

6.2基于乘累加结构的FIR滤波器
6.2.1设计思路

按照第4.4节的滤波器的总体结构框图将陵结构滤波器分成二个典型的模块。第一 个模块是移位寄存器,该模块的功能是通过移位寄存器把串行输入的采样数据转换为并 行的:第二个模块是优化模块,优化模块的主要功能足根据FIR滤波器^(n)的对称性完 成输入求和x(k)+x(N-1。n,从而实现对滤波嚣的降阶:第三个模块是将第4.4节中的乘 法器和加法器台并构成乘累加器模块,乘法器模块完成输入数掘和它对应的系数的乘法 运算,而加法器模块完成将之前乘法器模块的输出的结果相加,加法器模块对乘法器模 块的输出的求和运算是通过一个计数器控制完成的,每完成一次乘累加操作后把结果输 出,该结果就是滤波器的滤波输出。每完成一次乘累加操作共需N/2个时钟周期,在第 (N/2+1)个时钟周期时把乘累加的结果输出,因此完成一次滤波输出共需要(N/2+1)个时
钟周期。

6单十FPGA的128阶r【R投J碚触#☆H蜜Ⅲ

㈣l皓Z

因为乘法器的输入数据在不同的“数时钟下对应的系数不同,因此对y-乘法器的啦 计采用了一个通用的乘浊器。为丁提一苛系统的性能,通过综俞比较采H』5


2节抛到的

加法器树乘法器。堪过个共完成N/2次计数的计数器米控制采累加操作,当训数值为

对应的数值时完成蚶应的输入信号与系数的乘税,许弓z前和桑B:帽加,壤后再重才珩训 数J『:始,也就是在计数值为0叫把乘累加的结果输出,从而完成一次滤波输H{。 6.2.2滤波器系统性能 滤波器蹬¨完成后,使用Quartus II自带的工具进行性能分析,当优化条件以兼顾
自】私!和速度为卜要目标叫.得到的结果立【|表6.2 2】所示。
嵌6.2


I滤波器性能分析表

由表6.2 21-Ⅱ见设滤波器议占用丁2103个逻辑单元,1677个寄存器,2个DSP单

元块和31个引脚,最高系统时钟频率为101 08MHz。.j-见山十采用了流水线结构,系 统的工作时钟频率可以达到很高,不过由于完成一次滤波输小需要(N/2+I)(N为滤波器 阶数)个时钟周期,也就是65个时钟周期,使得系统的采样频率只能为1 01


08/65≈

555MHz,因此乘累加结构的FIR滤波器』{能州于粟朴速率不尚,而系统资源又比较

紧张的场合。

6.2.3仿真验证
综合后的仿真对于FPGA殴汁来说是非常重要的,同时山于仿真的工作量也非常大,

限于篇幅,只能给出部分的仿真结果,图6
结果图。

2 3

1是乘累加结}h的滤波器的椰分{J:i真输出

凹6.2



I基于乘累加结构的FIR滤波器的部分仿真输出结果圈

图6.2



l中的elk为时钟信号,在本例中取为10ns,这样系统的时钟频率为100MHz,

刚好町以低于可达到的最高时钟频率l 0I.08MHz;rstn为系统的复位信号,在低电平
50

硕士论文

基于FPGA的高阶FIR滤波器设计

时有效,在系统刚开始时让它持续一段时间低电平,对系统进行复位,之后当rst n变
为高电平时,系统正式启动;fir in为输入信号,由上面的说明可知,fir iIl信号的周期

要大于(N/2+1)个时钟周期,也即650ns才能保证信号正确、可靠地输出,因此把输入信
号设为650ns;fir out为输出信号,由图6.2.3.1中的时序间隔可以看出,输出信号的周

期也为(N/2+1)个时钟周期,即650ns。可以看出从信号输入到完成滤波输出,共延时 3250ns,即5个输入信号时钟周期。
图6.2.3.2为滤波器的输入信号与滤波器的系数的卷积结果图和滤波器的仿真输出 结果导入到MATLAB中的结果图。

图6.2.3.2卷积结果和滤波器输出结果示意图

通过比较图6.2.3.2中的两个波形,可以看出滤波器的实际输出结果在刚开始时由于 流水线及FPGA内部器件间的延时而造成一段时间上的滞后外,波形的形状同滤波器的 输入信号与滤波器的系数进行卷积计算得到的结果,即从理论上得到的结果基本一致,
因此该滤波器设计正确。

6.3基于并行乘法器结构的FIR滤波器
6.3.1设计思路

按照第4.4节的滤波器的总体结构框图将该结构滤波器分成四个典型的模块。第一
51

6基于FPGA的128阶FIR数字滤波器设计实例

硕十论文

个模块是移位寄存器,该模块的功能是通过移位寄存器把串行输入的采样数据转换为并 行的;第二个模块是优化模块,优化模块的主要功能是根据FIR滤波器五(,z)的对称性完 成输入求和x(k)+x(N-1.助,从而实现对滤波器的降阶;第三个模块是乘法器模块,在本 结构中乘法操作是用“个并行的乘法器完成操作;第四个模块是加法器模块,完成多 个操作数的相加操作,该加法器采用第5.2节介绍的二叉树结构加法器来完成,最后一
个二叉树加法器的输出就是整个滤波器完成一次滤波输出的结果。通过在降阶操作的加

法器、乘法器以及二叉树结构的加法器之后添加流水线,可以大幅提高系统的时钟频率, 完成一次滤波输出只需要一个时钟周期。 由于本结构的滤波器中的乘法器的乘数都是固定的数值,因此可以利用第5.4节提 到的系数分解法、CSD编码和简化加法器图的方法对乘法器的结构进行优化,从而达到 减少硬件资源使用的目的。 6.3.2滤波器系统性能 滤波器设计完成后,使用Quartus II自带的工具进行性能分析,当优化条件以兼顾 面积和速度为主要目标时,得到的结果如表6.3.2.1所示。
表6.3.2.1滤波器性能分析表

由表6.3.2.1可见该滤波器仅占用了6624个逻辑单元,3792个寄存器,48个DSP 单元块和31个引脚,最高系统时钟频率为93.84MHz.可见该结构的滤波器的硬件资源 的使用相比乘累加结构的滤波器有了大幅度的提高,而且由于采用了流水线结构,系统 的工作时钟频率可以达到很高,虽然没有达到乘累加结构的100MHz以上,但由于该结 构的滤波器完成一次滤波输出只需要一个时钟周期,因此系统的采样速率可以和最高的 系统时钟频率持平,达到93.84MHz,相比乘累加结构的滤波器有了很大的提高。由此 可见基于并行乘法器结构的FIR滤波器适用于那些对系统的实时性要求较高,而对成本 没有什么限制的场合。


6.3.3仿真验证 由于仿真输出的结果的数据量非常大,限于篇幅,只能给出部分的仿真结果,图 6.3.3.1是该滤波器的部分仿真输出结果图。

52

舰论Z

蚺十FPGA的■断FIR砖被*世”

.≯i,薰雾雾雪雾雪雪蓄

7…『『I_●一


S0

100

150

×105

滤{:晓器输出结果



20

40

6D

80

1口0

120

140

160

幽6.3



2卷积结果乖f滤被器输出结桑示意图

通过比较图6

3 3

2中的两个波形,可以看出滤波器的实际输出结果在刚丌始时由于
53

6基于FPGA的128阶FIR数字滤波器设计实例

硕士论文

流水线及FPGA内部器件间的延时而造成一段时间上的滞后外,波形的形状同滤波器的 输入信号与滤波器的系数进行卷积计算得到的结果,即从理论上得到的结果基本一致, 因此该滤波器设计正确。

6.4基于分布式算法的FIR滤波器
6.4.1设计思路

按照第4.4节的滤波器的总体结构框图将该结构滤波器分成四个典型的模块。第一 个模块是移位寄存器,该模块的功能是通过移位寄存器把串行输入的采样数据转换为并 行的;第二个模块是优化模块,优化模块的主要功能是根据FIR滤波器Jjl仍)的对称性完

成输入求和缸妨郴1-助,从而实现对滤波器的降阶;第三个模块是乘法器模块,在该

结构中乘法器是采用查找表的方法来实现的,在本设计中采用第4.7.3节中的改进的全 并行的分布式算法进行乘法器的设计;第四个模块是加法器模块,完成多个操作数的相 加操作,该加法器采用第5.2节介绍的二叉树结构加法器来完成,最后一个二叉树加法 器的输出就是整个滤波器完成一次滤波输出的结果。通过在降阶操作的加法器、乘法器 以及二叉树结构的加法器之后添加流水线,可以大幅提高系统的时钟频率,假设输入数 据的字长为B,通过降阶处理后字长变为∞+1),再加上输出控制需要二个时钟周期,因

此完成一次滤波输出共需要(甜2)个时钟周期。
由于本结构的滤波器中的乘法器是利用查找表结构来实现的,在本设计中采用 FPGA‘中的逻辑单元中的查找表来实现分布式算法的查找表,而FPGA中的查找表通常 是4位宽的,为了充分利用硬件资源,本设计的查找表采用4输入结构,而降阶后的输 入数据共有64路,这样总共就需要建立16个查找表,查找表输入和输出数据通过一个 计数器进行控制,对于输入数据中的高位通过移位操作来实现乘法,移位操作完成后进 行累加,在完成乘累加后在计数器新一轮的计数开始时,也就是计数器计数的数值为0 时把数据输出,通过在降阶操作的加法器,查找表实现的乘法器以及二叉树结构的加法 器之后添加流水线,可以大幅提高系统的时钟频率,完成~饮滤波输出共需要(召+2)时 钟厨期。 6.4.2滤波器系统性能
图6.4.2.1为该滤波器使用Synplify Pro综合工具综合以后的RTL级视图。

硕士论文

基于FPGA的高阶FIR滤波器设计

’譬犁掣掣掣掣哗l掣l掣掣翟掣掣I掣掣掣一


宝玛 萝 _[刍一吕●I
b+
l■.一


—l。 L—u
——r—_1

L+一l

目;一I

b七
Lf—、

.J 一l
LU

b叫.一





b。E
—L.一

月I

h岫 。l
图6.4.2.1滤波器的RTL级视图

滤波器设计完成后,使用Quartus II自带的工具进行性能分析,当优化条件以兼顾 面积和速度为主要目标时,得到的结果如表6.4.2.1所示。
表6.4.2.1滤波器性能分析表

由表6.4.2.1可见该滤波器仅占用了3751个逻辑单元,2861个寄存器,0个DSP单 元块和31个引脚,最高系统时钟频率为95.35MHz。可见该结构的滤波器的硬件资源的

使用处于乘累加结构的滤波器和并行乘法器结构的滤波器之间,而且由于采用了流水线 结构,系统的工作时钟频率可以达到很高,处于并行乘法器结构的93.84MHz和乘累加 结构的101.08MHz之间,达到95.35MHz,由于该结构的滤波器完成一次滤波输出需要 ∞+2)个时钟周期,在本例中也就是10个时钟周期,因此系统的输入数据的采样频率为 93.84/10=9.384MHz,虽然比起并行乘法器结构的滤波器低了很多,但相比乘累加结构 的滤波器的采样频率却有了很大的提高。由此可见基于分布式算法的FIR滤波器适用于 那些对输入速率有一定限制,同时对硬件资源的要求也有限制的场合。
6.4.3仿真验证

由于仿真输出的结果的数据量非常大,限于篇幅,只能给出部分的仿真结果,图 6.4.3.1是该滤波器的部分仿真输出结果图。

55

阿6.4 3.1基丁分布式算洼结构的FIR滤波器部讣输山结果示意H

阁6.4



l中的cIk为时钟信号,山于系统的最高时钟频率为95 35MHz,凼此在本

例中一个时钟删蛸取为20ns:rst n为系统的复位信号,在低电平时有效,在系统[日lJ JI:

始时让它持续一段时删低电平,列系统进行复位,之后当rst n变为高电平时,系统Jr 式启动;册in为输入信号,由上面的说明可知,为保证信号_lF确、可靠地输出.m 信号周期至少需要是时钟信号J剞期的(B+2)倍,因此把输入信号的周期也设为100ns: fir_out为输出情号,由图6.4
3 in

1中fl‘j g,J序问隔可以看出,输出的周期也为lOOns。可以

看出从信号输入到完成滤波输出,共延州900ns,即9个输入信号叫钟周期。
图6.4


2为滤波器的输入信号与滤波器的系数的眷积结果幽和滤波器的{』J真输出

结果导入到MATLAB中的结果罔。

圈6.4



2卷积结粜自I滤波器输!U结果示意凹

硕十论文

基于FPGA的高阶FIR滤波器设计

通过比较图6.4.3.2中的两个波形,可以看出滤波器的实际输出结果在刚开始时由于 流水线及FPGA内部器件间的延时而造成一段时间上的滞后外,波形的形状同滤波器的 输入信号与滤波器的系数进行卷积计算得到的结果,即从理论上得到的结果基本一致,
因此该滤波器设计正确。


6.5本章总结
在前几章理论的基础上,本章探讨了使用三种结构实现同一性能指标的FIR数字低 通滤波器的方法,并举出实例,进行了仿真,对所得结果的分析可以得到这三种结构的 滤波器实现方案具有各自的优缺点,结论如下: 乘累加结构的FIR滤波器所占用的硬件资源最少,只需要一个乘累加器即可,完成 一次滤波需要(M2+1)(Ⅳ为滤波器阶数)个时钟周期。 全并行结构的FIR滤波器把乘法器展开,使用多个乘法器并行运算来代替乘累加结 构中的累加器,这样可以达到很高的处理速度,通过添加流水线可以在一个时钟周期内
完成一次滤波操作,不过该结构的FIR滤波器的硬件资源的消耗也很严重。


基于分布式算法的FIR滤波器使用查找表结构来实现乘法器,减小了硬件资源的消 耗,不过处理的速度也随之降低,对于一个输入数据字长为B位的系统,完成一次滤波
需要旧+2)个时钟周期。

综上所述,.同一个滤波器,由于选用的实现结构不同,所消耗的资源和所能达到的 速度完全不同,这就是在硬件上常说的面积(硬件资源)和速度平衡的原理,即可以用面 积来换速度(多消耗硬件资源,并行处理,可以提高处理速度,提高性能),也可以用速 度来换面积(即对速度要求不高的情况下,可以用串行处理,资源复用,降低成本),还 可以在面积和速度之间取得平衡。在实际应用中,究竟选用哪种方案要根据实际需求的
情况来判定。

57

7总结

硕上论文

7总结
数字信号处理的最主要应用领域就是数字滤波,数字滤波器与快速傅里叶变换(FFT) 被公认为数字信号处理的两大基石。在现代电子系统中,FIR数字滤波器以其良好的线 性特性被广泛使用,本论文就在FPGA器件上实现高阶FIR数字滤波器进行了研究,并
对其性能进行优化。 本论文主要完成的任务可总结如下:

1.学习FIR数字滤波器的原理、结构和设计方法,并使用MATLAB进行FIR滤波 器设计,并对结果进行仿真;


2.对需要使用的硬件资源进行估计,阅读硬件手册,选择合适的FPGA芯片; 3.采用自顶向下的数字系统设计方法,层次化,模块化的设计思想,将整个滤波 器划分成多个功能模块,利用Verilog HDL硬件描述语言进行各个模块的设计,最终完 成FIR数字滤波器的系统设计: 4.使用ModelSim软件对设计进行仿真,并用MATLAB软件对仿真结果进行分析。 对于本设计的分析总结如下: 1.在滤波器实现的过程中,对于基于并行乘法器结构的滤波器凭借乘法器乘数固 定的特性,在乘法器设计过程中通过采用系数分解、CSD编码和简化加法器树的方法大 大减少了硬件资源的使用;在基于分布式算法结构的滤波器设计中结合FPGA中基本的 查找表4输入的特性,通过建立4输入的查找表从而充分利用了硬件资源; 2.在算法实现的过程中,关键路径的延时包括利用FIR滤波器系数对称性进行相 加从而达到降阶的目的加法器、乘法器以及乘法器之后的基于二叉树结构的加法器,通 过在这些关键路径之后添加流水线寄存器,从而大大地提高了系统的运算速度;

3.理论上基于乘累加结构的FIR滤波器完成一次滤波输出需要州2(Ⅳ为滤波器阶
数)个时钟周期,但在本设计中将输入信号的时钟周期设为全局时钟的Ⅳ/2倍时输出结 果出现混叠,而将输入信号的时钟设计为全局时钟的(N/2+1)倍时,输出结果完全正确; 理论上基于分布式算法的FIR滤波器完成一次滤波输出需要(B+I)④为滤波器输入信 号的位数)个时钟周期,但在本设计中将输入信号的时钟周期设为全局时钟的佃+1)倍 时输出结果均出现混叠,而将输入信号的时钟设计为全局时钟的(B+2)倍时,输出结果
完全正确。

对于本设计的总结第3点中提到的那两种结构实现的FIR滤波器实际完成-次滤波 输出需要的时钟周期比理论要长一个的问题需要后续者的继续努力,最终完善。 作者深入进行了课题的研究并认真完成了本论文,由于水平有限,论文中可能出现 错误和不足之处,敬请批评指正。
58

碗I二论文

基于FPGA的高阶FIR滤波器设计





本论文是在我的导师钱建平教授的悉心指导下完成的。在这两年的学习过程中,钱

老师无论是在学习,还是在生活上都给了我许多无私的帮助和关怀,特别是在课题的研
究期间和论文的撰写过程中,钱老师更是倾注了大量的心血,才能使我顺利完成各项工

作。钱老师严谨的治学态度、一丝不苟的工作作风、孜孜不倦的学习精神给我留下了深
刻的印象,对于学习上的严格要求和教海,便我受益非浅,这些必将对我以后的生活、

工作和学习上产生深远的影响。在此,我向钱老师谨致以我最崇高的敬意和最诚挚的谢
意! 在学习期问,我还得到了各位师兄、师姐、师弟和师妹的大力帮助,在此也表示谢 意。 最后,我更要感谢的是我的父母及家人在这两年的时问里给我在物质和精神上的无 私奉献,他们的支持是我前进的动力。

参考文献

硕J二论文

参考文献
[1】邓重一.滤波技术的发展现状[J】.中国仪器仪表,2004,(2):1 ̄4 [2】王金明,张雄伟.FIR滤波器的设计与实现[J】.电视技术,2003,(3):19-21
[3】Uwe Meyer-Baese.数字信号处理的FPGA实现[M】.北京:清华大学出版社,2003

【4】赵雅兴.FPGA原理、设计与应用【M】.天津:天津大学出版社,1999 [5】徐志军,徐光辉.CPLD/FPGA的开发与应用[M】.北京:电子工业出版社,2002
[6]Altera.Altera Stratix Platform
FPGA Handbook.U.S.January 3 1,2002

【7】褚振勇,翁木云.FPGA设计及应用[M】.西安:西安电子科技大学出版社,2002
[8]EDA先锋工作室.Altera FPGA/CPLD设计(基础篇)【M】.北京:人民邮电出版社,2005

【9】杨晖,张凤言.大规模可编程逻辑器件与数字系统设计[M】.北京:北京航空航天大 学出版社,1999 【10】侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计【M】.西安:西安电子科技 大学出版社,1999 【11】常青,陈辉煌,孙广富等.可编程专用集成电路及其应用与设计实践[M】.北京:国 防工业出版社,1998
【1 2】张昌凡,龙永红,彭涛.可编程逻辑器件及VHDL设计技术【M】.广州:华南理工大 学出版社,2001

【13】刘明业等.数字系统自动设计[M】.北京:高等教育出版社,1996 【14】姜立东等.VHDL语畜程序设计及应用【M】.北京:北京邮电大学出版,2003 【l 5】周霖等。DSP算法设计与系统方案【M】.国防工业出版社,2004 【16】张辉,胡广书.DSP的特点、发展趋势与应用【J】,。电子产品世界2004(5):35-37 【l 7】陈后金等.数字信号处理【M】.北京:高等教育出版社,2004

【18】胡广书.数字信号处理——理论、算法与实现(第二版)【M】.北京:清华大学出版社,
2003

【19](美)奥本海姆等编著,刘树堂,黄建国译.离散时间信号处理【M】.西安:西安交通大


学出版社,2001

【20】靳希,杨尔滨,赵玲编著.信号处理原理及应用【M】.北京:清华大学出版社,2004 【21】余成波,杨如民,周登义编著.数字信号处理及MATLAB实现【M】.北京:清华大 学出版社,2005 【22】潘松.EDA实用技术【M】.北京:科学技术出版社,2001 【23】张志涌,徐彦琴等编著.MATLAB教程.基于6.X版本【M】.北京:北京航空航天大 学出版社.2001
【24】郭晓宇,潘登.基于FPGA实现FIR滤波器的研究[J】.电子技术应用,2004(4):61--63

硕士论文

基于FPGA的高阶FIR滤波器设计

[25】一种用FPGA实现的FIR滤波器结构[J】.微电子学,1999(29):58,-61
[26】Uwe Meyer-Baese.数字信号处理的FPGA实现(第二版式)【M】.北京:清华大学出版 社,2005


【27】蒋亚坚,张庆雷.分布式运算单元的原理及其实现方法【J】.电子技术应用,
2000(3):43,-46 [28】Michael 【29】Croisier
D.Ciletti.Verilog A,Esteban

HDL高级数字设计[M].北京:电子工业出版社,2004
Digital Filter for

O.j.,Levilion,and Riso V

PCM Encoded Signals[J].

U.S.Patent 3777 130,Dec,1973

[30】陈弘毅,白国强.VLSI数字信号处理系统设计与实现[M】.北京:机械工业出版社,
2004

【31】 熊承义,田金文,柳键.基于CSD编码的高速乘法器IP设计[J].计算机工程与应用, 2003(3):42,--46 [32] 李春江,吴桂生.FIR滤波器FPGA实现【J】.电子测量技术,2004(1 0):25-30 [33】 吴湘淇,肖熙等.信号系统与信号处理的软硬件实现[M】.北京:电子工业出版社,
2002

【34] (;b1])Simon Haykin,(ff兰.)Barry 京:电子工业出版社,2003 【3 5】Atmel

Van

Veen.Signals

and

Systems(Second Edition)[M].北

Corporation.FPGA-based

FIR

Filter

Using

Bit—Serial

Digital

Signal

Processing[Z].U.S.2005 [36]GR.Goslin.A guide Di#tal Signal
to Using Field

Programmable Gate Arrays for Applicaton—Specific

Processing

Performance[Z].www.xinlinx.com ofDi舀tal Filters[J].IEEE
Trans,On ASSP,

[37】A.Peled,B.Liu.A New

Hardware Realization

、厂01.22.December 2004:456—462
[3 8]K.K.Parhi.A

systematic

approach for

design

of digit-serial processing 2001:358-375 distributed

architectures[J].

IEEE Trans,Circuits and

System,V01.38,April
highperformance

[39】Allred,D.J.A

novd

arithmetic

adaptive

filter
2004,

implementation
V01.5:17-21

on

an FPGA[J].IEEE International Conference on,May

[40】Shousheng He,Mats
Bit—Serial


Torkelson.FPGA

Implementation

of FIR Filters Using Pipelined

Canonical Signed Di西t Multipliers[Z].IEEE

2004 Custom

Integrated

Circuits

Conference

[4 1】Altera.FIR Filters.A—FS-O 1一O 1[Z].www.altera.com [42]Huang Wj Krighnan V Allred D.Design analysis


of a distributed arithmetic adaptive FIR

filter

on

an FPGA[J].U.S.Signals,Ssytems&Computers,2003,V01.1:9~12
61

参考文献

硕上论文

[43]Gang

George

YIN,Qing ZHANG,Yuanjin LIU.Discrete-time Approximation
ofControl Theory and

of FIR

Filters[J].U.S.Journal

Applications,2004(2):1~10

[44]Living J.Mixed Arithmetic

Architecture:a Solution to the Iteration Bound for Resource

Efficient FPGA and CPLD Recursive Digital
on

Filters[J].IEEE

International Symposium

Circuits

and Systems,1 999:478-48 1
Torkelson.FPGA Signal

【45】Shousheng He,Mats
Bit—serial

Implementation

of FIR Filters Using Pipelined

Canonical

Di西t Multipliers[Z].IEEE

Custom Integrated Circuit

Conference,1 994 [46】Hanho Lee,Sobelman
DSP G E.Pefermance evaluation and option design of FPGA-based Electrical

Function[J].U.S.Computers and

Engineering;2003(29):357~377

硕士论文

基于FPGA的高阶FIR滤波器设计





攻读硕士学位期间发表的论文和出版著作情况:
朱好学,钱建平.基于FPGA的FIR滤波器的优化设计.现代电子技术(已录用)

63



推荐相关:

基于FPGA的FIR滤波器设计开题报告_图文

电子与信息工程系 2012 届本科毕业设计(论文) 开题报告 题目 基于 FPGA 的 FIR 滤波器设计 班姓 级名 电子 12-2 指导教师 一、综述随着信息时代和数字世界...


基于FPGA的FIR数字滤波器的设计

基于FPGA的FIR数字滤波器设计 - 基于 FPGA 的 FIR 数字滤波器设计 The Design Of FIR Digital Filter Based On FPGA 目 录 ...


基于FPGA的FIR滤波器设计与实现 精品

基于FPGA的FIR滤波器设计与实现 精品 - 目录 引言 ... 3 第一章 1.1 FPG...


基于FPGA的FIR滤波器设计

基于FPGA的FIR滤波器设计_信息与通信_工程科技_专业资料。由线性系统理论可知,在...特点:单位脉冲响应序列为有限个;可快速实现;可得到线性 相位;滤波器阶数较高。...


基于FPGA的FIR滤波器设计

利用 FPGA 实现 FIR 数字滤波器的设计,是本次课程 设计需要解决的问题,利用学...基于逻辑结构的加法器将数据相加,在单乘法器 滤波器的基础上,限制了最高时钟...


基于FPGA的FIR滤波器设计

龙源期刊网 http://www.qikan.com.cn 基于 FPGA 的 FIR 滤波器设计 作者:周剑敏 谢文雷 葛斌 陈虞苏 来源:《硅谷》2014 年第 03 期 摘要 介绍了基于 FPGA...


基于FPGA的FIR数字滤波器设计毕业设计

基于FPGA的FIR数字滤波器设计毕业设计 - 毕业论文,单片机论文,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,硕士论文,研究生论文


基于FPGA的FIR滤波器的设计(毕业设计) 可用

41 基于 FPGA 的 FIR 滤波器设计 基于 FPGA 的 FIR 滤波器设计 摘要: 本文设计了一个基于FPGA的16阶FIR低通滤波器, 使用分布式算法作为滤波器的硬件实现 ...


基于FPGA的FIR滤波器设计与分析

基于FPGA的FIR滤波器设计与分析 - 摘 要 随着科学技术的飞速发展,数字信号处理技术广泛的应用在各种领域中, 而数字滤波技术在数字信号处理中占有极其重要的地位。...


基于FPGA的FIR数字滤波器的设计_图文

基于FPGA的FIR数字滤波器设计 - 毕业设计(论文)任务书 毕业设计(论文)题目: 基于 FPGA 的 FIR 数字滤波器设计 设计(论文)的基本内容: 根据数字滤波器的...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com