通过并行管线结构实现直接FIR滤波器的系统设计方案

电脑杂谈  发布时间:2020-06-07 10:25:53  来源:网络整理

天正软件-结构系统_并行处理系统结构_雨水处理方法/雨水集蓄利用系统/雨水收集装置结构

1. 并行管道FIR的原理

当使用FPGA或专用集成电路实现数字信号处理算法时,计算速度和芯片面积是相互制约的两个主要问题. 当实际应用FIR滤波器时,为了获得良好的滤波效果,滤波器的阶数可能会显着增加并行处理系统结构,有时可能多达数百个阶数. 因此,有必要在性能和实现复杂度之间进行选择,即选择不同的过滤器实现结构. 这里使用并行管线结构来实现速度和硬件面积之间的互换和折衷.

在关键路径中插入寄存器的流水线结构是一项功能强大的实现技术,可以提高系统吞吐量,并且不需要大量重复的硬件设置. 流水线主要有两种: 算术流水线和指令流水线. 对于FPGA设计,逻辑功能是针对特定应用的,因此,使用了需要较少额外控制逻辑的算术流水线结构. 流水线结构意味着将数字处理算法划分为多个时间连接的处理段. 并在各节之间添加一个信号寄存器以进行缓冲. 这些段和段之间的缓冲区构成管道. 系统的原始计算分为k个部分,由管道的k个段分别处理. 一旦前一个任务通过了管道的第一阶段,新任务就可以进入管道. 设置系统不将自来水添加为D时的延迟. 添加自来水后,可以每D / k时间单位启动新任务. 为了提高管道的性能,应满足三个条件:

①计算量被均匀地分成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中. 当实施过滤时,如图3所示移位数据是不现实的. 因此,通过使用交联网络和控制模块来获得第一级管线,以完成向下一级管线的数据传输的目的. 第二级流水线是两个并行乘法器,以完成乘法运算. 第三级管道是蓄能器;在控制逻辑的控制下,对乘法器的输出执行正确的累加运算.

顺序设计应在结构设计完成后进行. 数据写入模块的时钟根据数据源产生数据的速率确定. 流水线的工作时钟频率要求大于数据生成时钟频率的N / 2倍,N是滤波器阶数,2是并行度. 也就是说,要求流水线在一个数据生成周期内完成FIR滤波器输出的计算. 控制逻辑是管道正常运行的关键. 它必须产生对数据管线的各种时序要求,包括读取数据地址,读取系数的地址,交联网络的控制以及管线结构的输出. 其VHDL的端口说明如下:

天正软件-结构系统_雨水处理方法/雨水集蓄利用系统/雨水收集装置结构_并行处理系统结构

通过并行流水线结构实现直接型FIR滤波器的系统设计方案

系数地址由计数器生成. 计数器周期是滤波器的阶数除以并行度. 它由first_data_address的第0位的边沿触发,从0开始重新开始计数. 数据RAM的地址加上计数器的值. 由于输入的已过滤数据的当前存储位置,两个RAM地址可以相同或相差1. 交联网络的控制信号是计数器的最低位. 累加器输出的使能信号在对滤波器的阶数进行计数时生成,然后在延迟后发送到累加器. 累加器清除信号的生成比累加器中的其他方法方便得多.

交叉链接网络也是设计的重点. 对于并行处理结构,单元之间数据的共享和通信是限制并行度的主要原因. 在具有2的并行度的结构中,足以依次交换系数. 但是,对于更高的并行度,此通信网络的延迟非常大,这是将其单独列出为过滤器管道的第一阶段的主要原因.

还应注意,带符号的数字通常用补码表示. 扩展有符号数时,最高有效位将被扩展. 通常会扩展乘法器的输出,以避免累加器溢出.

对于乘法加法运算,存在一种分布式计算方法,该方法将乘法进一步分解为部分和(二进制系数每个位与输入数据之和的结果). 当乘法加法运算的乘数是一个已知常数时,分布式乘法加法运算将节省资源. 因为系数是固定的,所以在运算之前就知道AND运算的结果,因此零位的结果和数据不涉及加法运算,从而实现了没有乘法器的滤波器. 这里不使用此方法有两个原因. 首先,分布式操作将使重新配置过滤器变得困难. 其次,基于FPGA的硬件乘法器的性能要优于集成乘法器.

3. 仿真和测试

天正软件-结构系统_并行处理系统结构_雨水处理方法/雨水集蓄利用系统/雨水收集装置结构

用VHDL语言描述所有电路模块后,输入系数1、2、3、4、5和数据-1,-2、3、4等进行测试. 使用Mod-elsim进行仿真,结果如图3所示.

通过并行流水线结构实现直接型FIR滤波器的系统设计方案

可以看出该模块可以正确执行计算,并且从数据输入到数据输出的延迟约为2个数据时钟. 这主要是先前数据输入模块的延迟. 乘加部分使用N / 2倍的数据时钟,并且其延迟与滤波器的阶数成正比,但不会超过一个数据时钟周期.

然后,对VHDL描述进行了合成,并在Xilinx的Spartan-3上进行了测试. 可以得到表1所示的测试结果,其中第一行是使用并行管线结构设计的滤波器,第二行是使用Xilinx提供的软核设计的滤波器.

通过并行流水线结构实现直接型FIR滤波器的系统设计方案

可以看出,除了增加一个乘法器外,逻辑块和触发器还增加了一倍以上. 用这种结构设计的滤波器的面积增加了一倍,速度性能也增加了一倍. 上述两个滤波器可用于语音信号处理中,即让语音信号通过低通滤波器以获得语音的低频分量. 相对而言,并行流水线结构可以实现比Xilinx软核更高的滤波器. 在听觉方面,通过两个滤波器(相同顺序)后的语音信号之间没有太大差异.

4. 结论

本文在操作级别基于流水线和并行操作结构实现了直接FIR滤波器. 如果在设计滤波器时将级联型和直接型两个滤波器结构结合在一起,则也可以实现相同的并行和流水线效果. 实际上,也可以在较低级别的乘法运算中对部分和使用并行和流水线结构. 这些结构的选择是根据性能要求和实现的复杂性专门确定的.

作为实现现代高性能处理器的一种方法,并行和流水线结构具有自己的特点. 并行性基于速度区域. 流动的水延迟地改变速度. 通过这两种结构,您可以灵活地在面积,速度和延迟之间进行交换.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-237074-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 秦星日
        秦星日

        他进入12海里以內了

      • 蒋元龙
        蒋元龙

        家里就0利息了

      • 张艳丽
        张艳丽

        也许美帝就是来溜一圈立马就滚出12海里

      热点图片
      拼命载入中...