?

優先級資源共享在RTL綜合中的實現*

2013-08-19 02:45劉貴宅于芳劉忠立刁嵐松
關鍵詞:加法器延時資源共享

劉貴宅 于芳 劉忠立 刁嵐松

(1.中國科學院 微電子研究所,北京100029;2.北京飄石科技有限公司,北京 100029)

電子設計自動化(EDA)工具是現場可編程門陣列(FPGA)領域的一個重要組成部分.隨著FPGA以其特有的優勢逐步擴大應用領域,人們越來越意識到FPGA 的EDA 工具的重要性.FPGA 配套的EDA工具流程包括綜合、映射[1]、布局、布線[2]、碼流生成、碼流下載等,如圖1 所示.

圖1 FPGA EDA 流程圖Fig.1 Flowchart of FPGA EDA

寄存器傳輸級(RTL)綜合[3]處于FPGA 的EDA工具流程的最前端,將行為級的描述文件轉換為門級的網表,承擔了絕大部分的優化任務,包括針對面積、時序和功耗的優化,是FPGA 的EDA 工具重要的部分[4],綜合結果直接影響整個設計的好壞.

RTL 綜合涉及到多個知識領域,包含優化算法、計算機編譯[5]、硬件描述語言(HDL)[6]、軟件工程等,也是FPGA 的EDA 工具流程中難度最大的部分.對FPGA 綜合優化技術的深入研究十分有意義.

RTL 綜合就是將HDL 描述的設計文件轉化為門級網表并優化的過程,這個過程包括解析[7]、確立、邏輯優化、工藝映射[8].RTL 綜合過程中的優化包括對時序[9]、面積[10]和功耗的優化[11],而優先級的資源共享就是針對面積進行的優化.

資源共享是時序互斥的兩個或多個相同算術邏輯單元(ALU)用同一資源實現的方法,是FPGA 綜合中的關鍵技術之一[12],成熟的綜合工具Synplify(Synopsis 公司)、XST(Xilinx 公司)、Leonardo spectrum(Mentor 公司)均采用資源共享方案,但具體實現方案沒有公開.而開源的綜合工具(如伯克利大學的ABC[13]和Stephen Williams 團隊的Icarus[14])均未采用資源共享方案.

文中基于中國科學院微電子研究所與北京飄石科技公司聯合開發的Verilog RTL 綜合工具HqFpga,提出了一種優先級資源共享方法,通過改進普通的資源共享方法,將可共享的資源按照相同輸出、相同輸入、無共同端口的優先順序依次進行共享,以減少ALU 個數,使有限的資源得到充分利用,用較小的芯片實現更大的設計,進而實現面積優化.

1 優先級資源共享方法

文中的資源共享是將設計描述中不同時進行的相同算符(算術操作符)按照規定的順序依次進行共享,以達到優化的效果,屬于RTL 綜合中針對面積進行的優化.

1.1 優先級資源共享的約束

RTL 綜合中的優先級資源共享方法有一些約束,主要包括以下兩部分:

(1)資源共享主要針對比較復雜的算符,如* 、+、-、/等.資源共享在減少ALU 的同時,會增加多路選擇器(MUX),但總體資源減少,達到面積優化的作用.對于普通的邏輯操作(如與、或操作等),在減少邏輯操作的同時會引入MUX,總體結果面積未必減少.

(2)只有功能相同且不同時執行的算術操作才可以進行共享,而且只有互斥分支之間功能相同的算術操作才可以用同一ALU 共享實現.如if、else 或case語句的不同互斥分支,在某一時刻只有一個分支執行.

1.2 優先級資源共享的流程

優先級資源共享就是不同分支的時序互斥的相同復雜操作按照規定的優先級次序依次進行共享.

優先級資源共享的實現偽代碼如下:

優先級資源共享的步驟如下:

(1)收集所有if、else、case 互斥分支,這些互斥分支在某一時刻只有一個分支工作,滿足優先級資源共享的約束.

(2)收集互斥分支之間相同的算術操作符.該步驟僅檢測收集相同的算術操作符,不考慮普通的邏輯操作符.

(3)對于檢測到的可以共享的算術操作符,優先對輸出端口相同的算術邏輯單元進行資源共享.具有相同輸出端口的模塊,輸出端口一定會連接到同一個或同一組MUX 來選擇驅動信號,如圖2(a)所示.資源共享要先檢測輸入端是否有公用端口,若沒有公共輸入端口,則將相同的操作合并,將輸出端的MUX 分別平移到兩個輸入端口,以選擇信號驅動,如圖2(b)所示;若含有公共輸入端口,則將公共端口固定在一個輸入端口上,另一端口將輸出的MUX 平移過來,共享之后可減少ALU 的數量,如圖2(c)所示.

