您的位置 首页 系统

经过并行流水线结构完成直接型FIR滤波器的体系设计方案

通过并行流水线结构实现直接型FIR滤波器的系统设计方案-在用FPGA或专用集成电路实现数字信号处理算法时,计算速度和芯片面积是两个相互制约的主要问题。实际应用FIR滤波器时,要获得良好的滤波效果,滤波器的阶数可能会显著增加,有时可能会多达几百阶。因此,有必要在性能和实现复杂性之间做出选择,也就是选择不同的滤波器实现结构。这里运用并行流水线结构来实现速度和硬件面积之间的互换和折衷。

1 、并行流水结构FIR的原理

在用FPGA或专用集成电路完结数字信号处理算法时,核算速度和芯片面积是两个彼此约束的首要问题。实践使用FIR滤波器时,要取得杰出的滤波作用,滤波器的阶数或许会明显添加,有时或许会多达几百阶。因而,有必要在功用和完结复杂性之间做出挑选,也便是挑选不同的滤波器完结结构。这儿运用并行流水线结构来完结速度和硬件面积之间的交流和折衷。

在要害途径刺进寄存器的流水线结构是进步体系吞吐率的一项强壮的完结技能,而且不需求很多重复设置硬件。流水线的类型首要分为两种:算术流水线和指令流水线。对FPGA规划,逻辑功用是面向特定使用的,因而,选用需求较少额定操控逻辑的算术流水结构。 流水线结构就意味着将数字处理算法分割成时刻上前后相连的多个处理片段.而且在段与段之间加信号寄存器来缓冲。这些段和段之间的缓冲就构成了流水线。体系本来的运算量被分割成k个部分,别离由流水线的k个段来外理。一旦前面的使命通过了流水线的榜首段,新的使命就能够进入流水线。设体系不加流水时的延时是D,则加上流水后,每隔D/k个时刻单位就能够发动新的使命。要完结流水线的功用进步应满意3个条件:

①运算量均匀分红延时共同的k个部分;

②输人数据有很多重复的运算;

③重复的运算前后没有相关性。

并行结构便是以重复相同的结构,对一起满意并行运算条件的并行算法在硬件上进行完结的结构。并行结构运用起来的首要难点如下:一,并行结构占用更多的面积。二,彼此并行的各核算部分在彼此交流数据时,需求额定的操控和互联结构。可是,在芯片工艺尺度不断减小的今日,并行结构成为规划高速、低延时数据处理体系的首选。操控和互联结构的复杂性取决于算法和对算法的区分办法。FIR滤波器自身就合适并行处理,可是关于占用时刻和芯片面积都很大的乘法器来说,用全并行来完结FIR滤波器是不经济的。

FIR滤波器以其规划简略、稳定性好、便利完结、线性相位等长处往往成为首选,乃至是仅有的挑选。FIR滤波器用差分方程表明为:

FIR滤波器直接型结构如图1。

通过并行流水线结构完结直接型FIR滤波器的体系规划方案

2 、完结办法

现场可编程门阵列(FPGA)具有体系结构和逻辑单元装备灵敏、集成度高以及规划开发周期短等长处,因而,选用FPGA来验证并完结本滤波器结构。VHDL是一种硬件描绘言语,首要用于描绘数字体系的结构、行为、功用和接口,与FPGA相结合后,表现出愈加强壮与灵敏的数字体系规划才能。用VHDL完结数字体系的功用描绘,用FPGA来完结是一种有用便利的软、硬件结合办法。从硬件描绘言语到FPGA装备数据文件是由归纳东西以及布局、布线东西来完结的。数字体系的功用终究能否完结以及功用怎么,取决于数字体系的算法结构,也取决于归纳东西、布局和布线东西,还有器材功用。可是,假如数字体系的算法规划欠好,就会有更多的规划重复。这儿对FIR滤波器提出一种处理时刻和所用芯片面积能够交流的结构,在开端的设计时,就能对其处理才能有所估量,减少了规划的重复。

关于FIR滤波器,Xilinx供给了两个软核,一个是根据分布式运算的,另一个是根据单路的乘加运算。关于大阶数、高采样率的滤波器,这两种滤波器结构都不太合适。

为了进步FIR滤波器的吞吐量,可用并行加流水线的结构来完结FIR滤波器,如图2所示。流水结构用于进步吞吐量率,并行结构能够减小处理延时。使用流水和并行结构调整滤波器功用使其满意实践使用要求。这儿完结三级流水和二路并行的FIR滤波器。三级流水别离对应取数、乘法和累加。首要由双口RAM、乘法器、累加器、操控逻辑和流水线间的寄存器组成,还有数据写入模块(图中未画)。

通过并行流水线结构完结直接型FIR滤波器的体系规划方案

