CN103716011B - 有限冲击响应csd滤波器 - Google Patents
有限冲击响应csd滤波器 Download PDFInfo
- Publication number
- CN103716011B CN103716011B CN201410014200.2A CN201410014200A CN103716011B CN 103716011 B CN103716011 B CN 103716011B CN 201410014200 A CN201410014200 A CN 201410014200A CN 103716011 B CN103716011 B CN 103716011B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- outfan
- input
- mux
- csd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供了一种有限冲击响应CSD滤波器。该有限冲击响应CSD滤波器基于新提出的CSD系数分组方法,对高阶的FIR滤波器能够做到小的面积开销,低的功耗,高的性能,而且阶数越高,优势越大。此外,针对不同类型,不同阶数的滤波器,只需要改变本发明有限冲击响应CSD滤波器架构中处理单元内部的编程方式就可以实现系统的可重构。
Description
技术领域
本发明涉及数字滤波器技术领域,尤其涉及一种有限冲击响应CSD滤波器。
背景技术
有限冲击响应CSD滤波器因其固有的线性相位特性和系统稳定性在数字信号处理系统和通讯系统中得到了广泛的应用。神经信号处理、传感器滤波、视频音频处理、信道等化以及匹配滤波都是FIR的经典应用。随着软件无线电(SoftwareDefinedRadio,SDR)技术的发展,以及对FIR滤波器高性能低开销和故障容忍(fault-tolerant)要求的提升,FIR滤波器实现系统的可重构成为了一种必要的解决方案。
系数的乘法是可重构FIR滤波器的技术瓶颈,通常为了降低计算的复杂度,将系数的乘法分解为加、减和移位操作。业界一直致力于减少硬件开销、降低功耗以及提升速度的研究。通常情况,FIR滤波器的阶数越高,性能越好,但是,随着滤波器阶数的增加,系统所消耗的资源也将增加,而且功耗也将增加。
总结现有的研究方法,按照是否使用标准化有符号位的方法(CanonicalSignedDigit,CSD),可以将其分成两大类,第一类是基于CSD的方法,第二类是未采用CSD的方法。
例如,K.-H.Chen和T.-D.Chiueh在文章“Alow-powerdigit-basedreconfigurableFIRfilter,”CircuitsandSystemsII:ExpressBriefs,IEEETransactionson,vol.53,no.8,pp.617-621,2006中给出了一种基于CSD的结构。用CSD编码表示的系数可以减少部分积的数目,在硬件开销方面能够较大地减小硅片面积开销和功耗。但这种结构采用的是直接型的结构(DirectForm,DF),系统的响应时间随着阶数的增加而增加,性能也相应的会下降。Mahesh,R和Vinod,APrasad在“Anewcommonsubexpressioneliminationalgorithmforrealizinglow-complexityhigherorderdigitalfilters,”Computer-AidedDesignofIntegratedCircuitsandSystems,IEEETransactionson,vol.27,no.2,pp.217-229,2008中提出了二进制共有子表达式剔除法(BinaryCommonSubexpressionElimination,BCSE),这种方法没有采用CSD编码,而是对二进制表示的系数子表达式进行了统计,得到了共有的子表达式,然后又通过对这些共有的子表达式进行“加”和“移位”操作完成整个系数的乘法。基于这种方法,Mahesh,R和Vinod,APrasad又在文章“NewreconfigurablearchitecturesforimplementingFIRfilterswithlowcomplexity,”Computer-AidedDesignofIntegratedCircuitsandSystems,IEEETransactionson,vol.29,no.2,pp.275-288,2010中提出了移位操作固定法(ConstantShiftsMethod,CSM)和移位操作可编程法(ProgrammableShiftsMethods,PSM),这两种方法主要的不同之处是移位的数目是否是固定的,而且这两种方法在滤波器系数的表示方面都是基于二进制表示法。这篇文章中还提出了另外两种结构,CSD-CSM和CSD-PSM,这两种结构属于第一类方法,参考该文章的实验结果,CSM相对于CSD-CSM资源消耗减少22.8%,PSM相对于CSD-PSM资源消耗减少12.2%。
近来,K.Sadeghipour和A.Abbaszadeh在文章“EfficientrealizationofreconfigurableFIRfilterusingthenewcoefficientrepresentation,”IEICEElectronicsExpress,vol.8,no.12,pp.902-907,2011中也给出了一种新的结构。请参考图1,首先这种结构没有采用CSD表示,而且是一种转置型(TransposedDirectForm,TDF)的结构。输入信号x[n]经过预处理器1的处理之后产生了运算需要的部分积,这些部分积输出到所有的处理单元10、11、12、13,经过处理单元的计算得到了相应的系数乘积,然后在按照FIR的结构通过14、15、16、17、18、19等元件将其连接,最后输出y[n]为x[n]经过滤波之后的信号。
其中每个处理单元的结构是相同的,图中的处理单元10细化了处理单元的结构。因为设计中涉及到的数据位宽为16-bit,处理单元10需要的多路选择器101a~101e为4选1,多路选择器101f为2选1。多路选择器在多路选择器控制信号模块105的控制下选择得到所需的部分积,这些部分积通过特定的移位操作(图中表示为<<),在加减法器103a~103e中完成相应的加减法操作之后输出。为了处理系数全为0的情况,多路选择器的输出经过一级与门102a~102f的控制,这一级的控制信号也是由105输出。
处理单元的控制信号是由滤波器系数经过二进制有符号位子系数(BinarySignedSubcoefficient,BSS)译码器106译码产生,一部分用于控制多路选择器101a~101f和与门102a~102f,另一部分用于控制加减法器103a~103c的加减法操作。
然而,在实现本发明的过程中,申请人发现现有的有限冲击响应CSD滤波器在处理单元的设计方面没有充分考虑滤波器系数的实际分布情况,使得处理单元中可能会有多条计算通路处于不参与计算的状态,对于高阶的滤波器设计会造成过多的资源和功耗浪费。同时,设计中没有给出预处理器的详细设计,影响到系统关键路径的评价。
发明内容
(一)要解决的技术问题
鉴于上述技术问题,本发明提供了一种有限冲击响应CSD滤波器,以解决现有的有限冲击响应CSD滤波器过度消耗资源和能耗的问题。
(二)技术方案
本发明有限冲击响应CSD滤波器包括:预处理器和级联的K级处理单元,K大于或等于该有限冲击响应CSD滤波器的阶数n。其中,预处理器具有一个输入端,三个输出端,用于利用接收的待滤波信号,利用该待滤波信号计算系数乘法所需要的三个部分积:[1]、[10-1]和[101],并将该三个部分积分别从其三个输出端输出。对于第1级处理单元PE0,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端与下一级处理单元PE1的输出端相连,其输出端为滤波后信号的输出端。对于第i级处理单元PEi-1,其中,1<i<K,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端与第i+1级处理单元PEi的输出端相连接。对于第K级处理单元PEK-1,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端输入信号0,其输出信号端口输出到第K-1级处理单元PEK-2。其中,该K级处理单元中的每一处理单元,用于利用自身存储的与系数相关的控制位信息,对输入的部分积进行加减移位操作,得到完成系数乘法的一中间结果;若干个中间结果经过级联信号的级联求和或求差,由第1级处理单元PE0的输出端输出滤波结果。
(三)有益效果
从上述技术方案可以看出,本发明有限冲击响应CSD滤波器具有以下有益效果:
(1)基于新提出的CSD系数分组方法,本发明有限冲击响应CSD滤波器对高阶的FIR滤波器能够做到小的面积开销,低的功耗,高的性能,而且阶数越高,本发明带来的优势越大;
(2)针对不同类型的FIR滤波器(高通、低通、带通、带阻)或者是同一类型的不同阶数的滤波器都能够做到不改变电路模块,只对其控制位进行重新的编程就可以实现可重构;
(3)采用的结构是转置型(TDF)结构,关键路径的延时不受滤波器阶数和被处理数据的位宽的影响;
(4)突出的模块特性使其既便于在FPGA上实现又能够很容易的做到VLSI实现。
附图说明
图1为现有技术BSS可重构FIR滤波器的结构图;
图2为本发明有限冲击响应CSD滤波器所依据的CSD系数分组方法的流程图;
图3为根据本发明实施例有限冲击响应CSD滤波器的总体结构图;
图4为图3所示有限冲击响应CSD滤波器中预处理单元的结构示意图;
图5为图3所示有限冲击响应CSD滤波器中单个处理单元的结构示意图;
图6为图3所示有限冲击响应CSD滤波器中级联的两级处理单元的结构示意图;
图7为图3所示有限冲击响应CSD滤波器中级联的三级处理单元的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。
在对本发明有限冲击响应CSD滤波器的具体结构进行介绍之前,首先对该有限冲击响应CSD滤波器的工作原理进行详细介绍。
hi是FIR滤波器第i阶的系数,N是滤波器的总阶数,x[n-i]是在时刻[n-i]的采样。x[n]和y[n]分别是输入的信号和输出的信号。
系数hi用CSD的形式可以表示为式(2)
Ki是CSD系数中非零位的总数,Ci,j∈{-1,0,1}表示第j位的符号,Si,j∈{0,...,L-1}是移位的位数,L是系数的位宽。这样一来式(1)可以被重写为:
本发明CSD系数分组的方法是(参考图2):如果一阶系数hi用CSD表示,其相邻两个不为零的比特位之间有且只有1个比特位为0,则将这三个比特位划分成为一个组,该组对应的部分积包括:[101]、[10-1]、[-101]、[-10-1];如果相邻的两个不为零的比特位之间0的个数大于1,则这两个非零位就拆分成两个组,这两个组对应的部分积为[1]或者[-1]。考虑到部分积的系数,结合加减法运算过程中系数的处理关系,这些部分积可以有效的等效为[1]、[10-1]、[101]。
这样一来,计算系数的乘法所需要的部分积只有[1],[10-1]和[101]。按照这种系数分组的方式,hi的表示式(2)表示为式(4)
该式中pi∈{0,1}用来表示第j组的符号位,是系数hi的第j组,是第j组的移位数目,系数的位宽是L,M是第i阶CSD系数按照这种新的分组方法得到的系数小组(部分积)的数目。用这种新的分组方式(3)被重写为(5)
基于上述工作原理,以下对本发明有限冲击响应CSD滤波器的具体结构进行详细说明。
在本发明的一个示例性实施例中,提供了一种有限冲击响应CSD滤波器。在本实施例中,将滤波器的系数假定为16-bit,这样最多可能出现三个处理单元级联实现“一阶”计算的情况,但是,本发明并不会因为系数位宽的增加而失去其优越性。针对不同类型,不同阶数的滤波器,只需要改变整个架构中处理单元内部的编程方式就可以实现系统的可重构。
图3为根据本发明实施例有限冲击响应CSD滤波器的总体结构图。该滤波器包括预处理器30,处理单元31a~31h。请参照图3,本实施例有限冲击响应CSD滤波器包括:预处理器(Precomputer)30和级联的K级处理单元(31a~31h)。
预处理器(Precomputer)30,该Precomputer一共有四个端口,一个输入,三个输出。输入端用于接收待滤波信号x,利用该待滤波信号计算系数乘法所需要的三个部分积:[1]、[10-1]和[101],并将该三个部分积分别从其三个输出端输出,其中,[1]代表待滤波信号,即[1]=x;[10-1]代表待滤波信号与右移两比特位后的待滤波信号做差的结果,即[10-1]=x-(x>>2);[101]代表待滤波信号与右移两比特位后的待滤波信号的和,即[101]=x+(x>>2)
K级处理单元(31a~31h)中的每一处理单元均具有四个输入端和一个输出端:
对于第1级处理单元PE0,其四个输入端中的三个输入端与预处理器30的三个输出端相连接,另一输入端与下一级处理单元的输出相连,其输出端为滤波后信号的输出端;
对于第K级处理单元PEK-1,其四个输入端中的三个输入端与预处理器30的三个输出端相连接,第四个输入信号输入为数据“0”,其输出端输出到第K-1级处理单元PEK-2;
对于第i-1个处理单元PEi,其中,1<i<K,该四个输入端中的三个输入端与预处理器30的三个输出端相连接,另一输入端与第i-2级处理单元PEi-1的输出端相连接。
K级处理单元中的每一处理单元,用于利用自身存储的与系数相关的控制位信息,对输入的部分积进行加减移位操作,得到完成系数乘法的一中间结果;该级联的K级处理单元中,若干个中间结果经过级联信号的级联求和或求差,由第1级处理单元PE0的输出端输出滤波结果。
以下对本实施例有限冲击响应CSD滤波器中预处理器和级联的K级处理单元分别进行说明。
1、预处理器
图4为图3所示有限冲击响应CSD滤波器中预处理单元的结构示意图。请参照图4,按照本发明提到的系数分组方法,预处理器30只需要产生[1]、[10-1]和[101]三个部分积。这样一来预处理器被简单设计为只需一个输入端,三个输出端的模块。一个输入端用于接收待滤波信号x,三个输出信号分别输出第一部分积[1]、第二部分积[10-1]和第三部分积[101]。这些部分积分别输出到K个处理单元31a、31b、31c、31d、31e、31f、31g、…、31h。
由于输出的部分积的数目少于传统的结构所需的部分积的数目,所以,该预处理器在硬件开销方面也是最少的。所述预处理器需要一移位数目固定为2的右移位器403,一减法器402和一加法器401。其中:
预处理器30的输入端直接连接到预处理器30的输出端,作为第一部分积[1]输出;
右移位器403的输入端连接到预处理器30的数据输入端,输出端连接到减法器402的输入端和加法器401的输入端;
减法器402的一个输入端连接到预处理器30的数据输入端,另一个输入端连接到右移位器403的输出端,输出端连接到预处理的输出端,作为第二部分积[10-1]输出;
加法器401的一个输入连接到预处理器30的输入端,另一个输入端连接到右移位器403的输出端,输出端连接到预处理器的输出端,作为第三部分积输出[101]。
所述预处理器工作时输入信号直接输出作为第一部分积[1]。输入信号分别连接到加法器401、减法器402和移位器403的输入,经过移位的信号也输出到加法器401和减法器402的输入端,经过运算,减法器402的输出作为第二部分积[10-1]输出,加法器301的输出作为第三部分积[101]输出。
2、处理单元
本实施例有限冲击响应CSD滤波器K个预处理器中,各个处理单元的结构完全一样的。
图5为图3所示有限冲击响应CSD滤波器中单个处理单元的结构示意图。请参照图5,处理单元有五个端口,其中输入端有四个,输出端有一个。输入端中,有三个端口分别与预处理器30输出的三个部分积相连,另外一个用于级联数据信号的输入。输出端有一个,主要用于级联数据输出。
处理单元PE包含两个3选1的多路选择器501和502,两个2选1的多路选择器506和509,2个可编程的移位器(ProgrammableShifter,PS)503和504,2个加减法器505、507和1个触发器508,其中:
第一多路选择器501的输入端有三个,分别连接到处理单元的输入端,即第一部分积[1]、第二部分积[10-1]和第三部分积[101],输出端连接到第一可编程移位器503的输入端;
第二多路选择器502的输入端有三个,分别连接到处理单元的输入端,即第一部分积[1]、第二部分积[10-1]和第三部分积[101],输出端连接到第二可编程移位器504的输入端;
第一可编程移位器503的输入端连接到第一多路选择器501的输出端,输出端连接到第一加减法器505的一个输入端;
第二可编程移位器504的输入端连接到第二多路选择器502的输出端,输出端同时连接到第一加减法器505的一个输入端和第三多路选择器506的一个输入端;
第一加减法器505的输入端有两个,分别连接到第一可编程移位器503和第二可编程移位器504的输出端,输出端连接到第三多路选择器506的一个输入端;
第三多路选择器506的输入端有两个,分别连接第一加减法器505的输出端和第二可编程移位器504的输出端,输出信号连接到第二加减法器507的输入端;
第二加减法器507的输入端有两个,一个连接到第三多路选择器506的输出端,另一个连接处理单元“级联数据输入”端,输出同时连接到第四多路选择器509的输入端和触发器508;
触发器508的输入端连接到第二加减法器507的输出端,输出端连接到第四多路选择器509的输入端;
第四多路选择器509的输入端有两个,一个连接到第二加减法器507的输出端,另一个连接到触发器508的输出端,输出端连接到处理单元PE的级联数据输出端;
控制位寄存器,连接至所述第一多路选择器501、第二多路选择器502、第一可编程移位器503、第二可编程移位器504、第一加减法器505、第三多路选择器506、第二加减法器507、第四多路选择器509的控制端,用于提供控制位信息,该控制位信息由CSD系数决定。
所述处理单元31a-31h工作的时候,第一部分积[1]、第二部分积[10-1]和第三部分积[101]分别输入到第一多路选择器501和第二多路选择器502中,经过第一多路选择器501和第二多路选择器502选择得到的部分积分别输入到第一可编程移位器503和第二可编程移位器504中,经过特定的移位之后,第一可编程移位器503和第二可编程移位器504的输出都作为第一加减法器505的输入中,经过第一加减法器505的加减操作得到的结果和第二可编程移位器504的输出信号一起经过第三多路选择器506的选择之后输出到第二加减法器507中,第二加减法器507对第三多路选择器506的输出信号和处理单元端口的输入信号“级联数据输入”做相应的加减操作之后输出到触发器508进行寄存或者直接输出到第四多路选择器509中,第四多路选择器509在接收到加减法器507的计算结果和触发器508的缓存结果之后经过控制位的控制选择输出到处理单元的输出端,用于“级联数据输出”信号的产生。
按照本发明提出的CSD系数分类方法,滤波器不同阶的系数可能需要不同数目的处理单元级联来完成“一阶”系数的乘法。需要一个处理单元完成“一阶”系数乘法的“阶”32a、32b和32c归为“组1”,需要两个处理单元级联完成“一阶”系数乘法的“阶”33归为“组2”,需要三个处理单元级联完成“一阶”系数乘法的“阶”34归为“组3”,按照这个规律,本发明理论上可以任意的指定滤波器的系数位宽,位宽越大,需要的分组类型越多,而且,本设计带来的性能的提升和开销的下降也会随着阶数和系数位宽的提升而提升。
所述处理单元的级联是通过将各个处理单元31a、31b、31c、31d、31e、31f、31g、…、31h的“级联信号输出”端和“级联信号输入”端按顺序连接在一起实现的。连接信号传递内容可以分成两类,一类是“阶”的计算缓存结果,一类是“阶”内运算的中间信号。按照本发明提出的CSD系数分类方法,滤波器不同阶的系数M值可能会不一样。所以,可能需要不同数目的处理单元级联来完成“一阶”系数的乘法。处理单元按照M的不同进行编程组合。当M∈{1,2}时,只需要一个处理单元就可以完成“一阶”系数乘法,如处理单元31a、31b、31h分别可以完成“阶”32a、32b、32c的系数乘法,因此,将这类“阶”归为一组,标记为“组1”。当M∈{3,4}时,需要两个处理单元配合才能完成“一阶”系数的乘法,如处理单元31c和31d配合完成“阶”33的系数乘法,在这种情况下处理单元31d输出的级联信号便是“阶”内运算的中间信号,而该“阶”的运算结果将由处理单元31c的级联信号输出端输出,为了便于说明,将与处理单元31d和31c组成的“阶”33相同的“阶”都标记为“组2”。当M∈{5,6}时,需要三个处理单元配合才能完成“一阶”系数的乘法,如处理单元31e、31f和31g配合完成“阶”34的系数乘法,在这种情况下处理单元31g和31f输出的级联信号都是“阶”内运算的中间信号,而该“阶”的运算结果将由处理单元21e的级联信号输出端输出,为了便于说明,将与处理单元31e、31f和31h组成的“阶”34相同的“阶”都标记为“组3”。按照整个滤波器的各阶系数对处理单元进行相应的、适当的编程之后,整个FIR滤波器的结构就实现了。
请参照图2,基于上文对本发明提出的CSD系数分组的说明,本实施例中,假定CSD系数的位宽为16-bit,处理每一阶系数乘法所需处理单元的个数按照以下方式决定:
步骤A,初始化分组数M=0;
步骤B,标记CSD系数中的非零位;
步骤C,从前往后,取未分组的两非零位;
步骤D,判断该两非零位之间“零”的个数是否大于1,如果是,执行步骤E,否则,执行步骤F;
步骤E,将该两非零位以及之间的“零”分为2组,M=M+2;
这两个组对应的部分积为[1]或者[-1]。考虑到部分积的系数,结合加减法运算过程中系数的处理关系,这些部分积可以有效的等效为[1]、[10-1]、[101]。
步骤F,将该两非零位以及之间的“零”分为1组,M=M+1;
该组对应的部分积包括:[101]、[10-1]、[-101]、[-10-1]。
步骤G,判断非零位是否取完,如果是,执行步骤H,否则,执行步骤C;
步骤H,当M∈{1,2}时,由1个处理单元完成该阶系数乘法;
当M∈{3,4}时,由2个处理单元完成该阶系数乘法;
当M∈{5,6}时,由3个处理单元完成该阶系数乘法;
处理单元的多路选择器501、502、506、509,可编程移位器503、504,加减法器505、507都需要相应的控制位,整个系统的可重构特性也是在这些控制位510的协同工作下完成的。本实施例中,控制位510的格式采用的是AABBCCCCDDDDEFGH的格式:
(1)控制位AA用于控制多路选择器501选通的部分积,“00”表示第一多路选择器501选通第一部分积[1],“01”表示第一多路选择器501选通第二部分积[10-1],“10”表示第一多路选择器501选通第三部分积[101];同理BB表示多路选择器502选通的部分积,具体的表示信息和AA相同;,两者均由当前阶CSD系数的部分积的种类决定;
(2)控制位CCCC用于控制第一可编程移位器503右移的位数,从20到2-15,移位数目是根据该部分积前面的比特位数确定的;DDDD用于控制第二可编程移位器504右移的位数,从20到2-15,移位数目是根据该部分积前面的比特位数确定的;
(3)控制位E用于控制第一加减法器505加法或者减法操作,“1”表示加法操作,“0”表示减法操作,其由当前阶CSD系数中部分积的符号确定,当两个部分积的符号相同时,这两个部分积做加法操作,当两个部分积符号位相反的时候,这两个部分积做减法操作;
(4)控制位F用于控制第三多路选择器506的输出,“1”表示选通加减法器505的结果,“0”表示选通移位器504的结果,其由当前处理单元处理的部分积的个数决定,如果当前PE处理的部分积的个数为2,F=1,如果当前PE处理的部分积的个数为1,F=0;
(5)控制位G用于控制第二加减法器507加法或者减法操作,“1”表示加法操作,“0”表示减法操作,加法操作表示下一阶系数为正,减法表示下一阶系数为负,其由下一阶CSD系数第一比特位的符号确定,如果下一阶CSD系数的第一比特位的符号为正,G=1,如果下一阶CSD系数的第一比特位的符号为负,G=0,其由当前处理单元是否为完成单个CSD系数乘法的最终结果所决定,如果当前处理单元的结果是该CSD系数乘法的最终结果,H=1,如果不是,H=0;
(6)控制位H用于控制多路选择器509的输出,“1”表示输出508的缓存结果,“0”表示输出加减法器507的结果。
下文举例说明如下。假设连续两阶滤波器的系数为
hk=[10-10001],hk+1=[10100001]
由前面提到的系数分组方法可知,M=2,需要一个PE完成第K阶系数的乘法,H=1。由hk可知其所需要的两个部分积为[10-1]和[1],所以AA=01;BB=00;由于部分积[10-1]前面的比特位数为0,所以对应的CCCC=0000;同样,部分积[1]前面的比特位数为6,所以DDDD=0010;由于该系数中的部分积[1],而不是[-1],所以E=1;该系数的M=2,所以,多路选择器506应该选择505的结果输出,即F=1;另外,根据系数hk+1的部分积[101]可知级联信号进入到该PE中应该进行加法操作,故G=1.综上所述对应的控制位为0100000001101111。
图6为两个PE级联图,其目的在于完成一“阶”M∈{3,4}系数的乘法。参照图6,两个处理单元级联将是处理单元61的“级联数据输出”连接到处理单元60的“级联数据输入”端。处理单元61和处理单元60内部元件的连接关系遵照图5。
完成一“阶”M∈{3,4}系数乘法时,两个PE需要协同工作。这两个PE的控制位的产生和单个PE工作的一样的,所不同的是需要两个AABBCCCCDDDDEFGH的控制信息,分别控制这两个PE的工作状态。处理单元61的多路选择器61409的控制位选择加减法器61407的输出,输出到处理单元61的“级联数据输出”端,而不选择触发器61408的结果。处理单元60的“级联数据输入”端接收到处理单元61的输出信号后,输入到加减法器60407的输入端参与加减法器的运算,得到结果之后由处理单元60的多路选择器60409的控制位选择触发器60408缓存结果输出,这样一来,两个处理单元协调工作就可以完成M∈{3,4}的“阶”的运算。
图7为三个处理单元级联图。其目的在于完成一“阶”M∈{5,6}系数的乘法。参照图7,三个处理单元级联将是处理单元72的“级联数据输出”连接到处理单元71的“级联数据输入”端,处理单元71的“级联数据输出”连接到处理单元70的“级联数据输入”端。处理单元72、71和处理单元70内部元件的连接关系遵照图5。
实现一“阶”M∈{5,6}系数的乘法时,三个PE需要协同工作。这两个PE的控制位的产生和单个PE工作的一样的,所不同的是需要三个AABBCCCCDDDDEFGH的控制信息,分别控制这三个PE的工作状态。处理单元72的多路选择器72609的控制位选择加减法器72607的输出,输出到处理单元72的“级联数据输出”端,而不选择触发器72408的结果。同样,处理单元71的多路选择器71609的控制位选择加减法器71607的输出,输出到处理单元71的“级联数据输出”端,而不选择触发器71408的结果。处理单元70的“级联数据输入”端接收到处理单元71的输出信号后,输入到加减法器70407的输入端参与加减法器的运算,得到结果之后由处理单元70的多路选择器70609的控制位选择触发器70608缓存结果输出,这样一来,三个处理单元协调工作就可以完成M∈{5,6}的“阶”的运算。
尽管三个处理单元级联完成一阶运算消耗资源比传统的结构多,但是根据统计结果,高阶滤波器系数中M∈{5,6}所占的比例相当少,都不到1%,而且随着阶数的增加呈现下降的趋势。两个处理单元用于解决M∈{3,4}的系数乘法,根据统计结论,阶数越高这类系数所占的比重越少,所以消耗的资源也会随着阶数的增加而下降。本发明在滤波器阶数越高的条件下,性能的优越性将越大,功耗的下降越明显。
为了比较该结构的优越性,在本发明提出的结构之内实现了一个设计用例。其阶数为551,类型为带通FIR滤波器,设计指标分别为ωs1=0.7,ωp1=0.69;ωp2=0.79,ωs2=0.8。该设计用例采用了0.13μm的工艺库,用硬件描述语言(verilog)进行描述设计,实现结果显示,当本发明的FIR滤波器工作在100兆赫兹的频率下时,功耗为95.68毫瓦,综合的面积为3.03平方毫米,而且,综合得到本发明提出的滤波器最高可以工作在152.9兆赫兹的频率下。相比于传统的BSS结构,在同样的工艺,同样的工作条件下,本发明在面积、功耗和最高工作频率方面分别有23.1%,19%和13.1%的优越性。
至此,已经结合附图对本实施例进行了详细描述。依据以上描述,本领域技术人员应当对本发明有限冲击响应CSD滤波器有了清楚的认识。
此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换,例如:
(1)本发明系数的位宽不受限制,可以根据实际应用精度的要求确定其位宽,根据系数位宽变化所产生的结构方面的修饰都属于本发明的替代方案。
(2)本发明的被处理数据的位宽也不受限制,可以根据实际应用确定该设计的被处理数据的位宽,根据被处理数据位宽变化所产生的结构方面的修饰都属于本发明的替代方案。
(3)本发明为了和已有的设计进行比较,没有在设计中考虑FIR滤波器系数的对称性,凡是基于本发明的结论以及所提出的结构考虑系数对称性得到的新的结构都属于发明替代方案。
(4)本发明的侧重点在于可重构滤波器的结构,没有提及结构中涉及到的诸如移位器、加减法器、触发器等的细节,凡是在本发明的结构框架内对这些模块的修饰都属于本发明的替代方案;
(5)关于控制位的定义和实现方式,本发明仅给出一种特定实施例,但该实施例仅用于说明,本领域技术人员可以根据系数位数以及自身的需要对控制位进行定义,以实现有限冲击响应滤波器,即本文只给出了可以种可重构的有限冲击响应滤波器,置于其重构方式千变万化,此处不再一一描述。
综上所述,本发明基于新的CSD系数分组方法,提供了一种高性能、低开销、可重构的有限冲击响应CSD滤波器,从而解决高阶可重构滤波器过渡消耗资源和能耗的问题。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种有限冲击响应CSD滤波器,其特征在于,包括:
预处理器,其具有一个输入端,三个输出端,用于利用接收的待滤波信号,利用该待滤波信号计算系数乘法所需要的三个部分积:[1]、[10-1]和[101],并将该三个部分积分别从其三个输出端输出;
级联的K级处理单元,其中K大于或等于该有限冲击响应CSD滤波器的阶数n,该K级处理单元中:
对于第1级处理单元PE0,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端与下一级处理单元PE1的输出端相连,其输出端为滤波后信号的输出端;
对于第i级处理单元PEi-1,其中,1<i<K,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端与第i+1级处理单元PEi的输出端相连接;
对于第K级处理单元PEK-1,其四个输入端中的三个输入端与预处理器的三个输出端相连接,另一输入端输入信号0,其输出信号端口输出到第K-1级处理单元PEK-2;
其中,该K级处理单元中的每一处理单元,用于利用自身存储的与系数相关的控制位信息,对输入的部分积进行加减移位操作,得到完成系数乘法的一中间结果;若干个中间结果经过级联信号的级联求和或求差,由第1级处理单元PE0的输出端输出滤波结果;
其中,所述预处理器输出的部分积中:[1]代表待滤波信号自身;[10-1]代表待滤波信号与右移两比特位后的待滤波信号做差的结果;[101]代表待滤波信号与右移两比特位后的待滤波信号的和。
2.根据权利要求1所述的有限冲击响应CSD滤波器,其特征在于,所述预处理器包括:移位数目固定为2的右移位器,一减法器和一加法器:其中:
所述预处理器的数据输入端直接连接到预处理器的第一数据输出端,作为第一部分积[1]输出;
所述右移位器的输入端连接到所述预处理器的数据输入端,其输出端连接到所述减法器的第一输入端和所述加法器的第一输入端;
所述减法器的第二输入端连接到所述预处理器的数据输入端,其输出端连接到所述预处理器的第二输出端,作为第二部分积[10-1]输出;
所述加法器的第二输入端连接到所述预处理器的数据输入端,其输出端连接到所述预处理器的第三输出端,作为第三部分积输出[101]。
3.根据权利要求1所述的有限冲击响应CSD滤波器,其特征在于,所述K级处理单元中各处理单元的结构相同,每一处理单元包括:
第一多路选择器,其三输入端分别连接到预处理器的三输出端;
第二多路选择器,其三输入端分别连接到预处理器的三输出端;
第一可编程移位器,其输入端连接到第一多路选择器的输出端;
第二可编程移位器,其输入端连接到第二多路选择器的输出端;
第一加减法器,其两输入端分别连接到第一可编程移位器和第二可编程移位器的输出端;
第三多路选择器,其两输入端分别连接第一加减法器的输出端和第二可编程移位器的输出端;
第二加减法器,其第一输入端连接至第三多路选择器的输出端,其第二输入端连接至前一处理单元输出端;
触发器,其输入端连接到第二加减法器的输出端;
第四多路选择器,其第一输入端连接至第二加减法器的输出端,其第二输入端连接至触发器的输出端,其输出端作为该处理单元的级联数据输出端;
控制位寄存器,连接至所述第一多路选择器、第二多路选择器、第一可编程移位器、第二可编程移位器、第一加减法器、第三多路选择器、第二加减法器、第四多路选择器的控制端,用于提供控制位信息,该控制位信息由CSD系数决定。
4.根据权利要求3所述的有限冲击响应CSD滤波器,其特征在于,在CSD系数的位宽为16bit时,处理每一阶系数乘法所需处理单元的个数按照以下方式决定:
步骤A,初始化分组数M=0;
步骤B,标记CSD系数中的非零位;
步骤C,从前往后,取未分组的两非零位;
步骤D,判断该两非零位之间“零”的个数是否大于1,如果是,执行步骤E,否则,执行步骤F;
步骤E,将该两非零位以及之间的“零”分为2组,M=M+2;
步骤F,将该两非零位以及之间的“零”分为1组,M=M+1;
步骤G,判断非零位是否取完,如果是,执行步骤H,否则,执行步骤C;
步骤H,当M∈{1,2}时,由1个处理单元完成该阶系数乘法;
当M∈{3,4}时,由2个处理单元完成该阶系数乘法;或
当M∈{5,6}时,由3个处理单元完成该阶系数乘法。
5.根据权利要求4所述的有限冲击响应CSD滤波器,其特征在于,控制位寄存器中控制位的格式为:AABBCCCCDDDDEFGH;
控制位AA用于控制第一多路选择器选通的部分积,“00”表示第一多路选择器选通第一部分积[1],“01”表示第一多路选择器选通第二部分积[10-1],“10”表示第一多路选择器选通第三部分积[101];
控制位BB用于控制第二多路选择器选通的部分积,其表示信息和AA相同,其由当前阶CSD系数的部分积的种类决定;
控制位CCCC用于控制第一可编程移位器右移的位数,该位数根据第一多路选择器所选通的部分积前面的比特位数确定;
控制位DDDD用于控制第二可编程移位器右移的位数,该位数根据第二多路选择器所选通的部分积前面的比特位数确定;
控制位E用于控制第一加减法器加法或者减法操作,“1”表示加法操作,“0”表示减法操作,其由当前阶CSD系数中部分积的符号确定,当两个部分积的符号相同时,这两个部分积做加法操作,当两个部分积符号位相反的时候,这两个部分积做减法操作;
控制位F用于控制第三多路选择器的输出,“1”表示选通第一加减法器505的结果,“0”表示选通第二可编程移位器的结果,其由当前处理单元处理的部分积的个数决定,如果当前PE处理的部分积的个数为2,F=1,如果当前PE处理的部分积的个数为1,F=0;
控制位G用于控制第二加减法器加法或者减法操作,“1”表示加法操作,表示下一阶系数为正,“0”表示减法操作,表示下一阶系数为负,其由下一阶CSD系数第一比特位的符号确定,如果下一阶CSD系数的第一比特位的符号为正,G=1,如果下一阶CSD系数的第一比特位的符号为负,G=0;
控制位H用于控制第四多路选择器的输出,“1”表示输出触发器的缓存结果,“0”表示输出第二加减法器的结果,其由当前处理单元是否为完成单个CSD系数乘法的最终结果所决定,如果当前处理单元的结果是该CSD系数乘法的最终结果,H=1,如果不是,H=0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410014200.2A CN103716011B (zh) | 2014-01-13 | 2014-01-13 | 有限冲击响应csd滤波器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410014200.2A CN103716011B (zh) | 2014-01-13 | 2014-01-13 | 有限冲击响应csd滤波器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716011A CN103716011A (zh) | 2014-04-09 |
CN103716011B true CN103716011B (zh) | 2016-07-06 |
Family
ID=50408672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410014200.2A Active CN103716011B (zh) | 2014-01-13 | 2014-01-13 | 有限冲击响应csd滤波器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103716011B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112564672A (zh) * | 2020-11-18 | 2021-03-26 | 南京航空航天大学 | 基于秘密比特信息嵌入系统低复杂度fir滤波器的可重构架构 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633847B1 (en) * | 2000-01-05 | 2003-10-14 | Motorola, Inc. | Voice activated circuit and radio using same |
CN1471328A (zh) * | 2003-06-13 | 2004-01-28 | 上海迪申电子科技有限责任公司 | 一种采用csd方法实现的误差反馈型高阶△∑调制器 |
CN101425794A (zh) * | 2008-11-27 | 2009-05-06 | 四川虹微技术有限公司 | 固定系数数字滤波器 |
CN103093052A (zh) * | 2013-01-25 | 2013-05-08 | 复旦大学 | 一种低功耗并行fir数字滤波器的设计方法 |
CN103269212A (zh) * | 2013-05-14 | 2013-08-28 | 邓晨曦 | 低成本低功耗可编程多级fir滤波器实现方法 |
-
2014
- 2014-01-13 CN CN201410014200.2A patent/CN103716011B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633847B1 (en) * | 2000-01-05 | 2003-10-14 | Motorola, Inc. | Voice activated circuit and radio using same |
CN1471328A (zh) * | 2003-06-13 | 2004-01-28 | 上海迪申电子科技有限责任公司 | 一种采用csd方法实现的误差反馈型高阶△∑调制器 |
CN101425794A (zh) * | 2008-11-27 | 2009-05-06 | 四川虹微技术有限公司 | 固定系数数字滤波器 |
CN103093052A (zh) * | 2013-01-25 | 2013-05-08 | 复旦大学 | 一种低功耗并行fir数字滤波器的设计方法 |
CN103269212A (zh) * | 2013-05-14 | 2013-08-28 | 邓晨曦 | 低成本低功耗可编程多级fir滤波器实现方法 |
Non-Patent Citations (2)
Title |
---|
基于FPGA高效实现FIR滤波器的研究;王新刚;《空间电子技术》;20061230;全文 * |
有限冲击响应数字滤波器的DSP实现;陈鹏;《电子质量》;20080520(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103716011A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103176767B (zh) | 一种低功耗高吞吐的浮点数乘累加单元的实现方法 | |
CN103269212B (zh) | 低成本低功耗可编程多级fir滤波器实现方法 | |
CN113064852B (zh) | 一种可重构处理器及配置方法 | |
CN102185587B (zh) | 一种低功耗的两相结构多阶内插半带滤波器 | |
CN106775577B (zh) | 一种高性能非精确冗余二进制乘法器的设计方法 | |
CN105183425A (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
Singh et al. | Implementation of high speed FIR filter using serial and parallel distributed arithmetic algorithm | |
Ajit et al. | FPGA based performance comparison of different basic adder topologies with parallel processing adder | |
CN103716011B (zh) | 有限冲击响应csd滤波器 | |
CN103853524A (zh) | 一种乘法器装置和实现乘法运算的方法 | |
CN103955585A (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
US9787290B2 (en) | Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters | |
CN101430737A (zh) | 提升小波变换的vlsi结构设计方法 | |
CN103176766A (zh) | 基于增强型lut5结构的二进制加减法器 | |
CN106708467B (zh) | 一种宽位累加器电路及其设计方法、可编程逻辑器件 | |
CN110909793B (zh) | 一种基于fpga实现的决策森林系统及决策森林推理方法 | |
CN108255463A (zh) | 一种数字逻辑运算方法、电路和fpga芯片 | |
Pandey et al. | Comparative analysis of carry select adder using 8T and 10T full adder cells | |
CN102929575B (zh) | 一种模(2n+3)乘法器 | |
CN103699729A (zh) | 模乘法器 | |
CN205281474U (zh) | 一种可配置的两级流水线六操作数快速加法器 | |
Saini et al. | Area Optimization of FIR Filter and its Implementation on FPGA | |
CN102955682A (zh) | 模乘法器 | |
CN203204600U (zh) | 基于增强型lut5结构的二进制加减法器 | |
Magesh et al. | Design of Higher Order Matched FIR Filter Using Odd and Even Phase Process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |