当前位置:首页 > EDA > 电子设计自动化
[导读]摘要 采用改进并行分布式算法设计了一种16抽头FIR数字低通滤波器,首先用Matlab工具箱中的FDATool设计滤波器系数,然后使用硬件描述语言Verilog HDL和原理图,实现了子模块和系统模块设计,在Matlab与QuartusII中对

摘要 采用改进并行分布式算法设计了一种16抽头FIR数字低通滤波器,首先用Matlab工具箱中的FDATool设计滤波器系数,然后使用硬件描述语言Verilog HDL和原理图,实现了子模块和系统模块设计,在Matlab与QuartusII中对系统模块进行联合仿真。仿真结果表明,设计系统性能稳定,滤波效果良好,且实用性较强。

数字滤波器分为有限冲激响应(FIR)和无限冲激响应(IIR)两种。其中,FIR数字滤波器在实现任意幅频特性的同时能够保证严格的线性相位特性。由于其单位冲激响应是有限的,没有输出到输入的反馈,因此系统是稳定系统。FIR数字滤波器在通信、图像处理、模式识别等领域有着广泛应用。

在实时性要求较高的应用场合,相比于DSP芯片或专用芯片,采用可编程芯片FPGA实现FIR数字滤波器具有高速、高精度、高灵活性的优点。数字滤波器的设计方法有多种,常用的有窗函数法、频率抽样法和最佳一致逼近法,但这些设计方法在设计滤波器尤其是高阶滤波器时工作量较大。而利用Matlab信号处理工具箱进行数字滤波器的设计,能够减少工作量,提高设计效率。文中首先使用Matlab设计滤波器系数,然后利用FPGA实现系统。

在FPGA中,进行传统乘法运算占用大量的硬件资源,分布式算法利用ROM查找表将固定系数的乘累加运算转换成查表操作,避免了乘法运算,查表后的数据执行的都是简单的加法运算,可以较大程度地提高运算速度。分布式算法分为全串行分布式算法和全并行分布式算法,全串行分布式算法资源消耗少但运算速度慢,全并行分布式算法资源消耗少但运算速度快。兼顾运算速度与资源消耗,本文采用改进并行分布式算法进行FIR数字滤波器设计

1 FIR数字滤波器基本理论

对于FIR数字滤波器系统,其冲激响应是有限长的,系统函数可记为

式中,x(n)是采样输入序列;h(i)是滤波器系数;N是滤波器抽头数;y(n)是滤波器输出序列。

2 分布式算法

分布式算法(Distributed Arithmetic,DA)是一项重要的FPGA技术,广泛地应用在卷积、相关、DFF计算和RNS反演映射等乘积和中。有关DA算法的讨论可以追溯到1973年Croisier发表的论文,而DA算法的推广工作则由Peled和Liu完成。虽然DA算法较早被提出,但是一直到可编程门阵列的查找表结构出现,这种算法才重新受到重视,成为一种重要的FIR数字滤波器设计方法。

DA算法是一种以实现乘加运算为目的的运算方法,其与传统实现乘加运算算法的不同之处在于执行部分积运算的先后顺序不同。DA算法在完成乘加功能时是通过将各输入数据每一位产生的部分积预先进行相加形成相应部分积,然后再对相应部分积进行加权累加形成最终结果;而传统算法是等到所有乘积产生之后再进行相加来完成乘加运算。与传统算法相比,DA算法可以大幅减少硬件电路规模,易实现流水线处理,提高了电路的执行速度。DA算法原理如下。

对于有符号系统,采用补码实现,输入序列x(n)表示为

式中,y(n)是输出序列;x(n)是输入序列;h(i)是滤波器系数;B是x(n)二进制补码的位数;xb(n)是x(n)的第6位,N是滤波器抽头数。

本文采用改进并行DA算法进行FIR数字滤波器设计,通过引入倍频模块减少LUT的个数来节省资源消耗,同时保证运算速度。该算法仅使用一个LUT并结合流水线寄存器的使用来提高系统运算速度。算法原理是让输入数据每一个相同位同时寻址,将寻址内容进行相应的移位累加操作得到最终输出,算法如图1所示。

3 滤波器系数设计与量化

文中滤波器系数通过Matlab工具箱中的FDATool进行设计,滤波器设计指标如下。滤波器类型:低通;设计方法:FIR Kaiser窗,Beta= 0.5;阶数:15阶;采样频率:10 MHz;截止频率:1.5 MHz;输入数据宽度:12位;滤波器系数宽度:12位。

由于FPGA只能进行定点数运算,需要将浮点滤波器系数量化为定点数。将h(n)扩大210倍,然后表示为12位二进制补码。滤波器系数与量化补码如表1所示。

4 FPGA实现

用FPGA设计FIR数字滤波器时,利用滤波器系数的对称性,将16抽头设计转化为8抽头设计。首先将输入数据存入移位寄存器中,通过延时进行预相加,然后以预相加结果数据的相同位的值为地址进行查表操作。根据分布式算法公式,依次进行移位累加操作,但对数据最高位进行移位相减操作才能得到正确的滤波输出。整个系统由时钟控制模块,数据输入模块,查找表模块,移位累加模块以及截位模块组成。

4.1 时钟控制模块

采用的FPGA芯片是Altera公司的CycloneII系列EP2C5T144C6,其时钟晶振是50 MHz。为提高系统运算速度,由于输入数据是12位,数据输入模块一次输出8位地址,因此需要设计一个采样信号12倍频模块,即得到120 MHz信号。时钟控制模块主要包括采样信号12倍频模块和采样信号模块。其中,采样信号倍频模块利用QuartusII中PLL实现,采样信号模块利用倍频模块通过硬件描述语言Verilog HDL编程分频实现。

4.2 数据输入模块

该模块的功能是将输入数据转化为8位查找表的地址,包括移位寄存、预相加和并串转换。首先将数据存入移位寄存器中,通过延时进行预相加,最后对预相加结果进行并串转换。

4.3 查找表模块

查找表模块可以利用QuartusII中的lpm_rom实现,但需要手工计算每个地址对应的数据输出,由于输入8位地址数据,使用lpm_rom实现查找表的计算量过大,所以该模块通过硬件描述语言Verilog HDL编程实现。模块还可继续拆分为4输入或2输入查找表。

4.4 移位累加模块

系统核心模块,主要对查找表模块输出数据进行移位累加操作,由于输入12位数据,因此要进行12次移位操作,前11次移位进行加法操作,第12次移位进行减法操作。为使累加结果不溢出,要进行冗余设计。

若输入数据与滤波器系数均为B位,对于有符号系统,移位累加器长度M=2B+log2N-1,其中N为滤波器抽头数。该移位累加模块输出数据宽度为27位。

4.5 截位模块

移位累加模块输出27位数据,由于其对应的10进制数值较大,不便于分析,因此对移位累加模块的输出数据进行截位。截位模块的功能是通过移位截取27位输入数据的高15位。

5 Matlab与QuartusII联合仿真

FIR数字滤波器输入与输出均是数字信号,通过Matlab编程模拟A/D转换得到滤波器输入数据,然后将输入数据送到滤波器输入端口并进行仿真得到输出波形,最后再通过Matlab编程模拟D/A转换将输出数字信号以模拟信号波形形式展现。具体步骤如下:首先利用Matlab编写得到*.mif文件的M程序,输入0.5 MHz和2.5 MHz正弦相加信号,幅度均为15。然后用QuartusII中lpm_rom模块得到滤波器输入数据,再用QuartusII对系统模块进行仿真,将仿真波形*.vwf文件另存为*.tbl文件,系统模块仿真波形如图3所示,最后用Matlab读取该文件中的数据,得到采样信号时域波形与频谱。

6 结束语

采用改进并行DA算法设计了一个16抽头FIR数字低通滤波器,与全并行DA算法相比,减少了LUT的个数,同时引入倍频模块兼顾了运算速度。仿真结果表明,设计系统性能稳定、滤波效果良好、实用性较强。同时,利用改进并行DA算法设计的FIR数字低通滤波器,其系统速度得到大幅提高,由于省去乘法器的使用,减少了LUT的个数,逻辑单元的消耗量也大幅降低。该模块可以作为其他设计的子模块,也可用于设计更高阶数的滤波器。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

Pmod接口可以说是数字电路板的连接革命。随着科技的飞速发展,数字电路板间的通信与连接技术也在不断创新和进步。Pmod接口,作为一种新兴的数字接口标准,正逐渐成为数字电路板间通信的桥梁,为电子设备的连接和通信带来了革命性...

关键字: pmod接口 FPGA 数字电路板

近日举办的GTC大会把人工智能/机器学习(AI/ML)领域中的算力比拼又带到了一个新的高度,这不只是说明了通用图形处理器(GPGPU)时代的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU...

关键字: FPGA AI 图形处理器

当我们提到成本优化型FPGA,往往与简化逻辑资源、有限I/O和较低制造工艺联系在一起。诚然,在成本受限的系统设计中,对于价格、功耗和尺寸的要求更为敏感;但随着一系列创新应用的发展、随着边缘AI的深化,成本优化型FPGA也...

关键字: AMD FPGA Spartan 边缘计算

全球领先的高性能现场可编程门阵列(FPGA)和嵌入式FPGA(eFPGA)半导体知识产权(IP)提供商Achronix Semiconductor公司宣布,该公司参加了由私募股权和风险投资公司Baird Capital举...

关键字: FPGA 智能汽车 eFPGA

全新 FPGA 能为嵌入式视觉、医疗、工业互联、机器人与视频应用提供高数量 I/O、功率效率以及卓越的安全功能

关键字: FPGA 嵌入式视觉 机器人

Altera致力于为客户提供端到端的FPGA、易于使用的AI、软件和弹性供应链。

关键字: FPGA AI

在半导体领域,大部分对于AI的关注都集中在GPU或专用AI加速器芯片(如NPU和TPU)上。但事实证明,有相当多的组件可以直接影响甚至运行AI工作负载。FPGA就是其中之一。

关键字: FPGA AI 半导体

半导体产品老化是一个自然现象,在电子应用中,基于环境、自然等因素,半导体在经过一段时间连续工作之后,其功能会逐渐丧失,这被称为功能失效。半导体功能失效主要包括:腐蚀、载流子注入、电迁移等。其中,电迁移引发的失效机理最为突...

关键字: 半导体 电迁移 FPGA
关闭
关闭