用两块RAM别离寄存FIR系数和数据的前N个样值点,这两个RAM要求有一个写数据和一个读数据的双端口RAM。数据写入模块担任把所要滤波的数据轮换地写入两个双口RAM;FIR的系数也按偶数下标和奇数下标别离写入两个系数RAM,完结时是预先装备的。在完结滤波时,如图1所示对数据移位是不现实的。因而,用交联网络结合操控模块完结榜首级流水–取数,完结给下一级流水线正确送数的意图。第二级流水是两个并行的乘法器,完结乘法运算。第三级流水是一个累加器;在操控逻辑的操控下,对乘法器输出成果进行正确的累加运算。

完结结构规划后要进行时序规划。数据写入模块的时钟是根据数据源发生数据的速率而定的。而流水线的作业时钟频率要求大于数据发生时钟频率的N/2倍,N是滤滤器阶数,2是并行度。也便是要求流水线在数据发生的一个周期内能完结一次FIR滤波器输出的核算。其间的操控逻辑是流水线正常运转的要害。数据流水线上的各种时序要求都要由其发生,包含读数据地址、读系数的地址、交联网络的操控和流水线结构的输出。其VHDL的端口描绘如下:

通过并行流水线结构完结直接型FIR滤波器的体系规划方案

系数地址由计数器发生,计数器周期是滤波器的阶数除以并行度,由first_data_address的第0位的边缘触发,以从头从0开端计数。数据RAM的地址加上计数器的值。两个RAM地址因当时输入滤波数据的寄存方位,或许相同也或许相差1。交联网络的操控信号是计数器的最低位。累加器输出的使能信号是在计数到滤波器的阶数时发生的,然后通过延时给到累加器。累加器清零信号在这儿发生要比累加器顶用其他办法便利得多。

交联网络也是规划的要点。关于并行处理结构,各单元之间数据的同享和通讯是约束并行度的首要原因。在并行度为2的结构中,只需轮番交流系数就能够了。可是对更高的并行度,这一通讯网络的延时是相当大的,这也是把它独自列为滤波器的流水线的一级的首要原因。

还要留意的是:有符号数常用补码表明。在对有符号数进行扩展时,要扩展最高位。对乘法器的输出一般要进行扩展,以防止累加器溢出。

关于乘加运算,有一种分布式核算办法,也便是把乘法进一步分解为部分和(二进制系数的每一位和输入数据相与的成果)。当乘加运算的一个乘数是已知常数时,分布式乘加运算会很节约资源。由于系数固定,与运算的成果是在运算前可知的,这样零位与数据相与的成果是不参加加运算的,然后完结无乘法器的滤波器。这儿不选用这种办法,原因有二:其一,分布式运算将使滤波器难以重配:其二,根据FPGA的硬件乘法器较归纳得来的乘法器功用更佳。

3、 仿真及测验

用VHDL言语描绘悉数电路模块后,输入系数1、2、3、4、5和数据-l、-2、3、4等进行测验.用Mod-elsim进行仿真,其成果如图3所示。

通过并行流水线结构完结直接型FIR滤波器的体系规划方案

能够看出,模块能正确进行核算,从数据输入到数据输出约延时2个数据时钟.这首要是前面的数据输入模块的延时。乘加部分选用数据时钟的N/2倍,其延时与滤波器的阶数成份额,但不会超越一个数据时钟周期。

然后,对VHDL描绘就Xilinx的Spartan-3进行归纳和测验。能够得出表1所示的测验成果,其间榜首行为并行流水结构所规划的滤波器,第二行是选用Xilinx供给的软核规划的滤波器。

通过并行流水线结构完结直接型FIR滤波器的体系规划方案

能够看出,除了添加一个乘法器外,逻辑块和触发器都添加了一倍多。用这种结构规划的滤波器面积添加了一倍,速度功用也进步了一倍。以上两种滤波器能够使用在语音信号处理中–让语音信号通过低通滤波器以获取语音的低频重量。相对而言,并行流水结构能完结比Xilinx软核更高阶数的滤波器。在听觉上,通过两种滤波器(相同阶数)的语音信号没有太大不同。

4、 结束语

本文在运算层次上,根据流水和并行运算结构完结直接型FIR滤波器。假如在规划滤波器时,结合级联型和直接型两种滤波器结构,那么也能完结相同的并行和流水的作用。实践上,还可在更低层次的乘法运算时,对部分和也用并行和流水结构来完结。这些结构的挑选都根据功用要求和完结的复杂性来详细确认。

作为完结现代高功用处理器的办法,并行和流水结构各有特点。并行是以面积换速度。流水是以延时换速度,选用这两种结构,就能在面积、速度、延时之间灵敏交流。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/107662.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部