用于對路徑排名以功率優(yōu)化集成電路設(shè)計的方法和相應(yīng)計算機程序產(chǎn)品的制作方法
【專利摘要】本發(fā)明涉及一種用于對路徑排名以功率優(yōu)化集成電路設(shè)計(10)的方法,包括識別所述集成電路設(shè)計(10)的多個路徑,每個路徑包括電子器件的一個或多個實例(24、26、28、34、38、46),為所識別的路徑中的每個實例提供實例功率估計,基于對所述路徑中的實例(24、26、28、34、38、46)的實例功率估計,為每個識別的路徑提供至少一個加權(quán)功率估計;以及基于所述至少一個加權(quán)功率估計提供所述路徑的排名。本發(fā)明還涉及一種相應(yīng)計算機程序產(chǎn)品。
【專利說明】用于對路徑排名以功率優(yōu)化集成電路設(shè)計的方法和相應(yīng)計算機程序產(chǎn)品
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于對路徑排名以功率優(yōu)化集成電路設(shè)計的方法和相應(yīng)計算機
程序產(chǎn)品。
【背景技術(shù)】
[0002]集成電路的發(fā)展,特別是對于微處理器、片上系統(tǒng)、數(shù)字信號處理器(DSP)以及類似的高度集成的器件的發(fā)展,導致日益復雜的設(shè)計,其中越來越多的半導體器件被排列在越來越小的表面上。這種集成器件通常被優(yōu)化以滿足預定的時間要求。然而,特別是在移動設(shè)備變得越來越普遍以及大型計算中心力求更加高效和能源廉價使用的情況下,期望增加集成電路設(shè)計的功率效率。由于這種電路的復雜本質(zhì),通常難以識別潛在可以被功率優(yōu)化的結(jié)構(gòu)。
【發(fā)明內(nèi)容】
[0003]如所附權(quán)利要求中所描述的,本發(fā)明提供了一種用于對路徑排名以功率優(yōu)化集成電路設(shè)計的方法和相應(yīng)計算機程序產(chǎn)品。
[0004]本發(fā)明的具體實施例在從屬權(quán)利要求中被闡述。
[0005]參考下文中描述的實施例,本發(fā)明的這些或其它方面將會很明顯并且被闡述。
【專利附圖】
【附圖說明】
[0006]參考附圖,僅僅通過舉例的方式,描述了本發(fā)明的進一步細節(jié)、方面和實施例。在附圖中,類似的符號被用于識別相同的或功能相似的元素。為了簡便以及清晰,圖示了附圖中的元素,并且不一定按比例繪制所述元素。
[0007]圖1示意性地示出了一種用于對路徑排名以功率優(yōu)化集成電路設(shè)計的方法的示例的流程圖,該方法是用于功率優(yōu)化集成電路設(shè)計的方法的一部分。
[0008]圖2示出了寄存器傳輸級表示中的集成電路設(shè)計的示例的方框圖,其中最大功耗路徑被標記。
[0009]圖3顯示了圖2的示例,其中不同的路徑被標記。
【具體實施方式】
[0010]由于圖示的本發(fā)明的實施例可能大部分是使用本領(lǐng)域技術(shù)人員所熟知的電子元件、電路和軟件來實施,所以細節(jié)不會在比認為對本發(fā)明基本概念的理解以及認識有必要的程度大的任何程度上進行解釋,以不混淆或偏離本發(fā)明的教導。
[0011]在本申請的情況下,集成電路設(shè)計可以表示集成電路,特別是在設(shè)計階段期間。集成電路可以是同步電路。集成電路設(shè)計可以作為開發(fā)軟件工具的數(shù)據(jù)被存儲,并且沒有必要被物理實施。例如,集成電路設(shè)計可以被實施為物理電路的軟件或代碼表示,例如,在適合類型的硬件描述語言中。這種表示可以例如作為能夠運行模擬程序的裝置可讀的數(shù)據(jù)存儲。當數(shù)據(jù)被運行程序的裝置讀取時,該裝置執(zhí)行集成電路的功能。任何數(shù)量的半導體和/或電子器件可以被包含在集成電路設(shè)計中。集成電路設(shè)計可以被映射在不同類型的表示中。具體地,集成電路設(shè)計可以被映射成門級(GL)或寄存器傳輸級(RTL)表示。在這種表示中,可以示出寄存器和延伸到或自寄存器或寄存器組的數(shù)據(jù)路徑以及連接到寄存器的電子器件的實例。集成電路的輸入或輸出可以被認為是連接,由該設(shè)計表示的集成電路通過該連接可以連接到另外的電子或電氣器件。集成電路設(shè)計的表示可以被適當?shù)拈_發(fā)軟件使用。這種軟件可以是用于電路設(shè)計的時間優(yōu)化的軟件,或任何其它類型的半導體設(shè)計/分析軟件。
[0012]寄存器可以表示門或帶有存儲元件的門布置,該存儲元件例如但不限于觸發(fā)器,特別是D型觸發(fā)器。寄存器可以具有一個或多個輸入,以及一個或多個輸出。寄存器或寄存器組可以被布置為存儲數(shù)據(jù),特別是存儲一個或多個數(shù)據(jù)位。
[0013]實例可以通常表示包括在集成電路中的任何類型的半導體器件,例如一個或多個晶體管和/或有源器件。實例可以例如表示邏輯門、緩沖器、任何類型的寄存器、采樣級以及類似器件。邏輯門可以例如是AND (與)、0R (或)、Ν0Τ (非)、X0R (異或)、XN0R (異或非)、NAND (與非)、N0R (或非)門、這樣的門的組合或具有類似邏輯功能的門。
[0014]集成電路設(shè)計的路徑可以表示適合于在起點和終點之間進行數(shù)據(jù)傳輸?shù)倪B接。起點可以是集成電路設(shè)計的輸入或寄存器的輸出,特別是觸發(fā)器的輸出。路徑的終點可以是集成電路設(shè)計的輸出或寄存器的輸入,特別是觸發(fā)器的輸入。路徑可以例如將寄存器連接到寄存器,將寄存器連接到集成電路設(shè)計的輸入或輸出或者將集成電路設(shè)計的輸入與集成電路設(shè)計的輸出連接起來。路徑可以包括一個或多個實例。實例可以是多于一個路徑的一部分。路徑可以被認為其被連接到寄存器或集成電路設(shè)計的輸入或輸出的開始或終止。因此,在兩個寄存器之間的路徑?jīng)]有必要包括其連接到的寄存器和/或路徑?jīng)]有必要包括寄存器。然而,將一個或多個寄存器包括在路徑中是有可能的,從而導致較少數(shù)量的為集成電路設(shè)計定義的較長路徑。集成電路設(shè)計的輸入或寄存器輸出可以通過一個或多個路徑被連接到集成電路設(shè)計的一個或多個寄存器輸入和/或輸出。路徑中的線可能分叉,使得形成不同的路徑,其可以從一個起點延伸到不同的終點或通過不同的實例從一個共用起點延伸到一個共用終點。集成電路設(shè)計的路徑可以被軟件識別和/或提供,特別是被時間優(yōu)化軟件識別和/或提供。這種軟件可以基于集成電路設(shè)計的RTL或GL表示和/或在集成電路設(shè)計的RTL或GL表示中提供路徑。適當?shù)臅r間優(yōu)化軟件可以例如是通常在RTL或GL表示中運作的靜態(tài)時間分析軟件。
[0015]可以在集成電路設(shè)計上已經(jīng)執(zhí)行時間優(yōu)化之后,執(zhí)行用于檢測路徑以功率優(yōu)化集成電路設(shè)計的方法。應(yīng)注意,在這種情況下,術(shù)語“優(yōu)化”指努力改進,并且這并不一定意味著“優(yōu)化的”器件被改進了或是最優(yōu)的。
[0016]關(guān)鍵路徑可以被定義為共孚相同的起點和終點的一個或多個路徑中具有最大延遲的一個或多個路徑。因此,如果存在多個將相同的起點和相同的終點連接起來的路徑,關(guān)鍵路徑可以具有最高延遲。有可能出現(xiàn)多于一個的將相同的起點和相同的終點連接起來的關(guān)鍵路徑。在時間優(yōu)化和時間分析期間,關(guān)鍵路徑通常被特別考慮。可以預期在時間優(yōu)化之后,關(guān)鍵路徑具有類似延遲,該延遲可以是根據(jù)時間優(yōu)化要求所允許的最大延遲或松弛。[0017]對于實例,可以提供功率估計。這種功率估計可以被稱為實例功率估計。實例的功率估計可以基于相應(yīng)實例的物理測試。實例功率估計可以指基于實例的門級功率估計。實例功率估計可以是統(tǒng)計估計,例如基于實例的統(tǒng)計功率估計。庫數(shù)據(jù)可以被用于提供實例功率估計。靜態(tài)功耗估計可以被提供用于實例功率估計。庫數(shù)據(jù)可以為實例功率估計提供統(tǒng)計數(shù)據(jù)。對于給定實例的實例功率估計可以基于一個或多個這種估計。對于不同實例的實例功率估計可以基于功率估計的不同方法。
[0018]用于對路徑排名或確定路徑以功率優(yōu)化集成電路設(shè)計的方法可以包括識別集成電路設(shè)計的多個路徑,每個路徑包括電子器件的一個或多個實例。因此識別的路徑可以是關(guān)鍵路徑或非關(guān)鍵路徑。對所述多個路徑的識別可以由例如時間分析軟件的軟件執(zhí)行。集成電路設(shè)計可以被表示為RTL或GL設(shè)計。為在識別的路徑中的實例提供實例功率估計可以例如由適當?shù)能浖?zhí)行。對于每個路徑,可以基于路徑中的實例的實例功率估計提供至少一個加權(quán)功率估計。這可以例如也由軟件執(zhí)行。該軟件可以與提供實例功率估計的軟件是相同的軟件,可以通過適當?shù)慕涌诒贿B接到這樣的軟件或可以在這樣的軟件提供的數(shù)據(jù)上運作。通常,單獨路徑的加權(quán)功率估計P可以通過執(zhí)行操作被計算,該操作可以用下面的數(shù)學公式描述:
[0019]
T- " (I)
[0020]其中i指示路徑中的實例的計數(shù),%是被給予該示例i的加權(quán)系數(shù),并且f (Pi)對應(yīng)于實例i的實例功率估計。f (Pi)可能指示Pi的任何函數(shù),例如,像Pi2的Pi的乘方或Pi的多項式的任何形式。
[0021]該方法也可以包括基于所述至少加權(quán)功率估計提供路徑的排名。提供該排名可以被執(zhí)行以確定用于功率優(yōu)化的候選路徑和/或確定用于功率優(yōu)化的路徑。提供該排名也可以由上述提到的適當?shù)能浖?zhí)行。該排名對于路徑所基于的加權(quán)功率估計值越高,路徑可以被排名的越高。對路徑提供實例功率估計或加權(quán)功率估計可以包括生成和/或計算相應(yīng)估計。為了這個目的,關(guān)于實例的數(shù)據(jù)可以被訪問和/或被檢索和/或被處理。所述至少一個加權(quán)功率估計可以包括距離加權(quán)功率估計、邏輯距離加權(quán)功率估計和/或時間頻率功率估計中的至少一個。為了進行比較,基于所述至少一個加權(quán)功率估計被排名的路徑可以基于相同的加權(quán)功率估計被排名。路徑可以根據(jù)多于一個加權(quán)功率估計被排名。關(guān)鍵路徑可以通過所述至少一個加權(quán)功率估計被給予低排名。具體地,可以提供基于不同的加權(quán)功率估計的不同排名。排名可以被執(zhí)行使得排排名靠前的路徑被認為是用于功率優(yōu)化的候選路徑。
[0022]排名路徑的加權(quán)功率估計的絕對和/或相對差可以被考慮。例如,如果降低排名的路徑只有它們估計的稍微不同的值,它們可以被認為幾乎是相等的排名。
[0023]該方法可以進一步包括優(yōu)化排名路徑中的至少一個以用于功率利用。包括這個,該方法可以被認為是用于集成電路設(shè)計的功率優(yōu)化方法。為了功率優(yōu)化對功率優(yōu)化確定的路徑,一個或多個采樣級可以被添加到設(shè)計中的一個或多個路徑。采樣級可以包括連接到集成電路設(shè)計的時鐘信號的驅(qū)動器和/或緩沖器。
[0024]集成電路設(shè)計的時間優(yōu)化可以被執(zhí)行??梢哉J為在識別多個路徑之前執(zhí)行時間優(yōu)化和/或在時間優(yōu)化期間識別多個路徑。
[0025]該方法可以在集成電路設(shè)計的寄存器傳輸級表示上被執(zhí)行。識別多個路徑包括識別多個非關(guān)鍵路徑。該方法可以被認為是一種靜態(tài)方法,具體地是一種靜態(tài)功率分析方法。然而,各實例功率估計可以被認為將實例的動態(tài)功率要求和/或動態(tài)行為考慮在內(nèi)。可以考慮存儲在計算機可讀介質(zhì)上的計算機程序產(chǎn)品,該計算機程序產(chǎn)品包括用于計算機系統(tǒng)執(zhí)行所描述的方法的指令。
[0026]圖1示出了用于功率優(yōu)化集成電路設(shè)計的方法的示例的流程圖,包括用于對路徑進行排名以功率優(yōu)化的多個階段。在SlO中,可以提供集成電路設(shè)計,例如RTL設(shè)計?;谔峁┑脑O(shè)計,在S20中,后端流程可以被執(zhí)行,其中例如GL網(wǎng)格表被創(chuàng)建和/或功率域或必要的電源電壓可以被分析。通常,在該方法的任何階段期間,可以執(zhí)行RTL設(shè)計到GL表示的映射。隨后,在S30,RTL或GL設(shè)計的整體功率估計可以被提供。S30之后,在S40中,用于對路徑排名以進行功率優(yōu)化的路徑分析可以被執(zhí)行。S40可能包括幾個子階段。例如,在S45中,集成電路設(shè)計的多個路徑可以被識別。集成電路和/或路徑可以被映射在GL或RTL表示中。識別這樣的路徑可以包括提供關(guān)于到適當軟件的路徑的信息。基于在S45中識別的路徑,在S50中,對于所述多個路徑中的每個實例,實例功率估計可以被提供??蛇x地,相應(yīng)信息或估計可以在先前階段,例如在S30被提供。在這種情況下,S50可以被省略。在S50或S45之后,在S55中,基于路徑中的實例的實例功率估計,可以為每個路徑提供至少一個加權(quán)功率估計。可以為各路徑提供不同的加權(quán)功率估計。隨后,在S60中,基于所述至少一個加權(quán)功率估計對路徑的排名可以被執(zhí)行以為了功率優(yōu)化而對路徑排名?;诓煌募訖?quán)功率估計可以提供多于一個排名?;谶@種排名,用于功率優(yōu)化的良好的候選路徑可以被確定或被識別。因此,在S65中,排名靠前的路徑可以被檢查是否可以有效執(zhí)行功率優(yōu)化?;谂琶?或檢查確定檢查哪個路徑以用于功率優(yōu)化可以由軟件自動執(zhí)行、被設(shè)計者手動或半自動執(zhí)行。如果決定為用于功率優(yōu)化的候選路徑的一個或多個路徑要被優(yōu)化,集成電路設(shè)計可以在S70中被適當修改。例如,適當?shù)牟蓸与A段可以被引入路徑。對該設(shè)計的修改也可以被手動、自動或半自動執(zhí)行。在為功率優(yōu)化確定的路徑被檢查和/或優(yōu)化之后,可以從S40或S70返回到S10,其中修改的集成電路設(shè)計被提供用于該方法的新的更迭。如果在S70中該路徑?jīng)]有被執(zhí)行進一步的優(yōu)化,優(yōu)化可以被認為已完成并且該方法可以提供當前集成電路設(shè)計作為功率優(yōu)化結(jié)果。
[0027]圖2示出了集成電路設(shè)計的GL表示的示例。所表示的集成電路10可以包括第一寄存器12、第二寄存器14以及第三寄存器16,這些寄存器可以被認為屬于第一寄存器組。可以提供第四寄存器18和第五寄存器20,這些寄存器可以屬于第二寄存器組。在這個示例中,每個寄存器12、14、16、18以及20可以被實現(xiàn)為觸發(fā)器,具體地是作為D型觸發(fā)器。然而,任何適于作為寄存器的半導體元件可以被使用。應(yīng)注意不同寄存器可以是不同類型的半導體器件。第一寄存器12的輸出可以被連接到線22。線22可以通過第一緩沖器24和第二緩沖器26被連接到邏輯門28的第一輸入,在這個示例中可以被實現(xiàn)為NAND門。NAND門28的輸出可以被連接到第四寄存器18的輸入。在所示出的示例中,第一路徑因此從第一寄存器12的輸出通過階段24和26以及NAND28延伸到寄存器18的輸入。
[0028]在第一階段24和第一寄存器12的輸出之間,線32可能從線22處分支。線32可以被連接到邏輯門34的第一輸入。邏輯門34可以是帶有三個輸入的OR門。邏輯門34的輸出可以通過分支35被連接到邏輯門28的第二輸入。不同的分支36可以將邏輯門34的輸出和邏輯門38的第一輸入連接起來,這可以被實現(xiàn)為XNOR門。邏輯門38的輸出可以被認為是被連接到第五寄存器20的輸入。因此第一寄存器12被通過線22、32以及邏輯門34和28延伸的第二路徑連接到第四寄存器18。通過線22、32以及邏輯門34和28延伸的第三路徑可以被認為將第一寄存器18連接到第五寄存器20。
[0029]第二寄存器14可以被通過線42連接到OR門34的第二輸入。相應(yīng)地,可以認為從第二寄存器14的輸出通過線42以及邏輯門34和28延伸到第四寄存器18的第四路徑被提供。第五路徑可以被預期通過門34和38將第二寄存器14連接到第五寄存器20。
[0030]在第二寄存器14的輸出和邏輯門34之間,線44可以從線42處分支,線44將第二寄存器14的輸出連接到另一個邏輯門46,該邏輯門可以被實現(xiàn)為AND門。門46的輸出可以被連接到門38的第二輸入。因此,通過線44以及門46和38將第二寄存器14的輸出與寄存器20的輸入連接起來的第六路徑可以被定義。
[0031]第三寄存器16的輸出可以通過線48被連接到AND門46的第二輸入。因此,可以認為第七路徑通過線48以及門46和38將第三寄存器16的輸出連接到第五寄存器20的輸入。
[0032]在第三寄存器16的輸出和門46的輸入之間,線52可以從線48處分支。線52可以將第三寄存器16的輸出和門34的第三輸入連接起來。相應(yīng)地,可以預期第八路徑通過線52以及門34和28將第三寄存器16的輸出連接到第四寄存器18的輸入。通過線52以及門34和38,第三寄存器16的輸出可以被認為被連接到第五寄存器20的輸入,定義第九路徑。
[0033]如可以看到的,即使對于相對較小部分的電路設(shè)計,也可能存在大量不同的路徑。應(yīng)注意,所示出的設(shè)計只是帶有多個路徑的GL設(shè)計的示例并且不被認為能執(zhí)行特定任務(wù)。邏輯門和緩沖器24、26、28、34、38和46可以被認為是包括在上述路徑中的設(shè)計的實例。應(yīng)注意每個實例通??赡苁嵌嘤谝粋€路徑的部分。在這個示例中,寄存器12、14、16、18和20不被認為是這些路徑的部分,但是它們可以被認為是定義了不包括路徑的起點和終點。
[0034]在這個示例中,緩沖器24和26可以分別被分配InW的實例功率估計。門28和46,也就是NAND門和AND門的實例功率估計,可以分別是1.5nW。被實現(xiàn)為帶有三個輸入的OR門的門34可以具有5nW的實例功率估計。對于門38,實例功率估計可以提供3nW的值。
[0035]通過將所有加權(quán)系數(shù)設(shè)置為1,路徑的第一加權(quán)功率估計可以被提供。因此,第一加權(quán)功率估計給出了每個路徑的實例功率估計的總和。
[0036]圖2中用粗線標記的路徑帶有排名最高的加權(quán)功率估計,即該路徑中的實例的實例功率估計的總和是最高的。在這種情況下,通過門34和38延伸的路徑被排名靠前,即第三、第五和第九路徑都有SnW的加權(quán)功率估計。這些路徑也可以被認為是關(guān)鍵路徑,因為它們包括最復雜的實例。排名第二的是通過門34和28運行的路徑,第二、第四和第八路徑分別都有6.5nff的加權(quán)功率估計。通過實例46和38延伸并且有4.5nff的第一加權(quán)功率估計的第六和第七路徑可以被認為是第三排名路徑。第一路徑?jīng)]有出現(xiàn)在靠前排名中,因為它的第一加權(quán)功率估計是最低的,即3.5nW。因此,根據(jù)這種方法,第一路徑?jīng)]有被識別為用于功率優(yōu)化的良好的候選,但是通過門34和38延伸的關(guān)鍵路徑可以是。利用這樣的加權(quán)分析,可能很難區(qū)分有高功耗的“真正的”和“合成”創(chuàng)建的路徑。為了容易地將不同的路徑識別為功率優(yōu)化的潛在有價值對象,例如像圖3中示出的加粗的路徑,使用不同的加權(quán)功率估計以提供不同的排名可以是有益的。
[0037]例如,距離加權(quán)估計可以被使用。距離加權(quán)估計D可以通過下面的公式?jīng)Q定:
【權(quán)利要求】
1.一種用于對路徑排名以功率優(yōu)化集成電路設(shè)計(10)的方法,包括: 識別所述集成電路設(shè)計(10)的多個路徑,每個路徑包括電子器件的一個或多個實例(24、26、28、34、38、46); 對所識別的路徑中的每個實例提供實例功率估計; 基于對所述路徑中的實例(24、26、28、34、38、46)的實例功率估計,為每個識別的路徑提供至少一個加權(quán)功率估計(P、L、D、T); 基于所述至少一個加權(quán)功率估計(P、L、D、T)提供所述路徑的排名。
2.根據(jù)權(quán)利要求1所述的方法,其中所述至少一個加權(quán)功率估計(P、L、D、T)包括距離加權(quán)功率估計(D)和/或邏輯距離加權(quán)功率估計(L)和/或時間加權(quán)功率估計(T)。
3.根據(jù)權(quán)利要求1或2所述的方法,進一步包括為功率利用而優(yōu)化至少一個所排名的路徑。
4.根據(jù)權(quán)利要求1至3中的一個所述的方法,進一步包括將一個或多個采樣階段添加到為功率優(yōu)化確定的路徑。
5.根據(jù)權(quán)利要求1至4中的一個所述的方法,其中關(guān)鍵路徑通過所述至少一個加權(quán)功率估計(P、L、D、T)被給予低排名。
6.根據(jù)權(quán)利要求1至5中的一個所述的方法,其中所述路徑根據(jù)多于一個加權(quán)功率估計(P、L、D、T)被排名。
7.根據(jù)權(quán)利要求2至6中的一個所述的方法,其中每個路徑的距離加權(quán)功率估計被計算為
8.根據(jù)權(quán)利要求2至6中的一個所述的方法,其中每個路徑的邏輯距離加權(quán)功率估計被計算為 其中Pi對應(yīng)于所述路徑中的實例i的實例功率估計以及Ci對應(yīng)于被分配給實例i的預定復雜度值。
9.根據(jù)權(quán)利要求8所述的方法,其中Ci對應(yīng)于所述路徑中的實例i的輸入數(shù)量,定義被分配給實例i的復雜度值。
10.根據(jù)權(quán)利要求2至9中的一個所述的方法,其中每個路徑的時間加權(quán)功率估計被計算為
11.根據(jù)權(quán)利要求1至10中的一個所述的方法,進一步包括所述集成電路設(shè)計的時間優(yōu)化。
12.根據(jù)權(quán)利要求11所述的方法,其中所述時間優(yōu)化在識別所述多個路徑之前執(zhí)行和/或在時間優(yōu)化期間識別所述多個路徑。
13.根據(jù)權(quán)利要求1至12中的一個所述的方法,所述方法基于所述集成電路設(shè)計的寄存器傳輸級表不被執(zhí)行。
14.根據(jù)權(quán)利要求1至13中的一個所述的方法,其中識別多個路徑包括識別多個非關(guān)鍵路徑。
15.一種存儲在計算機可讀介質(zhì)上的計算機程序產(chǎn)品,包括用于計算機系統(tǒng)執(zhí)行權(quán)利要求I至14中的一個所述的方 法的指令。
【文檔編號】G06F1/32GK103443738SQ201180069679
【公開日】2013年12月11日 申請日期:2011年3月28日 優(yōu)先權(quán)日:2011年3月28日
【發(fā)明者】阿舍·伯克維茨, 高爾·馬拉赫, 伊坦·維斯伯格 申請人:飛思卡爾半導體公司