本發(fā)明涉及eda驗(yàn)證領(lǐng)域,特別是涉及一種關(guān)鍵路徑優(yōu)化方法、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、當(dāng)芯片設(shè)計(jì)完成時(shí),需要通過仿真處理器對芯片設(shè)計(jì)進(jìn)行仿真。芯片設(shè)計(jì)是針對物理處理器進(jìn)行的設(shè)計(jì),而仿真使用的處理器一般采用fpga等芯片。由于物理處理器和仿真處理器不是同一種類型的處理器,兩者的標(biāo)準(zhǔn)單元庫不同。因此,為了使用仿真處理器對芯片設(shè)計(jì)進(jìn)行仿真,需要對芯片設(shè)計(jì)進(jìn)行適應(yīng)性的修改之后再劃分給相應(yīng)的仿真處理器。例如,對于原芯片設(shè)計(jì)中的時(shí)序邏輯單元,需要替換為時(shí)鐘模型。在劃分的步驟完成之后,需要對已經(jīng)劃分給不同仿真處理器中的芯片設(shè)計(jì)進(jìn)行布線,布線的過程中涉及到關(guān)鍵路徑的優(yōu)化,優(yōu)化手段至少包括將時(shí)序網(wǎng)絡(luò)本地化和數(shù)據(jù)流本地化,優(yōu)化目的為減少關(guān)鍵路徑上的延時(shí),提高芯片性能。
2、時(shí)序網(wǎng)絡(luò)本地化(sequential?localization,sloc)通常關(guān)注通過移動(dòng)和/或復(fù)制電路單元來降低時(shí)鐘路徑的跳變次數(shù)。
3、與sloc不同,數(shù)據(jù)流本地化(data?localization,dloc)側(cè)重于通過移動(dòng)和/或復(fù)制單元來改善數(shù)據(jù)路徑的松弛度。由于dloc是一種基于動(dòng)態(tài)規(guī)劃(dynamic?programming,dp)的方法,因此在啟發(fā)式算法中不允許移動(dòng)和/或復(fù)制時(shí)序邏輯單元,因?yàn)橐苿?dòng)時(shí)序邏輯單元將導(dǎo)致時(shí)序圖中的死循環(huán),這將違反dp的最佳條件。
4、由于sloc和dloc所采用的方法本質(zhì)上彼此存在顯著差異,它們在傳統(tǒng)的本地化框架中通常被分別執(zhí)行。這種框架存在幾個(gè)不足之處:
5、第一,由于loc和dloc是分開的單獨(dú)的步驟,它們的結(jié)果將在完成后立即提交到網(wǎng)表。sloc和loc之間的時(shí)序結(jié)構(gòu)完全不同,很難將彼此的優(yōu)化結(jié)果和優(yōu)化進(jìn)程進(jìn)行關(guān)聯(lián),導(dǎo)致冗余復(fù)制。
6、第二,傳統(tǒng)的時(shí)序網(wǎng)絡(luò)本地化sloc主要基于網(wǎng)表,無法準(zhǔn)確地模擬時(shí)序關(guān)鍵性。因此很容易出現(xiàn)面積溢出和冗余復(fù)制的問題。相較于面積溢出會(huì)導(dǎo)致本地化失敗,冗余復(fù)制的問題更為棘手,因?yàn)槿哂鄰?fù)制會(huì)生成更多的需要優(yōu)化的端點(diǎn),這導(dǎo)致芯片間連線更多和更差的質(zhì)量(qor)。
技術(shù)實(shí)現(xiàn)思路
1、針對第一個(gè)技術(shù)問題,本發(fā)明采用的技術(shù)方案為:一種關(guān)鍵路徑優(yōu)化方法,所述方法包括如下步驟:
2、s100,獲取時(shí)序依賴圖,包括:
3、s110,獲取詳細(xì)時(shí)序圖dtg,其中,dtg中包括多個(gè)節(jié)點(diǎn)以及節(jié)點(diǎn)之間的邊,每個(gè)節(jié)點(diǎn)為時(shí)序邏輯單元或者組合邏輯單元的一個(gè)引腳,每條邊為時(shí)序弧。
4、s120,獲取數(shù)據(jù)流本地化dloc中的固定單元。
5、s130,遍歷dtg中的節(jié)點(diǎn),生成基于引腳的時(shí)序依賴圖pin_tdg;其中,當(dāng)遍歷第i個(gè)節(jié)點(diǎn)時(shí),i的取值范圍為1到n,n為dtg中的節(jié)點(diǎn)數(shù)量,包括以下步驟:
6、s131,當(dāng)?shù)趇個(gè)節(jié)點(diǎn)為錨點(diǎn)時(shí),則直接遍歷第i+1個(gè)節(jié)點(diǎn);其中,第i個(gè)節(jié)點(diǎn)為錨點(diǎn)的條件包括第i個(gè)節(jié)點(diǎn)為端口、第i個(gè)節(jié)點(diǎn)屬于所述固定單元的引腳、和/或第i個(gè)節(jié)點(diǎn)為時(shí)序邏輯單元的引腳。
7、s132,否則,第i個(gè)節(jié)點(diǎn)為浮動(dòng)節(jié)點(diǎn),將第i個(gè)節(jié)點(diǎn)及其邊合并到與第i個(gè)節(jié)點(diǎn)直接相連的錨點(diǎn)中,合并完成后,遍歷第i+1個(gè)節(jié)點(diǎn)。
8、s200,基于時(shí)序依賴圖對時(shí)序網(wǎng)絡(luò)和數(shù)據(jù)流的關(guān)鍵路徑上的時(shí)序邏輯進(jìn)行本地化,得到本地化結(jié)果。
9、此外,本發(fā)明還提供了一種非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令或至少一段程序,所述至少一條指令或所述至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)上述方法。
10、此外,本發(fā)明還提供了一種電子設(shè)備,包括處理器和上述非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì)。
11、本發(fā)明至少具有以下有益效果:
12、本發(fā)明提供了一種關(guān)鍵路徑優(yōu)化方法、電子設(shè)備及存儲介質(zhì),其通過獲取時(shí)序依賴圖,并基于時(shí)序依賴圖對時(shí)序網(wǎng)絡(luò)和數(shù)據(jù)流的關(guān)鍵路徑上的時(shí)序邏輯進(jìn)行本地化得到本地化結(jié)果。其中,時(shí)序依賴圖的獲取是通過遍歷dtg中的節(jié)點(diǎn),在遍歷的過程中判斷當(dāng)前節(jié)點(diǎn)是否為錨點(diǎn),當(dāng)不是錨點(diǎn)時(shí),將浮動(dòng)節(jié)點(diǎn)合并入直接相連的錨點(diǎn)中,得到一個(gè)只包含錨點(diǎn)的時(shí)序依賴圖?;跁r(shí)序依賴圖優(yōu)化關(guān)鍵路徑能夠?qū)r(shí)序網(wǎng)絡(luò)和數(shù)據(jù)流本地化進(jìn)行關(guān)聯(lián),兩者之間不再是兩個(gè)完全獨(dú)立的過程,解決了現(xiàn)有技術(shù)中時(shí)序網(wǎng)絡(luò)和數(shù)據(jù)流本地化相互獨(dú)立無法關(guān)聯(lián)優(yōu)化的技術(shù)問題。
1.一種關(guān)鍵路徑優(yōu)化方法,其特征在于,所述方法包括如下步驟:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,s100還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,s200還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述s212還包括第二種時(shí)鐘路徑的獲取步驟包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,s200還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,s200還包括:
7.根據(jù)權(quán)利要求3所述的方法,其特征在于,通過以下步驟對第一時(shí)鐘路徑和第二時(shí)鐘路徑的長度進(jìn)行優(yōu)化,優(yōu)化步驟包括:首先從所有m1節(jié)點(diǎn)開始進(jìn)行反向和正向搜索算法,當(dāng)遇到m2節(jié)點(diǎn)時(shí)停止,將所有遍歷到的節(jié)點(diǎn)標(biāo)記為待優(yōu)化節(jié)點(diǎn);從待優(yōu)化節(jié)點(diǎn)中的m2節(jié)點(diǎn)出發(fā),對所有待優(yōu)化節(jié)點(diǎn)進(jìn)行反向標(biāo)記,將出發(fā)節(jié)點(diǎn)所在的處理器添加到遍歷到的節(jié)點(diǎn)的目標(biāo)處理器集合中。
8.根據(jù)權(quán)利要求3、4或7所述的方法,其特征在于,所述搜索算法為深度優(yōu)先搜索算法或者廣度優(yōu)先搜索。
9.一種非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì),所述存儲介質(zhì)中存儲有至少一條指令或至少一段程序,其特征在于,所述至少一條指令或所述至少一段程序由處理器加載并執(zhí)行以實(shí)現(xiàn)如權(quán)利要求1-8中任意一項(xiàng)的所述方法。
10.一種電子設(shè)備,其特征在于,包括處理器和權(quán)利要求9中所述的非瞬時(shí)性計(jì)算機(jī)可讀存儲介質(zhì)。