一种多通道流水FIR滤波器的制作方法

文档序号:12553563阅读:554来源:国知局
一种多通道流水FIR滤波器的制作方法与工艺

本发明涉及滤波器技术领域,尤其涉及一种多通道流水FIR滤波器。



背景技术:

随着雷达、通信等领域对宽带系统的需求不断增加,宽带数字阵列处理技术被广泛应用。对于宽带数字阵列系统,为了补偿通道间频率响应的失配,需要在每个通道中串联一个数字FIR均衡滤波器,使得所有通道的频率响应一致。为保证系统实时性,数字FIR均衡滤波器通常通过FPGA或者专用ASIC实现。

传统N阶FIR时域常通过串联的N个乘加器实现流水计算,乘加器的主频与输入有效数据率保持一致。但由于数字阵列的实际数据率因系统而异,随着集成电路的飞速发展,FPGA尤其是ASIC的主频越来越高,典型的ASIC的工作主频可高达1GHz以上,实际输入数据率仅百M量级,典型的如200M。显然,对于工作在1GHz主频的乘加器,在处理200MHz输入数据时,会有80%的时间处于空闲状态,运算效率极低。因此,有必要基于分时复用原理,设计一种多通道流水FIR滤波器,实现多个通道FIR滤波的分时计算,从而充分发挥高工作主频的优势,提高运算效率。



技术实现要素:

本发明提供一种多通道流水FIR滤波器(MCP-FIR,Multi-Channel Pipeline FIR),并开发同时适用于FPGA和专用ASIC的MCP-FIR滤波器模块。目的是根据工作主频和实际输入数据率的关系,通过一组高主频乘加器的分时计算,完成多个通道的流水FIR滤波,通道数可动态配置。

一种多通道流水FIR滤波器,依次包括通道合并装置、零级滤波单元、若干个串联的通用滤波单元和通道拆分装置,M路输入数据经所述通道合并装置后合并为一路输出,M为大于或等于1的整数;所述零级滤波单元包括第一乘法器、零级系数存储单元、第一输入寄存器组、第一输出寄存器组和第一控制寄存器组,所述零级系数存储单元和输入寄存器组的输出信号作为所述乘法器的输入进行相乘,结果进入输出寄存器组;所述通用滤波单元包括第二乘法器、第一加法器、缓冲移位器、第二系数存储单元、乘法输出寄存器、加法输出寄存器组和第二控制寄存器组,所述零级滤波单元的一路输出信号进入所述缓冲移位器,经缓冲移位进入到所述第二乘法器,与所述第二系数存储单元的输出信号进行乘法运算,结果输出至乘法输出寄存器组,延迟后的信号与所述零级滤波单元的另一路输出信号经所述加法器进行相加,再输出到加法输出寄存器组;所述加法输出寄存器组和所述缓冲移位器的输出信号进入下一个通用滤波单元,依次级联;所述通道拆分装置,用于从串行的滤波信号中提取出并行的M路数据输出。

所述系数存储单元为寄存器文件或RAM,但不限于以上两种存储结构;

所述乘法器包括但不限于定点实数乘法器、定点复数乘法器、浮点实数乘法器、浮点复数乘法器的任意一种。

本发明产生了以下有益效果:

1、高工作主频低数据率应用条件下,采用一个FIR滤波器的乘加资源,分时完成了个多个输入通道的流水FIR滤波运算,运算效率高;

2、输入输出接口符合非阻塞的标准AXI4-Stream接口,支持输入数据中断传输;

3、通过1个零级滤波单元和级联的N-1个通用滤波单元实现了N阶FIR滤波计算,级联方式简单,阶数易于扩展;

4、通道数可以动态配置,适用于不同的应用场景,通用性强。

附图说明

图1为本发明多通道流水FIR滤波器结构框图;

图2为多通道流水FIR滤波器一实施例中零级滤波单元结构图;

图3为多通道流水FIR滤波器另一实施例中通用滤波单元结构图;

图4为又一实施例3通道16阶FIR滤波器的工作时序图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

首先将并行输入的M个通道数据分时合并成一路,然后采用1个零级滤波单元和级联的N-1个通用滤波单元对该路数据进行多通道的流水N阶FIR滤波运算,共消耗N个乘法器和N-1个加法器,最后将运算结果分时拆分成M个通道并行输出,结构框图如图1所示。其中,s_axi_data_i为第i路输入数据,m_axi_data_i为计算完成后的第i路输出数据,i=0,1,…M-1,输入输出接口均符合非阻塞的标准AXI4-Stream接口,通道数M可由输入接口s_M_value动态配置。

设第i路的N阶FIR滤波器的系数为hn(i,j),输入数据为D(i,k),输出结果为Q(i,k),则采用MCP-FIR完成M个通道的N阶FIR滤波后,可以得到:

其中,j=0,1,…,N-1,k=0,1,…,K+N-1,K为输入总点数。

MCP-FIR内部各模块的功能描述如下:

(1)通道合并

通道合并装置用于完成并串转换,即将并行输入的M个通道的数据分时合并成一路输出。设输入数据率为fin,工作主频fwork,其中工作主频满足:fwork≥M*fin。对每一路数据分别设置移位寄存器,第i路移位i个有效时钟周期(s_axi_valid有效时对应的时钟周期称之为有效时钟周期,下同,当s_axi_valid无效时不进行移位),然后从移位后的M路数据中轮询选择输出,使得在第k个有效时钟周期输出第k%M(%表示求余,下同)路数据,其中,i=0,1,…,M-1,k=0,1,…。

(2)零级滤波单元

零级滤波单元包括第一乘法器、零级系数存储单元、第一输入寄存器组、第一输出寄存器组和第一控制寄存器组。结构框图如图2所示。

系数存储单元包括有M个数据寄存器,分别存放对应M路输入数据的第1阶FIR系数,当第k个有效数据到达时选择对应第k%M路的FIR系数输出给乘法器,k=0,1,…。第一乘法器则完成数据和FIR系数的乘法运算。

寄存器组则通过不同的寄存器个数实现对输入数据不同级数的延迟,主要用于零级滤波单元和通用滤波单元级联时的有效数据对齐,保证两路输出满足通用滤波单元的时序要求。

(3)通用滤波单元

通用滤波单元包括第二乘法器、第一加法器、缓冲移位器、第二系数存储单元、乘法输出寄存器、加法输出寄存器组和第二控制寄存器组。结构框图如图3所示。

系数存储单元、乘法器和寄存器组的功能与零级滤波单元中的相同。

缓冲移位器主要用于实现中断传输功能,当工作主频和实际数据率不成整数倍关系、或者数据率下调使用时,通道合并后的数据均会出现无效情况,造成中断传输。缓冲移位器由输入的s_axi_valid_1控制进行缓冲移位,当s_axi_valid_1有效时,功能相当于M+1级的移位寄存器,当s_axi_valid_1无效,会锁存当前移位状态,并在下一个时钟周期立即输出当前的无效数据,直到s_axi_valid_1重新有效后继续移位。缓冲器的输出送给乘法器,同时作为m_axi_data_1输出到下一级。

加法器用于完成乘法器输出结果与前级输入s_axi_data_2的加法运算,加法结果作为当前级的m_axi_data_2输出。第N-1级通用滤波单元的加法器输出即为M个通道N阶FIR滤波后的运算结果。

(4)通道拆分

通道拆分装置用于完成串并转换,即从串行的M个通道FIR滤波结果中提取出并行的M路数据输出。先对输入数据分别进行M路移位,第i路移位M-i-1个有效时钟周期,在第k个时钟周期,当k%M=M-1时将M路移位后结果同时输出,其中,i=0,1,…,M-1,k=0,1,…。

