葉海雄,陶寧蓉,王世明
(上海海洋大學(xué)工程學(xué)院,上海201306)
基于Catapult C工具遞歸型濾波器設(shè)計(jì)和算法優(yōu)化
葉海雄,陶寧蓉,王世明
(上海海洋大學(xué)工程學(xué)院,上海201306)
使用高層次綜合方法設(shè)計(jì)超大規(guī)模集成電路是一項(xiàng)前瞻性的工作。其設(shè)計(jì)理念旨在保證電路性能的前提下,縮短電路開發(fā)周期,讓產(chǎn)品更早投入到市場(chǎng)。然而針對(duì)高層次綜合工具面對(duì)算法轉(zhuǎn)換時(shí)編譯能力存在局限的問題,本文以信號(hào)處理中遞歸型濾波器為例,針對(duì)濾波器功耗的問題,通過分析濾波算法轉(zhuǎn)換以及評(píng)估高層次綜合工具對(duì)濾波器的影響。實(shí)驗(yàn)結(jié)果表明,采用算法轉(zhuǎn)換及優(yōu)化的方法,能使電路面積減少58%,能耗降低25%,達(dá)到低碳化、節(jié)能環(huán)保的電路設(shè)計(jì)要求。
高層次綜合;集成電路;信號(hào)處理;遞歸型濾波器;面積;能耗
在視頻流、多媒體、圖像處理、模式識(shí)別等領(lǐng)域設(shè)計(jì)超大規(guī)模集成電路是一項(xiàng)具有挑戰(zhàn)性的工作。傳統(tǒng)的設(shè)計(jì)方式通過使用硬件描述語(yǔ)言VHDL[1-2]或Verilog[3]完成數(shù)字系統(tǒng)的設(shè)計(jì),其仿真時(shí)間長(zhǎng)和程序缺乏靈活性,無(wú)法解決產(chǎn)品設(shè)計(jì)時(shí)間和產(chǎn)品性能、面積和能耗方面的矛盾。目前高層次綜合[4]工具解決方案能夠減少中間步驟,自動(dòng)實(shí)現(xiàn)從高級(jí)描述抽象層面到行為級(jí)物理層面的轉(zhuǎn)換。在此領(lǐng)域的研究相當(dāng)活躍[5-7]。文獻(xiàn)[8]描述了MMAlpha高層次綜合工具使用多面體模型分析并轉(zhuǎn)換循環(huán)體的能力。文獻(xiàn)[9]描述了高層次綜合工具Gaut從C語(yǔ)言通過編譯器自動(dòng)轉(zhuǎn)換成硬件描述語(yǔ)言VHDL。文獻(xiàn)[10-13]描述輸入語(yǔ)言為C或C++語(yǔ)言的Catapult C高層次綜合工具編譯器自動(dòng)完成接口、元器件庫(kù)選擇、時(shí)序安排等工作,生成RTL級(jí)VHDL或Verilog語(yǔ)言。其主要的優(yōu)勢(shì)在于,
1)電路設(shè)計(jì)速度快,迅速產(chǎn)生產(chǎn)品原型,估算電路的面積、功耗和性能。在算法中使用C或者C++語(yǔ)言較便捷,相比傳統(tǒng)的手工RTL代碼,IP的開發(fā)時(shí)間縮短2~3倍。同時(shí)IP可以被重用。
2)協(xié)同仿真時(shí)間短。相比RTL級(jí)的仿真,設(shè)計(jì)者能夠?qū)λO(shè)計(jì)IP進(jìn)行協(xié)同仿真,即用C或C++語(yǔ)言對(duì)IP的抽象描述級(jí)進(jìn)行測(cè)試,同時(shí)部分高層次綜合工具可以識(shí)別C++語(yǔ)言并自動(dòng)生成system C語(yǔ)言對(duì)輸出的行為級(jí)測(cè)試,并比較兩者的結(jié)果。
3)IP仿真/驗(yàn)證時(shí)間短。相比RTL的仿真時(shí)間,C語(yǔ)言的仿真速度要快10倍。利用這個(gè)特點(diǎn),設(shè)計(jì)者也能夠驗(yàn)證IP功能的準(zhǔn)確性。
在Catapult C工具中,可以通過調(diào)整間距啟動(dòng)ii值的參數(shù)方式直接影響電路面積大小和速度快慢。其優(yōu)勢(shì)在于快速設(shè)計(jì)迅速評(píng)估電路特性;在抽象級(jí)層面和行為級(jí)層面協(xié)同仿真,保證設(shè)計(jì)功能的準(zhǔn)確性;重用代碼減少設(shè)計(jì)者重復(fù)書寫代碼時(shí)間。
遞歸型IIR濾波器[14-20]在信號(hào)處理、多媒體技術(shù)、模式識(shí)別、人工智能等方面已得到廣泛應(yīng)用。輸入信號(hào)為x(n-k)、y(n-k)與沖擊響應(yīng)為ak、bk,其差分方程如下:
其系統(tǒng)函數(shù)為:
IIR濾波器從硬件和軟件方面實(shí)現(xiàn)及優(yōu)化較困難,其原因在于數(shù)據(jù)關(guān)聯(lián)程度高,濾波器當(dāng)前輸出結(jié)果不僅取決于輸入數(shù)據(jù)x(n-k),而且與前幾次的輸出結(jié)果y(n-k)相關(guān)。文本采用IIR11濾波器,其計(jì)算延時(shí)小、穩(wěn)定性高、實(shí)時(shí)性強(qiáng)等特點(diǎn)非常符合數(shù)字圖像的應(yīng)用。IIR11的第一個(gè)1表示一個(gè)輸入數(shù)據(jù)x(n),第二個(gè)1表示前一次輸出數(shù)據(jù)y(n-1)。
該濾波器用于圖像中平滑處理,平滑參數(shù)為α,取值范圍0~1之間。當(dāng)α的值為0.5時(shí),表示圖像的噪音很多;當(dāng)α的值為0.8時(shí),表示圖像的噪音少;當(dāng)α的值為1時(shí),表示圖像的噪音較少。在計(jì)算中,本文假設(shè)輸入、輸出為8位,中間計(jì)算結(jié)果為16位。從硬件角度看,上面操作完全能夠用ASIC或FPGA中的VHDL語(yǔ)言實(shí)現(xiàn)。Catapult C高層次綜合工具有ac_int和ac_fixed類型以實(shí)現(xiàn)數(shù)據(jù)長(zhǎng)度操作。同時(shí)本文的 IIR11濾波器根據(jù)文獻(xiàn)[21]提出的?=e-α,用 2的次方形式,長(zhǎng)度為 3位表示?,即?=2-1?1+2-2?2+2-3?3。其優(yōu)勢(shì)是讓移位操作代替乘法操作,簡(jiǎn)化后得到:
從算法的角度得到IIR11濾波器3種形式:一般式、系數(shù)式和延遲式。一般式是由2個(gè)乘法與1個(gè)加法運(yùn)算組成,如式(4)。表1中需要加入糾正項(xiàng)r以彌補(bǔ)進(jìn)位導(dǎo)致的精度損失。計(jì)算結(jié)果右移8位以保證輸出結(jié)果長(zhǎng)度為8位,用Q8表示。本文采用的濾波器計(jì)數(shù)都從i=1開始,輸出信號(hào)值復(fù)制輸入信號(hào)的值。讀取與寫入數(shù)據(jù)分別在兩個(gè)不同的內(nèi)存中以避免同時(shí)訪問內(nèi)存地址引起沖突。
表1 IIR11濾波算法一般式Reg版
Rot版與Reg版相比,增加了移位寄存器以保存數(shù)據(jù)用于下次計(jì)算。將式(4)中的平滑系數(shù)?展開,得到式(5)。式(5)乘法的個(gè)數(shù)由2個(gè)降低到1個(gè),加法的個(gè)數(shù)為2個(gè)和1個(gè)移位操作。即在Q8定點(diǎn)式中需要x0乘以28,或者左移8位,如表2所示。
表2 IIR11濾波算法系數(shù)式—Reg版
為了避免y(n)和y(n-1)相關(guān)聯(lián),本文采用y(n-2)項(xiàng)代替y(n-1)并代入到式(4)中,得到延遲式(6)。其計(jì)算的輸出結(jié)果不僅取決于x(n)和x(n-1),還與y(n-2)有關(guān),如表3所示。
表3 IIR21濾波算法延遲式—Reg
為了進(jìn)一步去除噪聲,本文采用級(jí)聯(lián)兩個(gè)非遞歸型濾波器。其連接方式有3種情況:
1)在兩個(gè)濾波器中間需要一個(gè)內(nèi)存保存第一個(gè)濾波器所有的計(jì)算結(jié)果并用于第二個(gè)濾波的計(jì)算。本文采用內(nèi)存的面積2倍大于濾波器本身,取消中間內(nèi)存有利于節(jié)約硬件面積的開銷。
2)兩個(gè)濾波器中間只需加入一個(gè)寄存器,算法如表4所示。
3)一個(gè)新的濾波器等效替代兩個(gè)級(jí)聯(lián)濾波器,算法如表5所示。
表4 2xIIR11濾波器+寄存器版
表5 IIR12濾波器等效替代版
同樣的,對(duì)于IIR12濾波器的系統(tǒng)函數(shù)為:
從編譯的角度,編譯器能夠合并多個(gè)循環(huán)體,即合并一個(gè)濾波器可以看成合并一個(gè)操作。合并的關(guān)鍵是為了節(jié)約中間內(nèi)存的使用。根據(jù)離散卷積,兩個(gè)1階的IIR11濾波器串聯(lián),可以用1個(gè)2階的IIR12濾波器以等效替代。
同樣,IIR12濾波器也有一般式、系數(shù)式和延遲式3種形式。一般式是由3個(gè)乘法與2個(gè)加法運(yùn)算組成,如式(8)。
一般式如下:
將式(8)中的平滑系數(shù)?展開,得到式(9)。式(9)乘法的個(gè)數(shù)由3個(gè)降低到2個(gè),加法的個(gè)數(shù)為4個(gè)和1個(gè)移位操作。
系數(shù)式如下:
本文采用y(n-2)和y(n-3)兩項(xiàng)代替y(n-1)并代入到式(8)中,得到延遲式(10)。其計(jì)算的輸出結(jié)果不僅取決于x(n)和x(n-1),還與y(n-2)和y(n-3)有關(guān)。
延遲式如下:
IIR12濾波器穩(wěn)定性取決于濾波器的系數(shù)的大小。圖1展示了4種算術(shù)表達(dá)式:加法+截取、加法+進(jìn)位、加法帶修正+截取和加法帶修正+進(jìn)位。當(dāng)i<0時(shí),x(i)=y(i)=255。當(dāng)i>=0時(shí),x(i)=0。當(dāng)?=0.5時(shí),經(jīng)過10次迭代后,加法+進(jìn)位和加法補(bǔ)償+進(jìn)位的操作結(jié)果y(n)趨向于0,表示上述兩個(gè)操作穩(wěn)定性高;相反,加法+截取和加法補(bǔ)償+進(jìn)位操作,y(n)在0到255數(shù)值之間震蕩,表明不穩(wěn)定。其原因是IIR12濾波器的系數(shù)a2是負(fù)數(shù)導(dǎo)致截取操作的計(jì)算結(jié)果小于0,即越界,二進(jìn)制補(bǔ)碼給予一個(gè)正數(shù)的結(jié)果。
通過多次修改最后一個(gè)系數(shù)或者同時(shí)修改3個(gè)系數(shù)可以修正系數(shù)的總和避免浮點(diǎn)型系數(shù)通過截取操作轉(zhuǎn)換成定點(diǎn)型系數(shù)可產(chǎn)生系數(shù)總和的錯(cuò)誤。
圖1 濾波算法4種算術(shù)表達(dá)式穩(wěn)定性測(cè)試
本實(shí)驗(yàn)環(huán)境在Intel多核CPU 3.2 GHz、Solaris Sun平臺(tái)上,使用ST公司的CMOS 65納米工藝庫(kù)和Design Compile工具測(cè)試不同形式IIR濾波器的優(yōu)化轉(zhuǎn)換方法,得到電路面積、功耗、工作頻率和吞吐量等數(shù)據(jù)結(jié)果。通過計(jì)算總時(shí)間與總功耗的乘積再除以總像素點(diǎn),得到單位像素點(diǎn)的能耗,用cpp表示。
表6、7反映了3種形式算法在一定頻率下,最優(yōu)的面積和最佳功耗。相同頻率下,延遲式的面積和能耗比一般式和系數(shù)式高20%。但是一般式和系數(shù)式最高工作頻率達(dá)到400兆赫,而延遲式最高工作頻率達(dá)到800兆赫。說明采用延遲式的速度比其他的形式要快2倍。從另一個(gè)方面看,采用65納米工藝技術(shù),延遲式的工作頻率最高。
表8描述了單個(gè)IIR濾波器一般式和系數(shù)式不同版本算法的最佳面積和最優(yōu)能耗。相比一般式SP+Reg版本,系數(shù)式中SP+Rot版本的面積和能耗是最低的,在面積和能耗方面節(jié)約了20%和58%,其間距啟動(dòng)值為1。
從表9、10看,在兩個(gè)濾波器級(jí)聯(lián)中面積和能耗方面表現(xiàn)最佳的版本同樣為系數(shù)式的SP+Rot。2xIIR11寄存器版中,相比一般式SP+Reg版本,系數(shù)式中SP+Rot版本的面積和能耗方面節(jié)約了1.24倍和3倍;而2xIIR11寄存器版的SP+Rot在面積和能耗方面比IIR12等效替代版SP+Rot分別降低12%和14%。
從表8、9和10看,2xIIR11寄存器版的SP+Rot在面積和能耗方面比雙倍的IIR11濾波的SP+Rot版減少了58%和25%。
當(dāng)兩個(gè)濾波器級(jí)聯(lián)時(shí),寄存器版算法不足在于重新修改代碼,造成設(shè)計(jì)者額外的時(shí)間開銷。而IIR12等效替代版只需要事先計(jì)算濾波器的系數(shù)就可以直接替代,方便簡(jiǎn)單。在實(shí)際工作中,設(shè)計(jì)者可以選擇使用合適的方式進(jìn)行電路設(shè)計(jì)。
表6 IIR12濾波一般式和系數(shù)式算法的最佳面積與最優(yōu)能耗
表7 IIR12濾波延遲式算法的最佳面積與最優(yōu)能耗
表8 IIR11濾波算法的最佳面積與最優(yōu)能耗
表9 2xIIR11濾波算法的面積與能耗
表10 IIR12濾波算法的面積與能耗
本文采用Catapult C高層次綜合工具,通過對(duì)遞歸型IIR濾波器算法的優(yōu)化,分析和評(píng)估了算法轉(zhuǎn)換對(duì)電路設(shè)計(jì)中面積和能耗的影響。其結(jié)果在科學(xué)方面,電路的面積減少58%,能耗降低25%,達(dá)到綠色環(huán)保目標(biāo);在經(jīng)濟(jì)方面,設(shè)計(jì)開發(fā)電路時(shí)間縮短2倍以上,使產(chǎn)品更早投入市場(chǎng)。下一步工作將對(duì)算法在專用微處理器STxP70和通用微處理器Neon上的能耗與面積進(jìn)一步研究,以評(píng)估不同工具對(duì)IIR遞歸型濾波性能、面積和能耗的影響。
[1]胡宏梅.基于VHDL語(yǔ)言的數(shù)字鐘層次化設(shè)計(jì)與實(shí)現(xiàn)[J].電氣自動(dòng)化,2016,38(1):113-115.
[2]Suresh S.Vhdl implementation of manchester encoder and decoder[J].International Journal of Electrical Electronicsamp;Data Communication,2015,293(6):96-97.
[3]董青,朱洪翔,祁曉鵬.基于FPGA視頻合成系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2016,24(4):247-249.
[4]樊宗智,周煦林,劉彬.基于高層次綜合的JPEG編碼器設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2015(6):32-35.
[5]Bandyopadhyay S,Sarkar D,Mandal C.Validating SPARK:high level synthesis compiler[C]//ISVLSI.2015:195-198.
[6]Nane R,Sima V M,Pilato C,et al.A survey and evaluation of FPGA high-level synthesis tools[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2015:1-1.
[7]Gal B L,Casseau E.Latency-sensitive high-level synthesis for multiple word-length DSP design[J].Eurasip Journal on Advances in Signal Processing,2011,2011(1):1-11.
[8]George N,Novo D,Rompf T,et al.Making domain-specific hardware synthesis tools costefficient[M].2013.
[9]Coussy P,Heller D,Chavet C.High-Level Synthesis:On the path to ESL design[C]//IEEE International Conference on Asic.IEEE,2011:1098-1101.
[10]Damak T,Ayadi L A,Masmoudi N,et al.HLS and manual design methodology for H.264/AVC deblocking filter[C]//World Congress on Information Technology and Computer Applications Congress.2015.
[11]李楊.基于CatapultC Synthesis的圖像校正算法設(shè)計(jì)[J].電子測(cè)量技術(shù),2016,39(7):92-95.
[12]謝正,張開鋒.基于Catapult C的DCT算法設(shè)計(jì)[J].信息化研究,2011,37(4):42-45.
[13]秦貴軍.基于Catapult C的汽車輪胎力估計(jì)的FPGA實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2013.
[14]耶曉東.基于Matlab的IIR數(shù)字濾波器設(shè)計(jì)及DSP實(shí)現(xiàn)[J].電子設(shè)計(jì)工程,2011,19(9):175-177.
[15]毛軍勇,陳立家,劉名果.基于結(jié)構(gòu)進(jìn)化的無(wú)限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì)方法[J].計(jì)算機(jī)應(yīng)用,2015,35(5):1250-1254.
[16]郭亞琴,秦燕.IIR數(shù)字濾波器設(shè)計(jì)與實(shí)現(xiàn)[J].軟件導(dǎo)刊,2015(4):84-86.
[17]趙海軍,李敏,李明東,等.一種基于快速陣列算法實(shí)現(xiàn)的IIR數(shù)字濾波器[J].云南大學(xué)學(xué)報(bào):自然科學(xué)版,2016,38(2):219-224.
[18]王紅琳,常翠寧,李志南,等.改進(jìn)教與學(xué)優(yōu)化算法的IIR數(shù)字濾波器設(shè)計(jì)[J].計(jì)算機(jī)仿真,2015,32(11):259-263.
[19]毛軍勇,陳立家,劉名果.基于結(jié)構(gòu)進(jìn)化的無(wú)限沖激響應(yīng)數(shù)字濾波器設(shè)計(jì)方法[J].計(jì)算機(jī)應(yīng)用,2015,35(5):1250-1254.
[20]劉鑫,王勝奎,李廣良,等.基于FPGA的IIR數(shù)字濾波器實(shí)現(xiàn)及其量化字長(zhǎng)效應(yīng)分析[J].電子設(shè)計(jì)工程,2014(15):23-26.
[21]Demigny D,Lorca F G,Kessal L.From the architectural design to the algorithm.An example:The Deriche edge detector[J].TraitementDu Signal,1997,85(6):496-509.
Research on Catapult C tool and optimization algorithm of recursive filter
YE Hai?xiong,TAO Ning?rong,WANG Shi?ming
(School of Engineering Science and Technology,Shanghai Ocean University,Shanghai201306,China)
Using High-Level Synthesis(HLS)method to design Very Large Scale Integrated(VLSI)circuit is an advanced work.The design philosophy is to shorten the developing time and accelerate the time to market under guarantying the performance.However the problem limited the compiler of High-Level synthesis tool to algorithm transformation optimization,this paper based on the Infinite Impulse Response(IIR)recursive filter in signal processing as an example,we analyzed and evaluated the impacts on the algorithm optimization transformation to the HLS tool Catapult C.The experimental results showed the circuit 58%on area and 25%on energy consumption,meeting the requirements of low carbon and ecologic energy.
high level synthesis;very large scale integrated circuit;signal processing;recursive filter;area;energy consumption
TN4
A
1674-6236(2017)22-0010-05
2016-12-05稿件編號(hào):201612023
國(guó)家自然科學(xué)基金項(xiàng)目(71501125);上海市青年教師高校新進(jìn)教師培訓(xùn)及科研啟動(dòng)基金(ZZHY14033)
葉海雄(1982—),男,浙江象山人,博士,講師。研究方向:信號(hào)圖像處理、嵌入式系統(tǒng)、集成電路設(shè)計(jì)。