圖2 資源共享分解示意圖Fig.2 Schematic diagram of resource sharing decomposition

(4)對有相同輸入端口的模塊進行資源共享,其過程和步驟(3)類似,將相同的操作合并為一個操作,公共端口作為一個輸入端口,另一個輸入端口添加一個MUX 選擇輸入信號,輸出端口直接驅動兩個信號.

(5)對其他可共享的模塊進行資源共享,其過程和步驟(4)類似,分別在兩個輸入端口插入MUX來選擇驅動信號,輸出端口直接驅動兩個信號.

1.3 優先級資源共享的優點

改進的優先級資源共享的優點敘述如下.

(1)增加的MUX 數量減少

以EP1 為實例,其代碼如下:

實例EP1 不采用資源共享的綜合結果如圖3所示,包含3 個加法器和1 個MUX.

圖3 EP1 不采用資源共享的綜合結果Fig.3 Synthesis result of EP1 without resource sharing

EP1 采用非優先級的普通資源共享方法的綜合結果如圖4 所示,ADD1 和ADD3 共享,包含2 個加法器和3 個MUX,輸入到輸出的信號延時為2 級MUX 延時+2 級加法器延時.

圖4 EP1 采用普通資源共享方法的綜合結果Fig.4 Synthesis result of EP1 using normal resource sharing method

EP1 采用優先級資源共享方法的綜合結果如圖5所示,ADD2 和ADD3 共享,只包含2 個加法器和2 個MUX,與不采用資源共享方法相比減少了1個加法器,而與采用普通資源共享方法相比減少了1 個MUX,輸入到輸出的信號延時為1 級MUX 延時+2 級加法器延時.

圖5 EP1 采用優先級資源共享方法的綜合結果Fig.5 Synthesis result of EP1 using priority resource sharing method

(2)避免數據流沖突錯誤

以EP2 為實例,其代碼如下:

EP2 不采用資源共享的綜合結果如圖6 所示,該網表包含4 個加法器和1 個MUX.

圖6 EP2 不采用資源共享的綜合結果Fig.6 Synthesis result of EP2 without resource sharing

EP2 采用非優先級的普通資源共享方法的綜合結果如圖7 所示,ADD1 和ADD4 共享,ADD2 和ADD3 共享,與不采用資源共享方法相比減少了2 個加法器,增加了4 個MUX,還產生了組合回路和數據流沖突[15]的錯誤.

圖7 EP2 采用普通資源共享方法的綜合結果Fig.7 Synthesis result of EP2 using normal resource sharing method

EP2 采用優先級資源共享方法的綜合結果如圖8所示,ADD2 和ADD4 共享,ADD1 和ADD3 共享,包含2 個加法器和3 個MUX,與不采用資源共享方法相比減少了2 個加法器且不會出現組合回路,與采用普通資源共享方法相比減少了2 個MUX和2 級MUX 延時.

圖8 EP2 采用優先級資源共享方法的綜合結果Fig.8 Synthesis result of EP2 using priority resource sharing method

2 實驗結果與分析

為驗證文中優先級資源共享方法的優化效果,從工業界實際電路中隨機選取了8 個不同種類的電路進行測試.測試環境如下:CPU 為Intel core i7 CPU 870 2.93 GHz,內存為4 GB,操作系統為Windows XP,編譯環境為Visual C ++2008.運行結果網表均通過ABC[13]中的驗證工具證明其與原始電路等價.

優先級資源共享后的綜合結果和未進行資源共享的結果比較如表1 所示,主要以加法為例,比較ALU 的個數.表1 表明,優先級資源共享方法可以減少所需的ALU 個數,達到資源優化的目的.

優先級資源共享方法和普通資源共享方法所需的ALU 個數相同,主要是減少了MUX 的個數,進一步實現面積優化,具體結果如表2 所示.

表1 優先級資源共享前后的ALU 個數對比Table1 Comparison of ALU numbers before and after using priority resource sharing method

表2 優先級資源共享和普通資源共享方法的MUX 個數對比Table 2 Comparison of MUX numbers between priority resource sharing method and normal resource sharing method

表2 表明,采用優先級資源共享方法后,MUX的個數比普通資源共享方法減少了10%左右,優化效果更好.

3 結語

