葉海雄,陶寧蓉,王世明
(上海海洋大學工程學院,上海201306)
基于Catapult C工具遞歸型濾波器設計和算法優化
葉海雄,陶寧蓉,王世明
(上海海洋大學工程學院,上海201306)
使用高層次綜合方法設計超大規模集成電路是一項前瞻性的工作。其設計理念旨在保證電路性能的前提下,縮短電路開發周期,讓產品更早投入到市場。然而針對高層次綜合工具面對算法轉換時編譯能力存在局限的問題,本文以信號處理中遞歸型濾波器為例,針對濾波器功耗的問題,通過分析濾波算法轉換以及評估高層次綜合工具對濾波器的影響。實驗結果表明,采用算法轉換及優化的方法,能使電路面積減少58%,能耗降低25%,達到低碳化、節能環保的電路設計要求。
高層次綜合;集成電路;信號處理;遞歸型濾波器;面積;能耗
在視頻流、多媒體、圖像處理、模式識別等領域設計超大規模集成電路是一項具有挑戰性的工作。傳統的設計方式通過使用硬件描述語言VHDL[1-2]或Verilog[3]完成數字系統的設計,其仿真時間長和程序缺乏靈活性,無法解決產品設計時間和產品性能、面積和能耗方面的矛盾。目前高層次綜合[4]工具解決方案能夠減少中間步驟,自動實現從高級描述抽象層面到行為級物理層面的轉換。在此領域的研究相當活躍[5-7]。文獻[8]描述了MMAlpha高層次綜合工具使用多面體模型分析并轉換循環體的能力。文獻[9]描述了高層次綜合工具Gaut從C語言通過編譯器自動轉換成硬件描述語言VHDL。文獻[10-13]描述輸入語言為C或C++語言的Catapult C高層次綜合工具編譯器自動完成接口、元器件庫選擇、時序安排等工作,生成RTL級VHDL或Verilog語言。其主要的優勢在于,
1)電路設計速度快,迅速產生產品原型,估算電路的面積、功耗和性能。在算法中使用C或者C++語言較便捷,相比傳統的手工RTL代碼,IP的開發時間縮短2~3倍。同時IP可以被重用。
2)協同仿真時間短。相比RTL級的仿真,設計者能夠對所設計IP進行協同仿真,即用C或C++語言對IP的抽象描述級進行測試,同時部分高層次綜合工具可以識別C++語言并自動生成system C語言對輸出的行為級測試,并比較兩者的結果。
3)IP仿真/驗證時間短。相比RTL的仿真時間,C語言的仿真速度要快10倍。利用這個特點,設計者也能夠驗證IP功能的準確性。
在Catapult C工具中,可以通過調整間距啟動ii值的參數方式直接影響電路面積大小和速度快慢。其優勢在于快速設計迅速評估電路特性;在抽象級層面和行為級層面協同仿真,保證設計功能的準確性;重用代碼減少設計者重復書寫代碼時間。
遞歸型IIR濾波器[14-20]在信號處理、多媒體技術、模式識別、人工智能等方面已得到廣泛應用。輸入信號為x(n-k)、y(n-k)與沖擊響應為ak、bk,其差分方程如下:

其系統函數為:

IIR濾波器從硬件和軟件方面實現及優化較困難,其原因在于數據關聯程度高,濾波器當前輸出結果不僅取決于輸入數據x(n-k),而且與前幾次的輸出結果y(n-k)相關。文本采用IIR11濾波器,其計算延時小、穩定性高、實時性強等特點非常符合數字圖像的應用。IIR11的第一個1表示一個輸入數據x(n),第二個1表示前一次輸出數據y(n-1)。
該濾波器用于圖像中平滑處理,平滑參數為α,取值范圍0~1之間。當α的值為0.5時,表示圖像的噪音很多;當α的值為0.8時,表示圖像的噪音少;當α的值為1時,表示圖像的噪音較少。在計算中,本文假設輸入、輸出為8位,中間計算結果為16位。從硬件角度看,上面操作完全能夠用ASIC或FPGA中的VHDL語言實現。Catapult C高層次綜合工具有ac_int和ac_fixed類型以實現數據長度操作。同時本文的 IIR11濾波器根據文獻[21]提出的?=e-α,用 2的次方形式,長度為 3位表示?,即?=2-1?1+2-2?2+2-3?3。其優勢是讓移位操作代替乘法操作,簡化后得到:

