一種基于線性延時模型的高層次綜合調(diào)度方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及硬件電路結(jié)構(gòu)設(shè)計領(lǐng)域,具體涉及一種基于線性延時模型的高層次綜 合調(diào)度方法。
【背景技術(shù)】
[0002] 從20世紀(jì)60年代初期開始,微電子相關(guān)制造工藝技術(shù)的發(fā)展便遵循著英特爾公 司聯(lián)合創(chuàng)始人GordonMoore提出的預(yù)言,S卩摩爾定律--每過1. 5年,集成電路的芯片上 所集成的電路數(shù)目就將增加一倍,微處理器的效能綜合表現(xiàn)也將提升一倍。集成電路產(chǎn)品 如此極速的發(fā)展給其設(shè)計工作提出了更為苛刻的要求,也給設(shè)計者的設(shè)計效益帶來了嚴(yán)重 的問題。關(guān)于集成電路的設(shè)計工具和設(shè)計方法的進(jìn)步已經(jīng)成為推動集成電路產(chǎn)業(yè)發(fā)展的不 可或缺的部分。
[0003]當(dāng)下,集成電路的前期設(shè)計基本上通過硬件描述語言進(jìn)行開展,而主流的硬件描 述語言有Verilog語言和VHDL語言這兩種。由于集成電路的復(fù)雜度不斷上升,傳統(tǒng)EDA工 具和傳統(tǒng)寄存器傳輸級的設(shè)計方法處于極大的困境,該行業(yè)涉及的抽象水平也從原來的寄 存器傳輸級別提升至如今的電子系統(tǒng)級別,而高層次綜合技術(shù)則是用于完成上述轉(zhuǎn)變?nèi)蝿?wù) 的最關(guān)鍵的技術(shù)。
[0004] 高層次綜合的目標(biāo)是在目標(biāo)集合中得到一個滿足既定的數(shù)字系統(tǒng)的算法級行為 描述、各類用戶約束等條件的結(jié)構(gòu)。高層次綜合流程包括:編譯與轉(zhuǎn)換、算子調(diào)度、資源分 配、寄存器分配和連線網(wǎng)絡(luò)生成與優(yōu)化。其中,算子調(diào)度即調(diào)度算法是為編譯轉(zhuǎn)換生成的控 制數(shù)據(jù)流圖中的每一個操作運(yùn)算分配到各個控制步,從而得到滿足約束條件的最優(yōu)或較優(yōu) 算子調(diào)度方案,是高層次綜合流程中最為重要的一個步驟。調(diào)度算法按照其實(shí)現(xiàn)方法分類, 主要可以分為變換法、整數(shù)線性規(guī)劃法和構(gòu)造法。所述變換法是首先選用簡單易實(shí)現(xiàn)的調(diào) 度算法(例如ASAP)獲得一個最初的調(diào)度方案,然后對該調(diào)度方案進(jìn)行迭代變換,用來得到 最優(yōu)的調(diào)度結(jié)果;所述整數(shù)線性規(guī)劃(ILP)法是將調(diào)度問題轉(zhuǎn)化為整數(shù)線性規(guī)劃問題進(jìn)行 求解;而構(gòu)造法是每次先選擇一個操作,再選擇一個適當(dāng)?shù)目刂撇?,然后將該操作調(diào)度到選 定的控制步中,直到所有的操作都被調(diào)度完成。構(gòu)造法的關(guān)鍵是如何選擇下一步的調(diào)度操 作,以及如何選擇合適的控制步來放置選定的操作,而為每一個操作和運(yùn)算分配到正確的 控制步中需要對所有數(shù)據(jù)路徑所需延時有一個精確的估算。而目前的高層次調(diào)度方法中, 對數(shù)據(jù)路徑所需延時的估算方法要么算法時間復(fù)雜度高,要么估算精確度低,從而使得整 體調(diào)度效果差,已經(jīng)不能滿足集成電路設(shè)計的發(fā)展需求。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種基于線性延時模型 的高層次綜合調(diào)度方法,采用的技術(shù)方案如下: 一種基于線性延時模型的高層次綜合調(diào)度方法,包括: S1、獲取輸入的電路描述后構(gòu)建對應(yīng)的控制數(shù)據(jù)流圖; 52、 對控制數(shù)據(jù)流圖中的操作運(yùn)算進(jìn)行分類,為每一類操作運(yùn)算建立對應(yīng)的延時模 型; 53、 基于延時模型對操作運(yùn)算進(jìn)行延時估算; 54、 計算控制數(shù)據(jù)流圖中任意數(shù)據(jù)路徑的延時信息; 55、 將計算出的延時信息標(biāo)注至控制數(shù)據(jù)流圖中,并根據(jù)帶有延時信息的控制數(shù)據(jù)流 圖構(gòu)建調(diào)度圖; 56、 采用差分約束系統(tǒng)調(diào)度算法對調(diào)度圖進(jìn)行調(diào)度得到調(diào)度結(jié)果。
[0006] 本發(fā)明的一種基于線性延時模型的高層次綜合調(diào)度方法對輸入描述中包含的操 作運(yùn)算進(jìn)行合理分類,并為各類操作運(yùn)算建立對應(yīng)的線性延時模型,根據(jù)延時模型對輸入 描述中的各數(shù)據(jù)路徑進(jìn)行延時估算,并將延時估算結(jié)果提供給調(diào)度框架進(jìn)行調(diào)度,本發(fā)明 所使用的線性延時模型在保證估算的準(zhǔn)確性同時降低算法時間復(fù)雜度為多項式時間復(fù)雜 度,可以快速并準(zhǔn)確的對調(diào)度目標(biāo)函數(shù)進(jìn)行求解,從而能夠更加快速精確地生成硬件電路 結(jié)構(gòu)。
[0007] 作為優(yōu)選,所述操作運(yùn)算包括邏輯操作運(yùn)算、數(shù)學(xué)計算操作運(yùn)算和比較大小的操 作運(yùn)算,所述步驟S2包括: 將邏輯操作運(yùn)算劃分為一類并建立位級并行延時模型:dai) =D,Vi=i,式中 d(i,j)表示操作運(yùn)算從任意第i輸入位至任意第j輸出位的延時,D即為該操作運(yùn)算的關(guān) 鍵路徑延時,為常數(shù); 將數(shù)學(xué)計算操作運(yùn)算劃分為一類并建立位級線性增量延時模型:
勺模型中的每位延時增量,_為第〇輸入 位至第0輸出位的延時; 將比較大小的操作運(yùn)算劃分為一類并建立位級線性減量延時模型: 議_|:二:一一PI 最高輸入位至最高輸出位的延時,N為該算子的輸入位寬; 將邏輯操作運(yùn)算、數(shù)學(xué)計算操作運(yùn)算和比較大小的操作運(yùn)算之外的操作運(yùn)算劃分為一 類并建立黑盒模型:d(i,丨〕=.D。
[0008] 與運(yùn)算、或運(yùn)算、非運(yùn)算等邏輯運(yùn)算操作的任意第j輸出位的延時只依賴于第j輸 入位,因此將邏輯運(yùn)算操作劃分為一類;加減乘除等數(shù)學(xué)操作運(yùn)算的任意第j輸出位的延 時依賴于所有i〈=j的第i輸入位,且延時隨位數(shù)的增加而趨于線性增加,因此將數(shù)學(xué)運(yùn) 算操作劃分為一類;大于、小于、等于等比較判斷運(yùn)算操作的輸出位只有一位,且該輸出位 的延時依賴于所有輸入位并隨輸入位位數(shù)的增加而趨于線性減小,因此將比較判斷操作運(yùn) 算劃分為一類;其它一些復(fù)雜的運(yùn)算操作的位級延時無法用線性規(guī)律擬合,因此將它們劃 分為一類。
[0009] 作為優(yōu)選,所述步驟S4包括:從頂至下遍歷該數(shù)據(jù)路徑,計算該數(shù)據(jù)路徑的延時 信息,計算方法詳細(xì)如下: 當(dāng)延時模型為黑盒模型時,按照公另
汁 算數(shù)據(jù)路徑的延時信息,其中為算子V第M輸出位的延時,揉為算子V的第1 輸出位的延時為算子u的第N輸出位的延時為算子u的第1輸出位的延 時; 當(dāng)延時模型為位級并行延時模型時,按照公式
計算數(shù)據(jù)路徑 的延時信息; 當(dāng)延時模型為位級線性增量延時模型時,按照公式
計算數(shù)據(jù)路徑的延時信息,其中, 當(dāng)延時模型為位級線性減量延時模型時,按照公式
算數(shù)據(jù)路徑的延時信息,其中, A = -X (M - 1) + 。
[0010] 算子v和u是數(shù)據(jù)路徑中鏈接的兩個算子,其中算子u作為算子v的輸入,因此算 子u的輸出位即對應(yīng)算子v的輸入位,如此便可計算算子u的輸出位到算子v的輸出位的 延時,當(dāng)數(shù)據(jù)路徑有多個算子時,不斷迭代計算即可得到該數(shù)據(jù)路徑的延時結(jié)果。
[0011] 作為優(yōu)選,所述步驟S6包括: 561. 對調(diào)度圖的節(jié)點(diǎn)構(gòu)建相應(yīng)的調(diào)度變量; 562. 根據(jù)調(diào)度變量,將所有調(diào)度約束都轉(zhuǎn)化為對應(yīng)的差分約束公式后,將獲得的所有 差分約束公式轉(zhuǎn)化成整形規(guī)劃矩陣; 563. 根據(jù)高層次綜合的需求結(jié)果,構(gòu)建相應(yīng)的目標(biāo)函數(shù); 564. 將整形規(guī)劃矩陣作為目標(biāo)函數(shù)的約束條件,進(jìn)行線性規(guī)劃求解,判斷是否能求解 獲得目標(biāo)函數(shù)的最優(yōu)值,若否,則返回執(zhí)行步驟S63,反之獲得該目標(biāo)函數(shù)的最優(yōu)值,同時獲 得對應(yīng)的整形規(guī)劃矩陣的值,進(jìn)而獲得調(diào)度結(jié)果。
[0012] 與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果:本發(fā)明的一種基于線性延時模型的 高層次綜合調(diào)度方法對輸入描述中包含的操作運(yùn)算進(jìn)行合理分類,并為各類操作運(yùn)算建立 對應(yīng)的線性延時模型,根據(jù)延時模型對輸入描述中的各數(shù)據(jù)路徑進(jìn)行延時估算,并將延時 估算結(jié)果提供給調(diào)度框架進(jìn)行調(diào)度,本發(fā)明所使用的線性延時模型在保證估算的準(zhǔn)確性同 時降低算法時間復(fù)雜度為多項式時間復(fù)雜度,可以快速并準(zhǔn)確的對調(diào)度目標(biāo)函數(shù)進(jìn)行求 解,從而能夠更加快速精確地生成硬件電路結(jié)構(gòu),滿足集成電路設(shè)計的發(fā)展需求。
【附圖說明】
[0013]圖1是本發(fā)明的控制數(shù)據(jù)流圖示意圖; 圖2是本發(fā)明的流程圖; 圖3是本發(fā)明的調(diào)度圖; 圖4是本發(fā)明的位級并行模型示意圖; 圖5是本發(fā)明的位級線性增量模型示意圖; 圖6是本發(fā)明的位級線性減量模型示意圖; 圖7是應(yīng)用本發(fā)明的方法進(jìn)行測試的結(jié)果示意圖。
【具體實(shí)施方式】
[0014]下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)描述。
[0015] 實(shí)施例: 首先對控制數(shù)據(jù)流圖進(jìn)行說明,圖1是控制數(shù)據(jù)流圖示意圖,控制數(shù)據(jù)流圖是調(diào)度算 法的執(zhí)行操作對象,是包含了輸入到系統(tǒng)的電路描述中的數(shù)據(jù)運(yùn)算、數(shù)據(jù)依賴、控制跳轉(zhuǎn)等 相關(guān)信息的有向圖??刂茢?shù)據(jù)流圖可以分為節(jié)點(diǎn)和邊這兩個部分,其中,節(jié)點(diǎn)包括操作節(jié)點(diǎn) 和基礎(chǔ)塊。操