專利名稱:流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法
技術(shù)領(lǐng)域:
本發(fā)明涉及硬件設(shè)計自動化技術(shù)領(lǐng)域,具體涉及一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法。
背景技術(shù):
C-to-RTL綜合是指將算法描述層的C程序直接轉(zhuǎn)換為晶體管層(Regi stertransfer level)的HDL (硬件描述語言)程序,屬于硬件設(shè)計自動化中高層次綜合的一種。通過C-to-RTL綜合技術(shù)可以快速自動的完成傳統(tǒng)需要人工耗費大量時間的HDL設(shè)計工作??傮w來講,C-to-RTL綜合有如下優(yōu)勢:(1)、縮短了硬件設(shè)計時間、簡化了設(shè)計難度,這使得它成為解決高速增長的硬件設(shè)計需求與低速增長的設(shè)計能力之間矛盾的有效途徑;、拉近了軟件設(shè)計和硬件設(shè)計的距離,使得軟硬件協(xié)同設(shè)計得到支持。鑒于上述優(yōu)勢,C-to-RTL綜合無論在學(xué)術(shù)界還是在工業(yè)界都得到了廣泛的關(guān)注。然而現(xiàn)存的C-to-RTL綜合技術(shù)依然存在著很多沒有解決的問題,例如:(I)、在綜合大規(guī)模C程序時,綜合結(jié)果的質(zhì)量很不理想;(2)、用戶無法對綜合結(jié)果的性能(吞吐率、面積等)做出優(yōu)化設(shè)置以及給定約束條件。造成這些問題的根本原因主要在于:高層次或系統(tǒng)級的硬件架構(gòu)的設(shè)計與優(yōu)化并沒有被考慮以及C語言無法表達(dá)硬件中的時序、并行、架構(gòu)等。綜上所述,一種能夠?qū)α魉€劃分及模塊并行進(jìn)行優(yōu)化的C-to-RTL綜合方法是亟待提供的。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題本發(fā)明的目的在于提供一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,用于在C-to-RTL綜合過程中,同時對流水線劃分及模塊并行進(jìn)行優(yōu)化,從而增強(qiáng)C-to-RTL綜合技術(shù)實用性以及適用范圍,為硬件設(shè)計提供有力的技術(shù)支持。(二)技術(shù)方案本發(fā)明技術(shù)方案如下:一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,包括步驟:S1.分別綜合C程序中每一個待綜合函數(shù)并獲取綜合后函數(shù)參數(shù); S2.設(shè)定優(yōu)化目標(biāo)及約束條件;S3.結(jié)合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度;S4.綜合流水線劃分后得到模塊并根據(jù)所述模塊并行程度進(jìn)行模塊并行;S5.將并行的各個模塊連接為整體系統(tǒng)。優(yōu)選的,所述待綜合函數(shù)的連接拓?fù)潢P(guān)系為直線型。優(yōu)選的,所述函數(shù)參數(shù)包括函數(shù)運(yùn)算周期、運(yùn)算數(shù)據(jù)量以及面積。
優(yōu)選的,所述優(yōu)化目標(biāo)包括吞吐率最大化以及面積最小化;所述約束條件包括吞吐率約束以及面積約束。優(yōu)選的,所述步驟S3中,根據(jù)混合整數(shù)線性規(guī)劃方法,結(jié)合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度。優(yōu)選的,所述步驟S3包括:S311.根據(jù)所述函數(shù)參數(shù)計算流水線劃分后所有可能得到的模塊的參數(shù);S312.根據(jù)所述模塊的參數(shù)以及優(yōu)化目標(biāo)和約束條件構(gòu)建混合整數(shù)線性規(guī)劃模型;S313.求解所述混合整數(shù)線性規(guī)劃模型得到一維非負(fù)整數(shù)數(shù)組;所述一維非負(fù)整數(shù)數(shù)組第η位為零表示將第η個函數(shù)以及與其連接的第η+1個函數(shù)劃分到同一模塊;第η位非零表示第η個函數(shù)所在模塊的并行度。優(yōu)選的,所述模塊的參數(shù)包括模塊吞吐率、模塊面積及模塊并行上限。優(yōu)選的,所述步驟S3中,根據(jù)啟發(fā)式算法,結(jié)合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度。優(yōu)選的,所述步驟S3包括:S321.設(shè)定滿足所述吞吐率約束的初始并行度;S322.根據(jù)所述初始并行度以面積最小為目標(biāo)確定流水線模塊劃分并計算劃分后整體系統(tǒng)面積;S323.判斷整體系統(tǒng)面積是否滿足所述面積約束:是:則增大所述初始并行度,跳轉(zhuǎn)至步驟S322 ;否:回溯上一次并行度設(shè)定以及流水線劃分作為計算結(jié)果。優(yōu)選的,所述步驟S322包括:建立拓?fù)鋱D;其中,節(jié)點表示在所述初始并行度下所有可能劃分的模塊,存在實際連接的模塊之間用邊連接,邊的權(quán)值表示其連接的源節(jié)點的面積;在所述拓?fù)鋱D中加入開始節(jié)點以及結(jié)束節(jié)點;以開始節(jié)點以及結(jié)束節(jié)點之間路徑最短為目標(biāo)求解。(三)有益效果對于硬件設(shè)計而言,流水線和并行的結(jié)構(gòu)是提高硬件性能的兩個最有效手段;而本發(fā)明的一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,通過在C-to-RTL綜合過程中,同時對流水線劃分及模塊并行進(jìn)行優(yōu)化;同時,相比于采用兩個優(yōu)化過程分步優(yōu)化的方法,本發(fā)明的方法保證了全局的最優(yōu)性。因此,本發(fā)明增強(qiáng)了 C-to-RTL綜合技術(shù)實用性以及適用范圍,為硬件設(shè)計提供有力的技術(shù)支持。
圖1是本發(fā)明的一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法流程示意圖;圖2是本發(fā)明圖1中根據(jù)啟發(fā)式算法計算流水線劃分和模塊并行策略的整體流程示意圖;圖3是本發(fā)明圖1中根據(jù)啟發(fā)式算法計算劃分策略時的拓?fù)鋱D。
具體實施例方式下面結(jié)合附圖和實施例,對發(fā)明的具體實施方式
做進(jìn)一步描述。以下實施例僅用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。流程圖如圖1所示的一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,主要包括以下步驟:S1.采用現(xiàn)有C-to-RTL工具,預(yù)先對輸入的C程序中每一個待綜合函數(shù)進(jìn)行綜合,然后提取或者計算綜合后函數(shù)參數(shù);其中,C程序要求由N函數(shù)組成,這些所述待綜合函數(shù)的連接拓?fù)潢P(guān)系為直線型,這個要求可以通過修改C程序的編程風(fēng)格實現(xiàn)。其中,所述函數(shù)參數(shù)包括函數(shù)運(yùn)算周期、運(yùn)算數(shù)據(jù)量以及面積等,可以通過仿真和邏輯綜合得到;具體如表I中所示。表I第η個函數(shù)Fn的參數(shù)
權(quán)利要求
1.種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,其特征在于,包括步驟:別綜合C程序中每一個待綜合函數(shù)并獲取綜合后函數(shù)參數(shù);定優(yōu)化目標(biāo)及約束條件;合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度;合流水線劃分后得到模塊并根據(jù)所述模塊并行程度進(jìn)行模塊并行;并行的各個模塊連接為整體系統(tǒng)。
2.據(jù)權(quán)利要求1所述的C-to-RTL綜合方法,其特征在于,所述待綜合函數(shù)的連接拓?fù)潢P(guān)系為直線型。
3.據(jù)權(quán)利要求1所述的C-to-RTL綜合方法,其特征在于,所述函數(shù)參數(shù)包括函數(shù)運(yùn)算周期、運(yùn)算數(shù)據(jù)量以及面積。
4.據(jù)權(quán)利要求1所述的C-to-RTL綜合方法,其特征在于,所述優(yōu)化目標(biāo)包括吞吐率最大化以及面積最小化;所述約束條件包括吞吐率約束以及面積約束。
5.據(jù)權(quán)利要求1-4任意一項所述的C-to-RTL綜合方法,其特征在于,所述步驟S3中,根據(jù)混合整數(shù)線性規(guī)劃方法,結(jié)合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度。
6.據(jù)權(quán)利要求5所述的C-to-RTL綜合方法,其特征在于,所述步驟S3包括:據(jù)所述函數(shù)參數(shù)計算流水線劃分后所有可能得到的模塊的參數(shù);據(jù)所述模塊的參數(shù)以及優(yōu)化目標(biāo)和約束條件構(gòu)建混合整數(shù)線性規(guī)劃模型;解所述混合整數(shù)線性規(guī)劃模型得到一維非負(fù)整數(shù)數(shù)組;所述一維非負(fù)整數(shù)數(shù)組第n位為零表示將第n個函數(shù)以及與其連接的第n+1個函數(shù)劃分到同一模塊;第n位非零表示第n個函數(shù)所在模塊的并行度。
7.據(jù)權(quán)利要求6所述的C-to-RTL綜合方法,其特征在于,所述模塊的參數(shù)包括模塊吞吐率、模塊面積以及并行上限。
8.據(jù)權(quán)利要求1-4任意一項所述的C-to-RTL綜合方法,其特征在于,所述步驟S3中,根據(jù)啟發(fā)式算法,結(jié)合所述函數(shù)參數(shù)以及優(yōu)化目標(biāo)和約束條件,確定流水線模塊劃分以及模塊并行程度。
9.據(jù)權(quán)利要求8所述的C-to-RTL綜合方法,其特征在于,所述步驟S3包括:定滿足所述吞吐率約束的初始并行度;據(jù)所述初始并行度以面積最小為目標(biāo)確定流水線模塊劃分并計算劃分后整體系統(tǒng)面積;斷整體系統(tǒng)面積是否滿足所述面積約束: 是:則增大所述初始并行度,跳轉(zhuǎn)至步驟S322 ; 否:回溯上一次并行度設(shè)定以及流水線劃分作為計算結(jié)果。
10.據(jù)權(quán)利要求9所述的C-to-RTL綜合方法,其特征在于,所述步驟S322包括: 建立拓?fù)鋱D;其中,節(jié)點表示在所述初始并行度下所有可能劃分的模塊,存在實際連接的模塊之間用邊連接,邊的權(quán)值表示其連接的源節(jié)點的面積; 在所述拓?fù)鋱D中加入開始節(jié)點以及結(jié)束節(jié)點; 以開始節(jié)點以及結(jié)束節(jié)點之間路徑最短為目標(biāo)求解。
全文摘要
本發(fā)明涉及硬件設(shè)計自動化技術(shù)領(lǐng)域,具體涉及一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法。對于硬件設(shè)計而言,流水線和并行的結(jié)構(gòu)是提高硬件性能的兩個最有效手段;而本發(fā)明的一種流水線劃分及模塊并行優(yōu)化的C-to-RTL綜合方法,通過在C-to-RTL綜合過程中,同時對流水線劃分及模塊并行進(jìn)行優(yōu)化,使得在用戶給定的系統(tǒng)性能約束條件后,即可得到最優(yōu)化的流水線劃分和模塊并行的設(shè)計;同時,相比于采用兩個優(yōu)化過程分步優(yōu)化的方法,本發(fā)明的方法保證了全局的最優(yōu)性。因此,本發(fā)明增強(qiáng)了C-to-RTL綜合技術(shù)實用性以及適用范圍,為硬件設(shè)計提供有力的技術(shù)支持。
文檔編號G06F9/38GK103092573SQ20131001619
公開日2013年5月8日 申請日期2013年1月16日 優(yōu)先權(quán)日2013年1月16日
發(fā)明者李雙辰, 劉勇攀, 楊華中, 何鑫宇 申請人:清華大學(xué)