從算法的角度得到IIR11濾波器3種形式:一般式、系數式和延遲式。一般式是由2個乘法與1個加法運算組成,如式(4)。表1中需要加入糾正項r以彌補進位導致的精度損失。計算結果右移8位以保證輸出結果長度為8位,用Q8表示。本文采用的濾波器計數都從i=1開始,輸出信號值復制輸入信號的值。讀取與寫入數據分別在兩個不同的內存中以避免同時訪問內存地址引起沖突。


表1 IIR11濾波算法一般式Reg版
Rot版與Reg版相比,增加了移位寄存器以保存數據用于下次計算。將式(4)中的平滑系數?展開,得到式(5)。式(5)乘法的個數由2個降低到1個,加法的個數為2個和1個移位操作。即在Q8定點式中需要x0乘以28,或者左移8位,如表2所示。


表2 IIR11濾波算法系數式—Reg版
為了避免y(n)和y(n-1)相關聯,本文采用y(n-2)項代替y(n-1)并代入到式(4)中,得到延遲式(6)。其計算的輸出結果不僅取決于x(n)和x(n-1),還與y(n-2)有關,如表3所示。


表3 IIR21濾波算法延遲式—Reg
為了進一步去除噪聲,本文采用級聯兩個非遞歸型濾波器。其連接方式有3種情況:
1)在兩個濾波器中間需要一個內存保存第一個濾波器所有的計算結果并用于第二個濾波的計算。本文采用內存的面積2倍大于濾波器本身,取消中間內存有利于節約硬件面積的開銷。
2)兩個濾波器中間只需加入一個寄存器,算法如表4所示。
3)一個新的濾波器等效替代兩個級聯濾波器,算法如表5所示。

表4 2xIIR11濾波器+寄存器版

表5 IIR12濾波器等效替代版
同樣的,對于IIR12濾波器的系統函數為:

從編譯的角度,編譯器能夠合并多個循環體,即合并一個濾波器可以看成合并一個操作。合并的關鍵是為了節約中間內存的使用。根據離散卷積,兩個1階的IIR11濾波器串聯,可以用1個2階的IIR12濾波器以等效替代。
同樣,IIR12濾波器也有一般式、系數式和延遲式3種形式。一般式是由3個乘法與2個加法運算組成,如式(8)。
一般式如下:

將式(8)中的平滑系數?展開,得到式(9)。式(9)乘法的個數由3個降低到2個,加法的個數為4個和1個移位操作。
系數式如下:

本文采用y(n-2)和y(n-3)兩項代替y(n-1)并代入到式(8)中,得到延遲式(10)。其計算的輸出結果不僅取決于x(n)和x(n-1),還與y(n-2)和y(n-3)有關。
延遲式如下:

IIR12濾波器穩定性取決于濾波器的系數的大小。圖1展示了4種算術表達式:加法+截取、加法+進位、加法帶修正+截取和加法帶修正+進位。當i<0時,x(i)=y(i)=255。當i>=0時,x(i)=0。當?=0.5時,經過10次迭代后,加法+進位和加法補償+進位的操作結果y(n)趨向于0,表示上述兩個操作穩定性高;相反,加法+截取和加法補償+進位操作,y(n)在0到255數值之間震蕩,表明不穩定。其原因是IIR12濾波器的系數a2是負數導致截取操作的計算結果小于0,即越界,二進制補碼給予一個正數的結果。
通過多次修改最后一個系數或者同時修改3個系數可以修正系數的總和避免浮點型系數通過截取操作轉換成定點型系數可產生系數總和的錯誤。

