一种半带滤波器的低功耗实现方法
在如今数字技术中,半带滤波器因其通带阻带对称,系数具有偶对称性且滤波器阶数为奇数,有效系数少等特点广泛应用于通信、视频处理、语音识别等数字信号处理应用中,尤其常用于实现信号的2倍抽取。对于一个阶数为N(N为偶数),长度为N+1的半带滤波器,传统的多相分解技术下实现2倍抽取功能的转置实现结构如图1所示。
首先,利用多相分解[1],滤波运算分为奇偶两个分支进行,输入数据经过2倍抽取后得到偶分支上的滤波输入;输入数据经过一个延迟单位进行2倍抽取后得到奇分支上的输入数据。偶分支上共有偶数个系数且系数对称。对于偶分支上数据乘以各系数的操作可以称为多常数乘法(Multiple Constant Multiplications,MCM),众所周知乘法器的硬件实现会消耗大量的资源,故可采用以移位相加代替偶分支滤波运算过程中的所有乘法操作以节省硬件资源。
一般的移位相加实现方法是对系数进行正则有符号数(Canonic Signed Digit,CSD)编码[2],以减少硬件资源开销,根据文献[1],基于CSD编码的方式比二进制编码方式平均减少33%的硬件开销。同时偶分支的滤波结构还可以采用混合形式,降低累加部分中加法器的开销[3]。
不同于传统使用CSD编码的办法,本文采用的是利用以2r为基础数的算法(RADIX-2r)实现MCM操作。传统CSD编码的方法是对每个系数进行编码,每个系数的乘法是独立的,无法共享硬件资源。而RADIX-2r算法中,利用系数之间共享基本表达式以达到共享硬件资源的目的,必然比传统办法节省硬件资源。
1 所设计半带滤波器的参数
本文中所设计的两个半带滤波器分别为归一化频率下过渡带带宽为6/11、阻带衰减大于90 dB和过渡带带宽为1/11、阻带衰减大于90 dB。设计可通过MATLAB软件完成[4],具体实现代码如下所示:
h1=halfband(‘Type’,’Lowpass’,6/11,90);
Hb1=design(h1,’equiripple’);
h2=halfband(‘Type’,’Lowpass’,1/11,90);
Hb2=design(h2,’equiripple’);
由MATLAB软件仿真可得,宽过渡带半带滤波器阶数为18,窄过渡带半带滤波器阶数为118,要达到90 dB阻带衰减的技术指标,宽过渡带半带滤波器系数量化位数为17位,窄过渡带半带滤波器系数量化位数为21位。
系数量化后两个滤波器的幅频响应分别如图2、图3所示。如图所示,所得半带滤波器均满足阻带衰减大于90 dB的设计指标。量化后的宽过渡带半带滤波器的有效系数如表1所示,窄过渡带半带滤波器量化后的系数如表2所示。
从表1中可见,宽过渡带半带滤波器的有效系数只有11个,其中,多相分解下,奇分支上的有效系数只有h(9),其余全为偶分支上的有效系数且具有对称性。
同理从表2中得知,窄过渡带半带滤波器的有效系数为61个,奇分支上只有一个有效系数h(59),其余全为偶分支上的系数且具对称性。
2 高效实现方法
传统的CSD编码实现方式下是对每个有效系数进行CSD编码然后用移位相加操作完成乘法,将消耗大量的硬件资源。与使用CSD编码不同的是,本文提出了使用RADIX-2r算法实现偶分支滤波运算中的MCM,达到以更低功耗、更小面积实现半带滤波的目的。
2.1 RADIX-2r算法实现MCM
一个N-bit常数C在RADIX-2r算法中由式(1)表示:
MCM模块中,输入X将同时乘以拥有M个常数的常数集{C0,C0,…,CM-2,CM-1}。常数集中需要由MCM模块产生乘积的数只有正的奇数,因为偶数可以通过奇数进行左移操作获得,而负数可以通过正数取负获得,如常数积-132X可以通过常数积33X左移2位并取负获得,在MCM问题中只需实现33X即可,不需要用多余的加法器实现-132X。常数集中所需实现的正的奇数被称为基本数。根据文献[5]、[6]可知,相比于现有的研究,RADIX-2r算法是实现MCM模块最好的办法,在功耗、面积、速度上都具有显著的优势。
对于本文中半带滤波器Hb1的偶分支的实现,通过RADIX-2r算法可以得到其基本部分积为{1,3,5,7},需要实现的基本数集为{57,101,1 601,4 985,20 115}基本部分积的具体实现过程如下所示:
X1=X
X3=X1<<1+X1
X5=X1<<2+X1
X7=X1<<3-X1
基本数集的实现过程如下所示:
X57=X1<<6-X7
X101=X5+X3<<5
X1601=X1+X1<<6+X3<<9
X4985=X1<<12+X7<<7-X7
X20115=X3-X7<<4-X1<<8+X5<<12
同理对于半带滤波器Hb2,偶分支中的基本部分积与基本数集分别如下所示:
由于篇幅原因,半带滤波器Hb2基本部分积与基本数集的实现过程不在此列出。
2.2 寄存基本部分积以降低功耗
数字电路在工作时,主要的功耗来自于动态功耗,而动态功耗中大部分为数字单元基本门电路的开关行为导致。由文献[7]可知,拥有长路径的加法器将会导致更活跃的开关行为,这是因为由不同延迟路径引起的无用毛刺将沿着路径从MCM模块传播至后续的累加模块中。虽然这种毛刺不会产生任何电路上的逻辑错误,但数字电路中高达70%的开关活动是由这些毛刺造成,进而会造成比较大的功耗。
因而,有效降低功耗的方法即是减少电路中因延迟不同而产生的毛刺。根据前文所述使用RADIX-2r实现MCM模块的方法中,每一个基本数的实现都可以通过基本部分积之间的移位相加操作完成。本文所提出的另一降低功耗的方法是寄存MCM模块中产生的基本部分积的输出,通过使用边沿有效的寄存器可以有效地消除毛刺,因为寄存器只在确定的时钟边沿进行采值,阻断毛刺从MCM模块向累加部分的传播,进而减少电路的开关行为。同时因为基本部分积的数目总是远小于基本数的总数,所以相比于寄存基本数,寄存基本部分积不会带来太多的额外寄存器的开销。对于文中Hb1半带滤波器而言,即是寄存X1、X3、X5、X7四个数值。
2.3 所提出的半带滤波器实现结构
本文提出的Hb1半带滤波器的总体实现方法如图4所示,使用了表1中的系数。总体结构包含三个子部分,一是多相分解部分;二是利用RADIX-2r实现MCM部分,其中包括了对基本部分积的寄存;最后是滤波运算的累加部分,此部分中还采取奇支路和偶支路积共用寄存器的策略。因篇幅原因,Hb2的实现结构图不在此展出。
3 实验结果及分析
为了评测本文提出的应用于数字信号抽取下的半带滤波器的实现方法的性能,对于文中的半带滤波器Hb1、Hb2,分别用Verilog HDL硬件描述语言实现了传统的CSD编码结构、CSD编码下的混叠结构以及本文所提出的结构。在逻辑综合结果方面进行比较。
综合使用的软件为Synopsys公司的Design Compiler软件,使用的工艺库为TSMC 40 nm工艺,并设置滤波器的输入字长为16 bit。表3、表4分别展示了Hb1、Hb2不同方案所需要的硬件资源。
功耗分析使用的时钟频率为200 MHz,两个滤波器每个方案综合后的结果如表5、表6所示。
通过以上表中数据可知,文献[3]所提出的实现方法相较于CSD编码的实现方法不具有优势,仅在实现窄过渡带滤波器时降低了滤波器的面积,但提升效果也十分有限。而本文所提出的实现方法相对于传统CSD编码实现结构在功耗及面积表现上均有明显优势,对于宽过渡带半带滤波器,在本文的实现方法中,功耗下降了9.36%,面积下降了6.31%;对于窄过渡带半带滤波器,本文的实现方法使功耗降低了13.93%,面积降低了12.79%。
4 结论
本文针对应用于数字信号下变频技术中的半带滤波器,提出了一种低功耗的实现方法。利用MATLAB软件设计半带滤波器,并对新的实现方法进行了Modelsim仿真验证,最后由Design Complier 软件进行综合。结果表明,与传统的CSD编码实现方法相比较,本文提出的实现方法能有效地降低滤波器的功耗与面积,具有较高的实用价值,可广泛应用工程需求中的半带滤波器的实现。
参考文献
[1] 卜祥元,方金辉,范星宇,等.基于抽取滤波器多相分解的多速率采样模块设计[J].北京理工大学学报,2014(2):187-191.
[2] GOEL N,NANDI A.Design of FIR filter using FCSD representation[C].IEEE International Conference on Computational Intelligence and Communication Technology,2015:617-620.
[3] LOU X,MEHER P K,YU Y,et al.Novel structure for area-efficient implementation of FIR filters[J].IEEE Transactions on Circuits and Systems,2017,64:1212-1216.
[4] 杜勇.数字滤波器的MATLAB与FPGA实现[M].北京:电子工业出版社,2015.
[5] OUDJIDA A,LIACHA A,BAKIRI M,et al.Multiple constant multiplication algorithm for high-speed and low-power design[J].IEEE Transactions on Circuits and Systems,2016,63(2):176-180.
[6] LIACHA A,OUDJIDA A,FERGUENE F,et al.Design of high-speed,low-power,and area-efficient FIR filers[J].IET Circuits,Devices & Systems,2018,12(1):1-11.
[7] YE W B,YU Y J.Switching activity analysis and power estimation for multiple constant multiplier block of FIR filters[C].IEEE International Symposium of Circuits and Systems,2011:145-148.
作者信息:
徐 鹏
(电子科技大学 电子科学与工程学院,四川 成都610054)
「算法集锦」您了解AES算法吗?——《电子技术应用》优秀论文集锦
高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。微信小程序加密传输就是用这个加密算法的。
AES在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
AES与Rijndael加密法
我们知道数据加密标准(Data Encryption Standard: DES)的密钥长度是56比特,因此算法的理论安全强度是256。但二十世纪中后期正是计算机飞速发展的阶段,元器件制造工艺的进步使得计算机的处理能力越来越强,DES将不能提供足够的安全性。1997年1月2号,美国国家标准技术研究所(National Institute of Standards and Technology: NIST)宣布希望征集高级加密标准AES,用以取代DES。
AES得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮:Rijndael,Serpent,Twofish,RC6和MARS,下图分别为其中的5位作者。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael算法获胜。高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
《电子技术应用》近年来刊登了一系列与AES算法相关的技术文章,小编整理于此,以餮读者、作者。欢迎大家推广引用!
1、基于主成分分析的AES算法相关功耗分析攻击
摘要: 针对相关功耗分析攻击中,当功耗曲线的功耗采样点较多时攻击速度缓慢的问题,引入了基于主成分分析的预处理方法。利用主成分分析对功耗曲线进行预处理,提取功耗信息中的主成分,抛弃次要成分,将功耗数据降维,达到减少数据分析量的目的,从而提高攻击效率。以高级加密标准为研究对象,对基于主成分分析的相关功耗分析攻击进行了研究。引入主成分分析的相关功耗分析攻击与经典相关功耗分析攻击的对比实验结果表明:基于主成分分析的预处理将功耗曲线中相关性高于0.2的信息集中到前67号的主成分中,有效地将实际分析功耗点的数量降低至经典相关功耗分析的大约1/4。
中文引用格式: 蔡琛,陈运,万武南,等. 基于主成分分析的AES算法相关功耗分析攻击[J].电子技术应用,2015,41(8):101-105.
英文引用格式: Cai Chen,Chen Yun,Wan Wunan,et al. Correlation power analysis for AES based-on principal component analysis[J].Application of Electronic Technique,2015,41(8):101-105.
2、一种基于CPUID和AES算法的STM32固件升级方案
摘要: 针对STM32系统固件升级时使用同一个文件易被非法复制使用的缺陷,提出并实现了一种一个STM32芯片使用一个唯一升级文件的固件升级方案。升级固件时,由服务器为不同的STM32芯片生成不同的bin文件,该bin文件是以STM32的CPUID为密钥,应用AES算法加密原始bin文件得到的。升级时STM32以自身的CPUID作为密钥对文件解密,如果作为解密密钥的CPUID和作为加密密钥的CPUID不同,则解密出的bin文件不能运行。解密后,再应用IAP技术把新的bin文件写入Flash。实际测试证明,提出的方法可以实现“一片一密”,有效防止了升级程序的非法使用。
中文引用格式: 曹欲晓,韩冬,徐金宝.一种基于CPUID和AES算法的STM32固件升级方案[J].电子技术应用,2015,41(03):28-30+34
3、一种应用于生物识别领域的AES算法
摘要: 生物识别技术已广受重视,利用AES加密算法对生物识别过程中的特征模板进行加密可以大大提高生物识别技术的安全性。为提高AES加密算法的吞吐率,使其更好地应用于生物识别领域,以FPGA为实现主体,采用串行缓存结构,充分利用FPGA并行处理的特点,成功实现了一种大吞吐量的AES算法。最后在Xilinx的XC7A200T芯片上对算法进行了验证,经计算其理论吞吐量可以达到30.3 Gb/s。
中文引用格式: 彭海,高俊雄,王耘波.一种应用于生物识别领域的AES算法[J].电子技术应用,2015,41(04):116-118
4、基于内外混合流水线的高吞吐率AES结构
摘要: 提出了一种基于加解密轮内外流水线的、高性能及高吞吐率的128 bit AES算法的硬件实现方法。在此之前人们多采用查找表来实现AES算法中的SubBytes和InvSubBytes转换过程,本设计则仅仅使用了进行复合域运算的组合逻辑单元,硬件面积得以缩小,同时还可以将组合逻辑单元划分为6级次级流水线,轮外和轮内流水线得到更深层次的利用。使用本设计方案,在Altera DE2-115设备上以570 MHz频率实现的加密器可以达到73.562 Gb/s的吞吐率。
中文引用格式: 江磊,魏震楠,刘明.基于内外混合流水线的高吞吐率AES结构[J].电子技术应用,2015,41(06):114-117.
5、基于汉明码校验的AES数据加密记录器设计
摘要: 以FPGA为硬件设计平台,实现AES数据加密记录器,重点讲述了AES算法的FPGA实现。利用MATLAB软件完成算法的密钥扩展及S盒设计,使其在硬件中的设计简化为查表操作;整体算法的设计采用流水线技术,提高了加密速度。同时,设计了汉明校验码解决由于NAND Flash位翻转经加密后带来的误码扩散的问题,将最后的纠错工作设计在计算机上完成,降低对硬件读数的影响,同时提高了系统的可靠性,该设计具有一定实用价值。
中文引用格式: 魏汉明,刘文怡,关咏梅,张彦军,张国佳.基于汉明码校验的AES数据加密记录器设计[J].电子技术应用,2015,41(01):118-121
6、基于AES算法的存储测试系统设计
摘要: 为了实现对存储测试系统在某些应用场合中数据保密的需求,提出了一种基于AES算法的数据加密系统设计方案,并完成了系统的算法仿真与硬件设计。系统的硬件以Xilinx公司的FPGA为主要芯片,实现数据采集与加密功能。采用VHDL语言来描述AES算法的硬件实现,对AES加密系统的整体结构和各个子模块进行了仿真与优化。从仿真测试结果看,完全能够满足存储测试系统的加密要求,达到了设计要求。
中文引用格式: 孙汶,朱平. 基于AES算法的存储测试系统设计[J].电子技术应用,2015,41(7):74-76,84.
英文引用格式: Sun Wen,Zhu Ping. Design of storage testing system based on AES algorithm[J].Application of Electronic Technique,2015,41(7):74-76,84.
招聘信息
培训信息
也可以直接点击网址访问
相关问答
固态硬盘和机械硬盘怎么搭配才合理?-ZOL问答比如matlab,cad,preo等开启需要读取大量文件的软件,机械硬盘直接用作仓库盘存取...目前受限于人民币贬值的影响,以及各大闪存产商纷纷减少2DNAND的生产从而转向...