采用以上结构的M个通道的N级FIR滤波通过以下步骤实现:

首先,配置当前通道数M,接着,M个通道数据通过标准非阻塞AXI接口输入,通道合并装置进行并串转换,将M个通道数据分时合并成一路输出;

其次,合并的数据依次进行零级滤波单元和级联的N-1级通用滤波单元,完成M通道的输入数据与对应通道FIR系数的乘加运算,得到FIR运算结果;

最后,通过通道拆分装置完成串行转换,按时间顺序分离出M个通道数据并行输出。

采用N个高主频的乘加器实现了低数据率下M个通道的N阶流水FIR计算,运算效率高;采用1个零级滤波单元和N-1个通用滤波单元级联的方式进行FIR计算,实现了全流水性能,且级联方式简单,阶数易扩展;缓冲移位机制,保证当输入数据在无效和有效之间跳变时,乘加器能正确识别和处理有效数据,实现了可中断传输的功能;通道数可动态配置,适用于不同应用场景,通用性强。

根据以上技术方案,在ASIC工作主频500MHz、输入单通道平均数据率160M、阶数16的应用需求下,设计了一款3通道16阶流水FIR滤波器,其中,零级滤波单元中第一输入寄存器组为1级,第一输出寄存器组和第一控制寄存器组为3级;通用滤波单元中乘法输出寄存器组为2级,加法输出寄存器组和第二控制寄存器组为1级,其工作时序示意图如图4所示。

为便于时序说明,不失一般性,设3个通道对应的FIR系数均为全1,输入数据中,1,4,7,…为第1个通道输入数据,2,5,8,…为第2个通道输入数据,3,6,9,…为第3个通道输入数据,①表示通道合并的输出,②表示零级滤波单元的输出,③和⑤分别表示第1级通用滤波单元2路输出,④表示第1级通用滤波单元内部加法器的输入,⑥和⑧分别表示第2级通用滤波单元2路输出,⑦表示第2级通用滤波单元内部加法器的输入。

可以看到,三个通道输入数据通过通道合并模块后,并行3路数据串行排列,分时输出,valid在第7个时钟周期无效,第10个时钟周期恢复有效。零级滤波单元完成乘法后输出,因第一输出寄存器组为3级,故②相对于①延迟了3个时钟周期,无效数据同样延迟了3个时钟周期。同时,①直接送给第1级通用滤波单元。

在零级滤波单元以及通用滤波单元中的乘法运算时,单元内部的系数存储单元会根据有效数据个数与3的余数依次取出对应路的FIR系数送给乘法器,确保三路输入数据正确使用了对应的FIR系数。

在第1级通用滤波单元中,先对①进行缓冲移位,当数据有效时,直接进行4级移位,当数据无效时,锁存当前移位状态,并在下一时钟周期优先输出无效数据,直到第10个时钟周期数据恢复有效,下一时钟周期继续启动移位操作。缓冲移位后的数据③同时送给内部乘法器和第2级通用滤波单元。乘法器输出经过2级延迟后得到④送给内部的加法器,加法器完成④和②的相加,并延迟1级后得到⑤送给第2级通用滤波单元。

第2级通用滤波单元内部的工作机制与第1级相同,对③进行缓冲移位输出为⑥,内部乘法器输出并延迟2级后为⑦,内部加法器将⑤和⑦相加并延迟1级后得到⑧,⑥和⑧继续送至第3级滤波单元。

依次类推,第15级滤波单元输出即为3路输入数据的16阶FIR滤波结果,再通过通道拆分模块完成串并转换,按时间顺序分离3路数据,得到所需要的3个通道的并行结果输出。

输入的s_axi_last信号表征当前输入的最后一个数据,该信号将根据每一级滤波单元内部的实际数据延迟值进行相应周期的移位,最终保证输出m_axi_last表征输出FIR运算的最后一个结果。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1