圖1 濾波算法4種算術表達式穩定性測試
本實驗環境在Intel多核CPU 3.2 GHz、Solaris Sun平臺上,使用ST公司的CMOS 65納米工藝庫和Design Compile工具測試不同形式IIR濾波器的優化轉換方法,得到電路面積、功耗、工作頻率和吞吐量等數據結果。通過計算總時間與總功耗的乘積再除以總像素點,得到單位像素點的能耗,用cpp表示。
表6、7反映了3種形式算法在一定頻率下,最優的面積和最佳功耗。相同頻率下,延遲式的面積和能耗比一般式和系數式高20%。但是一般式和系數式最高工作頻率達到400兆赫,而延遲式最高工作頻率達到800兆赫。說明采用延遲式的速度比其他的形式要快2倍。從另一個方面看,采用65納米工藝技術,延遲式的工作頻率最高。
表8描述了單個IIR濾波器一般式和系數式不同版本算法的最佳面積和最優能耗。相比一般式SP+Reg版本,系數式中SP+Rot版本的面積和能耗是最低的,在面積和能耗方面節約了20%和58%,其間距啟動值為1。
從表9、10看,在兩個濾波器級聯中面積和能耗方面表現最佳的版本同樣為系數式的SP+Rot。2xIIR11寄存器版中,相比一般式SP+Reg版本,系數式中SP+Rot版本的面積和能耗方面節約了1.24倍和3倍;而2xIIR11寄存器版的SP+Rot在面積和能耗方面比IIR12等效替代版SP+Rot分別降低12%和14%。
從表8、9和10看,2xIIR11寄存器版的SP+Rot在面積和能耗方面比雙倍的IIR11濾波的SP+Rot版減少了58%和25%。
當兩個濾波器級聯時,寄存器版算法不足在于重新修改代碼,造成設計者額外的時間開銷。而IIR12等效替代版只需要事先計算濾波器的系數就可以直接替代,方便簡單。在實際工作中,設計者可以選擇使用合適的方式進行電路設計。

表6 IIR12濾波一般式和系數式算法的最佳面積與最優能耗

表7 IIR12濾波延遲式算法的最佳面積與最優能耗

表8 IIR11濾波算法的最佳面積與最優能耗

表9 2xIIR11濾波算法的面積與能耗

表10 IIR12濾波算法的面積與能耗
本文采用Catapult C高層次綜合工具,通過對遞歸型IIR濾波器算法的優化,分析和評估了算法轉換對電路設計中面積和能耗的影響。其結果在科學方面,電路的面積減少58%,能耗降低25%,達到綠色環保目標;在經濟方面,設計開發電路時間縮短2倍以上,使產品更早投入市場。下一步工作將對算法在專用微處理器STxP70和通用微處理器Neon上的能耗與面積進一步研究,以評估不同工具對IIR遞歸型濾波性能、面積和能耗的影響。
[1]胡宏梅.基于VHDL語言的數字鐘層次化設計與實現[J].電氣自動化,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視頻合成系統設計與實現[J].計算機測量與控制,2016,24(4):247-249.
[4]樊宗智,周煦林,劉彬.基于高層次綜合的JPEG編碼器設計[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的圖像校正算法設計[J].電子測量技術,2016,39(7):92-95.
[12]謝正,張開鋒.基于Catapult C的DCT算法設計[J].信息化研究,2011,37(4):42-45.
[13]秦貴軍.基于Catapult C的汽車輪胎力估計的FPGA實現[D].長春:吉林大學,2013.
[14]耶曉東.基于Matlab的IIR數字濾波器設計及DSP實現[J].電子設計工程,2011,19(9):175-177.
[15]毛軍勇,陳立家,劉名果.基于結構進化的無限沖激響應數字濾波器設計方法[J].計算機應用,2015,35(5):1250-1254.
[16]郭亞琴,秦燕.IIR數字濾波器設計與實現[J].軟件導刊,2015(4):84-86.
[17]趙海軍,李敏,李明東,等.一種基于快速陣列算法實現的IIR數字濾波器[J].云南大學學報:自然科學版,2016,38(2):219-224.
[18]王紅琳,常翠寧,李志南,等.改進教與學優化算法的IIR數字濾波器設計[J].計算機仿真,2015,32(11):259-263.
[19]毛軍勇,陳立家,劉名果.基于結構進化的無限沖激響應數字濾波器設計方法[J].計算機應用,2015,35(5):1250-1254.
[20]劉鑫,王勝奎,李廣良,等.基于FPGA的IIR數字濾波器實現及其量化字長效應分析[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稿件編號:201612023
國家自然科學基金項目(71501125);上海市青年教師高校新進教師培訓及科研啟動基金(ZZHY14033)
葉海雄(1982—),男,浙江象山人,博士,講師。研究方向:信號圖像處理、嵌入式系統、集成電路設計。