針對FPGA 中算術操作資源較為復雜、占用面積大且算術單元數量有限的問題,文中通過改進普通資源共享方法,提出了資源共享的優先級順序.該優先級資源共享方法不僅減少了復雜ALU 的個數,而且所需的MUX 個數也比普通資源共享方法減少了10%左右,達到了面積優化的效果.文中提出的資源共享方法僅針對ALU 進行優化,今后將進一步研究可以同時優化時序互斥的普通邏輯單元和共享時序互斥的實例的方法.

[1]Zhang Qianli,Chen Stanley L,Li Yan,et al.Mapper design for an SOI-based FPGA[C]∥Proceedings of the 10th IEEE International Conference on Solid-State and Integrated Circuit Technology.Shanghai:IEEE,2010:821-823.

[2]陳亮,李艷,李明,等.基于SRAM 的FPGA 導航布局布線方法實現與應用[J].深圳大學學報理工版,2012,29(3):217-223.Chen Liang,Li Yan,Li Ming,et al.Implementation and application of navigated place and route for an SRAMbased FPGA[J].Journal of Shenzhen University Science and Engineering,2012,29(3):217-223.

[3]Deniziak S.A symbolic RTL synthesis for LUT-based FPGAs[C]∥Proceedings of the 12th International Symposium on Design and Diagnostics of Electronic Circuits &Systems.Liberec:IEEE,2009:102-107.

[4]Piga L,Rigo S.Comparing RTL and high-level synthesis methodologies in the design of a theora video decoder IP core[C]∥Proceedings of the 5th Southern Conference on Programmable Logic.Sao Paulo:IEEE,2009:135-140.

[5]Sussman A,Lo N,Anderson T.Automatic computer system characterization for a parallelizing compiler [C]∥Proceedings of 2011 IEEE International Conference on Cluster Computing.Austin:IEEE,2011:216-224.

[6]Chinedu O K,Genevera E C,Akinyele O O.Hardware description language (HDL):an efficient approach to device independent designs for VLSI market segments [C]∥Proceedings of the 3rd IEEE International Conference on Adaptive Science and Technology.Abuja:IEEE,2011:262-267.

[7]Pakray P,Bandyopadhyay S,Gelbukh A.Dependency parser based textual entailment system[C]∥Proceedings of 2010 International Conference on Artificial Intelligence and Computational Intelligence.Sanya:IEEE,2010:393-397.

[8]Jeong C,Nowick S M.Technology mapping and cell merger for asynchronous threshold networks[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2008,27(4):659-672.

[9]Awan M,Harris F,Koch P.Time and power optimizations in FPGA-based architectures for polyphase channelizers[C]∥Proceedings of the Forty-Fifth Asilomar Conference on Signals,Systems and Computers.Pacific Grove:IEEE,2011:914-918.

[10]Cong J,Minkovich K.Optimality study of logic synthesis for LUT-based FPGAs[J].IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems,2007,26(2):230-239.

[11]Aksoy L,Costa E,Flores P,et al.Optimization of area and delay at gate-level in multiple constant multiplications[C]∥Proceedings of the 13th Euromicro Conference on Digital System Design:Architectures,Methods and Tools.Lille:IEEE,2010:3-10.

[12]Mondal S,Memik S O.Resource sharing in pipelined CDFG synthesis [C]∥Proceedings of the IEEE/ACM Asia and South Pacific Design Automation Conference.Shanghai:IEEE,2005:795-798.

[13]Berkeley Logic Synthesis and Verification Group.ABC:a system for sequential synthesis and verification,release 70319[EB/OL].(2007-10-01)[2012-10-15].http:∥www.eecs.berkeley.edu/~alanmi/abc/.

[14]Stephen W.Icarus:a Verilog simulation and synthesis tool[EB/OL].(2006-12-26)[2012-10-15].http:∥iverilog.icarus.com/.

[15]Synopsis.VHDL compiler reference manual[R].Mountain View:Synopsis,2004.

猜你喜歡
加法器延時資源共享
分段式高性能近似加法器設計
交通運輸數據資源共享交換體系探究與實現
福建省交通運輸信息資源共享平臺
基于級聯步進延時的順序等效采樣方法及實現
淺析基于verilog 的加法器設計
衛康與九天綠資源共享
三旋光結構一步無進位加法器的設計
條件推測性十進制加法器的優化設計
Two-dimensional Eulerian-Lagrangian Modeling of Shocks on an Electronic Package Embedded in a Projectile with Ultra-high Acceleration
測量學精品資源共享課建設的探索
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合