專(zhuān)利名稱(chēng):使用快速估計(jì)技術(shù)的有效的采用窮盡法的基于路徑的sta的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及用于對(duì)集成電路(IC)芯片執(zhí)行靜態(tài)時(shí)序分析(STA)的技術(shù)。更 為具體地,本發(fā)明涉及用于通過(guò)使用快速路徑延遲估計(jì)來(lái)執(zhí)行有效的基于窮盡路徑的STA 的方法和裝置。
背景技術(shù):
計(jì)算機(jī)技術(shù)的快速發(fā)展使得可以對(duì)數(shù)據(jù)集執(zhí)行每秒數(shù)千吉次計(jì)算操作,數(shù)據(jù)集的 大小有時(shí)為數(shù)千吉比特。這些發(fā)展可以主要?dú)w因于集成電路的尺寸和復(fù)雜度方面的指數(shù)增長(zhǎng)。由于集成電路的尺寸和復(fù)雜度方面的增長(zhǎng),變得需要使用復(fù)雜的工具來(lái)驗(yàn)證時(shí)序 約束。在出現(xiàn)靜態(tài)時(shí)序分析(STA)之前,時(shí)序約束通常通過(guò)使用基于模擬的技術(shù)來(lái)驗(yàn) 證。隨著集成電路的復(fù)雜度增加,因?yàn)榛谀M的技術(shù)的長(zhǎng)運(yùn)行期、低容量和非完整分析, 使用基于模擬的技術(shù)來(lái)驗(yàn)證時(shí)序約束變得不可實(shí)現(xiàn)。與基于模擬的技術(shù)不同,STA通過(guò)計(jì)算最差情形延遲和最好情形延遲來(lái)驗(yàn)證時(shí)序, 而不列舉所有可能的路徑。因此,STA可以在合理的時(shí)間量?jī)?nèi)對(duì)大的集成電路執(zhí)行詳盡的 時(shí)序分析。結(jié)果是,STA已經(jīng)作為用于對(duì)大的集成電路驗(yàn)證時(shí)序約束的選擇方法出現(xiàn)。在集成電路(IC)設(shè)計(jì)的STA階段期間,通常使用基于圖表的STA和基于路徑的分 析兩者?;趫D表的STA是非??斓?0(N) ;N是設(shè)計(jì)中的單元的數(shù)目),但是結(jié)果通常不 好?;诼窂降腟TA通常被使用來(lái)提供不像基于圖表的STA那么差(以及更為準(zhǔn)確)的對(duì) 時(shí)序間隙(slack)(或多個(gè)間隙)的估計(jì)。更為具體地,通常在基于圖表的分析之后,執(zhí)行 基于路徑的分析,其通過(guò)以下來(lái)實(shí)現(xiàn)對(duì)基于圖表的分析的結(jié)果進(jìn)行排序,從最保守的端點(diǎn) 開(kāi)始,并針對(duì)終止于該端點(diǎn)的每條路徑重新計(jì)算到該端點(diǎn)的間隙。因?yàn)榛诼窂降拈g隙在 時(shí)序圖中的每個(gè)交合點(diǎn)處不像基于圖表的分析要求的那樣使用最差偏移(slew),而是每個(gè) 端點(diǎn)的相對(duì)改進(jìn)可以改變,所以基于路徑的間隙通常不是很保守。不利地,基于路徑的STA是計(jì)算密集型過(guò)程,該過(guò)程要求跟蹤設(shè)計(jì)內(nèi)的每條可能 的路徑。盡管基于路徑的STA是準(zhǔn)確的,但是執(zhí)行基于路徑的STA所要求的計(jì)算量隨著單 元的數(shù)目而指數(shù)增加。因此,需要一種可以減少與基于窮盡路徑的STA相關(guān)聯(lián)的運(yùn)行時(shí)間的方法和裝置。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)實(shí)施例提供了一種系統(tǒng),該系統(tǒng)在電路設(shè)計(jì)中執(zhí)行有效的基于路徑 的靜態(tài)時(shí)序分析(STA)。在操作期間,系統(tǒng)識(shí)別電路設(shè)計(jì)內(nèi)的一組路徑,其中每條路徑包括 一個(gè)或多個(gè)段。對(duì)于一組路徑中的一條路徑,系統(tǒng)確定該路徑中的至少一段是否與先前通 過(guò)執(zhí)行基于路徑的STA而計(jì)算出的不同路徑共享,其中不同路徑中的至少一段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián)。如果共享,則系統(tǒng)至少基于與不同路徑中的共享段相關(guān) 聯(lián)的基于路徑的時(shí)序信息,執(zhí)行對(duì)路徑的基于路徑的延遲的估計(jì)。否則,系統(tǒng)通過(guò)對(duì)路徑執(zhí) 行基于路徑的STA,計(jì)算路徑的基于路徑的延遲。在一些實(shí)施例中,在執(zhí)行估計(jì)后,系統(tǒng)通過(guò)首先確定所估計(jì)出的基于路徑的延遲 是否大于閾值延遲,確定與路徑相關(guān)聯(lián)的基于路徑的延遲是否是組路徑中的最差情況的基 于路徑的延遲。如果是,則系統(tǒng)通過(guò)對(duì)路徑執(zhí)行基于路徑的STA,計(jì)算路徑的基于路徑的延 遲。否則,系統(tǒng)確定基于路徑的延遲不是一組路徑中的最差情況的基于路徑的延遲。注意, 確定是基于所估計(jì)出的基于路徑的延遲進(jìn)行的,而不會(huì)針對(duì)路徑延遲實(shí)際計(jì)算基于路徑的 延遲,從而減少計(jì)算時(shí)間。在一些實(shí)施例中,系統(tǒng)嘗試識(shí)別組路徑中的最差情況的基于路徑的延遲和最差情 況的基于路徑的間隙。在一些實(shí)施例中,在執(zhí)行估計(jì)后,系統(tǒng)通過(guò)首先確定所估計(jì)出的基于路徑的延遲 是否小于閾值延遲,確定與路徑相關(guān)聯(lián)的基于路徑的延遲是否是一組路徑中的最好情況的 基于路徑的延遲。如果是,則系統(tǒng)通過(guò)對(duì)路徑執(zhí)行基于路徑的STA,計(jì)算路徑的基于路徑的 延遲。否則,系統(tǒng)確定基于路徑的延遲不是組路徑中的最好情況的基于路徑的延遲。注意, 確定是基于所估計(jì)出的基于路徑的延遲進(jìn)行的,而不會(huì)針對(duì)路徑延遲實(shí)際計(jì)算基于路徑的 延遲,從而減少計(jì)算時(shí)間。在一些實(shí)施例中,系統(tǒng)嘗試識(shí)別該組路徑中的最好的基于路徑的延遲和最好的基 于路徑的間隙。在一些實(shí)施例中,該組路徑終止于電路設(shè)計(jì)中的共同端點(diǎn)。在一些實(shí)施例中,基于路徑的時(shí)序信息包括基于路徑的延遲和基于路徑的偏移。在一些實(shí)施例中,系統(tǒng)通過(guò)基于與不同路徑中的相同段相關(guān)聯(lián)的基于路徑的延遲 和基于路徑的偏移來(lái)估計(jì)路徑中的段的基于路徑的延遲,執(zhí)行對(duì)路徑的基于路徑的延遲的 估計(jì)。在一些實(shí)施例中,路徑中的每個(gè)段與基于圖表的延遲和基于圖表的偏移相關(guān)聯(lián), 基于圖表的延遲和基于圖表的偏移是根據(jù)基于圖表的STA針對(duì)路徑先前計(jì)算出的。注意, 基于圖表的延遲和基于圖表的偏移提供對(duì)與路徑相關(guān)聯(lián)的基于路徑的延遲和基于路徑的 偏移的最差情況的估計(jì)。在一些實(shí)施例中,系統(tǒng)通過(guò)基于與段相關(guān)聯(lián)的基于圖表的偏移來(lái)估計(jì)路徑中的段 的基于路徑的延遲,執(zhí)行對(duì)路徑的基于路徑的延遲的估計(jì)。在一些實(shí)施例中,系統(tǒng)通過(guò)進(jìn)行對(duì)路徑中的每個(gè)段的估計(jì),執(zhí)行對(duì)路徑的基于路 徑的延遲的估計(jì)。更具體地,對(duì)于每個(gè)段,系統(tǒng)確定段是否與先前根據(jù)基于路徑的STA計(jì)算 出的另一路徑共享,其中另一路徑中的段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián)。如 果共享,則系統(tǒng)基于與另一路徑中的共享的段相關(guān)聯(lián)的基于路徑的時(shí)序信息,執(zhí)行對(duì)該段 的基于路徑的延遲的估計(jì)。否則,系統(tǒng)使用與段相關(guān)聯(lián)的基于圖表的延遲,作為該段的所估 計(jì)出的基于路徑的延遲。最后,系統(tǒng)對(duì)路徑中的所有段的所估計(jì)出的基于路徑的延遲進(jìn)行 求和,以獲得路徑的所估計(jì)出的基于路徑的延遲。在一些實(shí)施例中,該組路徑終止于電路設(shè)計(jì)中的多個(gè)端點(diǎn)。
圖1例示了根據(jù)本發(fā)明的實(shí)施例的集成電路的設(shè)計(jì)和制造的各個(gè)步驟;圖2示出了例示在集成電路的設(shè)計(jì)和實(shí)現(xiàn)期間如何使用STA的流程圖;圖3示出了例示對(duì)IC設(shè)計(jì)執(zhí)行傳統(tǒng)的基于窮盡路徑的STA的過(guò)程的流程圖;圖4例示了對(duì)示例端點(diǎn)執(zhí)行窮盡PBA間隙計(jì)算;圖5示出了例示根據(jù)本發(fā)明的實(shí)施例的使用快速估計(jì)來(lái)對(duì)新的路徑執(zhí)行改進(jìn)的 基于路徑的STA的過(guò)程的流程圖;圖6例示了根據(jù)本發(fā)明的實(shí)施例的具有共享共同段的兩條路徑的電路示意圖;圖7示出了例示根據(jù)本發(fā)明的實(shí)施例的對(duì)IC設(shè)計(jì)執(zhí)行改進(jìn)的基于窮盡路徑的STA 的過(guò)程的流程圖;圖8例示了根據(jù)本發(fā)明的實(shí)施例的對(duì)圖4中的示例端點(diǎn)執(zhí)行改進(jìn)的窮盡PBA間隙 計(jì)算;圖9例示了根據(jù)本發(fā)明的實(shí)施例的用于在IC設(shè)計(jì)中執(zhí)行有效的基于路徑的STA 的裝置。
具體實(shí)施例方式下述描述被呈現(xiàn)來(lái)使得本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)和使用實(shí)施例,并且下述描述 是在具體應(yīng)用及其要求的上下文中提供的。對(duì)所公開(kāi)的實(shí)施例的各種修改對(duì)于本領(lǐng)域技 術(shù)人員而言是非常顯而易見(jiàn)的,并且這里所定義的一般性原理可以應(yīng)用于其它實(shí)施例或應(yīng) 用,而不會(huì)背離本公開(kāi)的精神和范圍。因此,本發(fā)明不限于所示出的實(shí)施例,而是與符合本 文在此公開(kāi)的原理和特征的最廣范圍相一致。在該具體實(shí)施方式
中所描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì) 上,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是可以存儲(chǔ)可供計(jì)算機(jī)系統(tǒng)使用的代碼和/或數(shù)據(jù)的任何設(shè) 備或介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于,易失性存儲(chǔ)器、非易失性存儲(chǔ)器、磁性或光 學(xué)存儲(chǔ)設(shè)備(比如盤(pán)驅(qū)動(dòng)器、磁帶、CD (壓縮盤(pán))、DVD (數(shù)字通用盤(pán)或數(shù)字視頻盤(pán)))、或者現(xiàn) 在公知或稍后開(kāi)發(fā)的能夠存儲(chǔ)計(jì)算機(jī)可讀介質(zhì)的其他介質(zhì)。在該具體實(shí)施方式
中描述的方法和過(guò)程可以被具體體現(xiàn)為代碼和/或數(shù)據(jù),代碼 和/或數(shù)據(jù)可以存儲(chǔ)在如上的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。當(dāng)計(jì)算機(jī)系統(tǒng)讀取和執(zhí)行在計(jì)算機(jī) 可讀存儲(chǔ)介質(zhì)上存儲(chǔ)的代碼和/或數(shù)據(jù)時(shí),計(jì)算機(jī)系統(tǒng)執(zhí)行被具體體現(xiàn)為在計(jì)算機(jī)可讀存 儲(chǔ)介質(zhì)中存儲(chǔ)的代碼和/或數(shù)據(jù)結(jié)構(gòu)的方法和過(guò)程。此外,本文所描述的方法和過(guò)程可以包括在硬件模塊或裝置中。這些模塊或裝置 可以包括但不限于,專(zhuān)用集成電路(ASIC)芯片、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、在特定時(shí)間執(zhí) 行特定軟件模塊或代碼的專(zhuān)用或共享處理器、和/或現(xiàn)在公知或稍后開(kāi)發(fā)的其它可編程邏 輯器件。當(dāng)硬件模塊或裝置被激活時(shí),硬件模塊或裝置執(zhí)行在它們中包括的方法和過(guò)程。集成電路設(shè)計(jì)流程圖1例示了集成電路的設(shè)計(jì)和制造的各種步驟。過(guò)程開(kāi)始于生成產(chǎn)品構(gòu)想(階段 100),其使用電子設(shè)計(jì)自動(dòng)化(EDA)軟件設(shè)計(jì)過(guò)程實(shí)現(xiàn)(階段110)。當(dāng)設(shè)計(jì)完成時(shí),可以進(jìn) 行流片(階段140)。在流片后,完成制造過(guò)程(階段150),并進(jìn)行封裝和組裝過(guò)程(階段 160),封裝和組裝過(guò)程最終導(dǎo)致完成的芯片(階段170)。
接著,EDA軟件設(shè)計(jì)過(guò)程(階段110)包括階段112-130,如下所述。注意,這個(gè)設(shè) 計(jì)流程描述僅僅是示例性的。這種描述不意味著限制本發(fā)明。例如,實(shí)際的集成電路設(shè)計(jì) 可以要求設(shè)計(jì)者按照與本文所描述的順序不同的順序來(lái)執(zhí)行設(shè)計(jì)階段。下述討論提供了設(shè) 計(jì)過(guò)程中的階段的進(jìn)一步的細(xì)節(jié)。系統(tǒng)設(shè)計(jì)(階段112)設(shè)計(jì)者描述要實(shí)現(xiàn)的功能。他們還可以執(zhí)行假設(shè)(what-if) 規(guī)劃來(lái)微調(diào)(refine)功能以及檢查成本。在該階段可以出現(xiàn)硬件-軟件架構(gòu)劃分。在該 階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括MODEL ARCHITECT 、 SABER 、SYSTEM STUDIO 和DESIGNWARE 產(chǎn)品。邏輯設(shè)計(jì)和功能驗(yàn)證(階段114)在此階段,編寫(xiě)用于系統(tǒng)中的模塊的VHDL或 Verilog代碼,并且檢查設(shè)計(jì)的功能準(zhǔn)確性。更為具體地,對(duì)設(shè)計(jì)進(jìn)行檢查,以確保它產(chǎn)生正 確的輸出。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括VCS 、 VERA 、DESIGNWARE 、MAGELLAN 、FORMALITY 、ESP 和LED A 產(chǎn)品。綜合和設(shè)計(jì)(階段116)這里,VHDL/Verilog被轉(zhuǎn)換為網(wǎng)表??梢葬槍?duì)目標(biāo) 技術(shù)來(lái)對(duì)網(wǎng)表進(jìn)行優(yōu)化。另外,可以設(shè)計(jì)和實(shí)現(xiàn)測(cè)試來(lái)檢查所完成的芯片。在該階段 可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括DESIGN COMPILER 、 PHYSICAL COMPILER 、TEST COMPILER 、POWER COMPILER 、 FPGA COMPILER 、TETRAMAX 和 DESIGNWARE 產(chǎn)品。網(wǎng)表驗(yàn)證(階段118)在這個(gè)階段,檢查網(wǎng)表是否符合時(shí)序約束以及是否與VHDL/ Verilog源代碼對(duì)應(yīng)。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括 FORMALITY 、PRIMETIME 和VCS 產(chǎn)品。設(shè)計(jì)規(guī)劃(階段120):這里,針對(duì)時(shí)序和頂層布線(xiàn)來(lái)構(gòu)建和分析芯片的整體布 局(floor plan)。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括 ASTRO 和 ic COMPILER 產(chǎn)品。物理實(shí)現(xiàn)(階段122)放置(電路元件的定位)和布線(xiàn)(電路元件的連接)在這 個(gè)階段出現(xiàn)。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括ASTRO 和IC COMPILER 產(chǎn)品。分析和提取(階段124)在這個(gè)階段,在晶體管級(jí)上驗(yàn)證電路功能;這繼而允 許what-if微調(diào)。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括 ASTRORAIL 、PRIMERAIL 、
PRIMETIME 、HSPICE 、HSIM 、NANOTIME 、NANOSIM 和 STAR-RCXT 產(chǎn)品。時(shí)序驗(yàn)證(階段125):靜態(tài)時(shí)序分析(STA)通常在該階段發(fā)生,其中,檢查網(wǎng) 表是否符合時(shí)序約束以及是否與VHDL/Verilog源代碼對(duì)應(yīng)。在該階段可以使用的來(lái)自 SYN0PSYS公司的示例EDA軟件產(chǎn)品包括PRIMETIME 產(chǎn)品。物理驗(yàn)證(階段126)在這個(gè)階段,對(duì)設(shè)計(jì)進(jìn)行檢查,以確保制造、電氣問(wèn)題、光刻 問(wèn)題和電路的正確性。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括 HERCULES 產(chǎn)品。分辨率(resolution)增強(qiáng)(階段128)這個(gè)階段包括對(duì)布局的幾何處理,以改進(jìn)設(shè)計(jì)的可制造性。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括 PROTEUS 、 PROTEUS AF 和PSMGED 產(chǎn)品。掩膜數(shù)據(jù)制備(階段130)這個(gè)階段提供制造掩膜的流片數(shù)據(jù),以產(chǎn)生完成的芯 片。在該階段可以使用的來(lái)自SYN0PSYS公司的示例EDA軟件產(chǎn)品包括CATS 產(chǎn)品系列。可以在一個(gè)或多個(gè)上述步驟期間使用本發(fā)明的實(shí)施例。具體地,可以在時(shí)序驗(yàn)證 階段125期間使用本發(fā)明的一個(gè)實(shí)施例。靜杰時(shí)序分析(STA)圖2示出了例示在設(shè)計(jì)和實(shí)現(xiàn)集成電路期間通常如何使用STA的流程圖。首先,設(shè)計(jì)集成電路(步驟202)。接著,提取寄生效應(yīng)(prarasitics)(步驟204)。 隨后,執(zhí)行靜態(tài)時(shí)序分析(步驟206)。如果發(fā)現(xiàn)時(shí)序沖突(步驟208),則過(guò)程返回到電路 設(shè)計(jì)步驟202,從而對(duì)電路進(jìn)行調(diào)整(tweak)以解決時(shí)序沖突。另一方面,如果沒(méi)有發(fā)現(xiàn)時(shí) 序沖突,則過(guò)程繼續(xù)制造過(guò)程中的下一步驟?;诟F盡路徑的分析圖3示出了例示對(duì)IC設(shè)計(jì)執(zhí)行傳統(tǒng)的基于窮盡路徑的STA的過(guò)程的流程圖。這 個(gè)過(guò)程在一組路徑中搜索具有最差的重計(jì)算出的基于路徑的間隙的路徑。在執(zhí)行基于路徑的STA之前,假設(shè)已經(jīng)對(duì)IC設(shè)計(jì)執(zhí)行了基于圖表的STA。結(jié)果是, 每個(gè)時(shí)序端點(diǎn)(下文中稱(chēng)為“端點(diǎn)”),例如,觸發(fā)器(翻轉(zhuǎn)),與被稱(chēng)為“基于圖表的STA間 隙”或“GBA間隙”的間隙相關(guān)聯(lián)。注意,給定端點(diǎn)的GBA間隙是通過(guò)首先計(jì)算終止于端點(diǎn) 的一組路徑的GBA間隙,隨后選擇針對(duì)該組路徑的一組GBA間隙中的最差GBA間隙來(lái)獲得 的。在下述討論中,將對(duì)給定端點(diǎn)執(zhí)行基于路徑的STA的過(guò)程稱(chēng)為“重計(jì)算”,因?yàn)樗l(fā)生在 已經(jīng)執(zhí)行基于圖表的STA之后。為了執(zhí)行基于窮盡路徑的STA,系統(tǒng)通常開(kāi)始于基于相關(guān)的GBA間隙來(lái)對(duì)IC設(shè)計(jì) 中的一組端點(diǎn)區(qū)分優(yōu)先級(jí)(步驟302)。系統(tǒng)隨后選擇還未被重計(jì)算的具有最差的GBA間隙 的端點(diǎn)(或“最差GBA端點(diǎn)”)(步驟304)。接著,系統(tǒng)基于與終止于該端點(diǎn)的一組路徑相 關(guān)的GBA間隙,按照間隙值遞增的順序?qū)υ摻M路徑進(jìn)行排序,即,較差的間隙接收較高的優(yōu) 先級(jí)(步驟306)。更為具體地,針對(duì)按照GBA間隙排序的一組路徑中的每條路徑,系統(tǒng)確定GBA間隙 是否大于閾值間隙(步驟308)。該閾值間隙保持當(dāng)前的最差的重計(jì)算出的PBA間隙,隨著 處理更多的路徑,當(dāng)前的最差的重計(jì)算出的PBA間隙被迭代地更新。通常,閾值間隙具有足 夠大的初始值,其可以被容易地替換為重計(jì)算出的PBA間隙。如果當(dāng)前處理的路徑的GBA間隙大于閾值間隙,則已經(jīng)找到最差的重計(jì)算出的 PBA間隙,其等于閾值間隙(步驟310),并且過(guò)程終止。注意,這很少是第一路徑正被處理 的情形(即,該路徑具有最差GBA間隙)。然而,如果該當(dāng)前處理的路徑的GBA間隙小于閾值間隙,則系統(tǒng)對(duì)該路徑執(zhí)行基 于路徑的STA,以獲得重計(jì)算出的PBA間隙(步驟312)。注意,所重計(jì)算出的PBA間隙通常 大于該同一路徑的GBA間隙。系統(tǒng)隨后確定所重計(jì)算出的PBA間隙是否小于當(dāng)前的閾值間 隙(步驟314)。如果是,則找到最差PBA間隙的新值,并且系統(tǒng)利用新近重計(jì)算出的PBA間 隙來(lái)替換閾值間隙(步驟316)。系統(tǒng)隨后繼續(xù)按照優(yōu)先級(jí)順序處理一組路徑中的下一路 徑,直到找到該組路徑中的最差的重計(jì)算出的PBA間隙。
10
如果步驟314為假,即,所重計(jì)算出的PBA間隙大于閾值間隙,則系統(tǒng)返回來(lái)按照 優(yōu)先級(jí)順序處理一組路徑中的下一路徑。隨后,重復(fù)上述過(guò)程,直到找到最差的重計(jì)算出的 PBA間隙。通過(guò)對(duì)按優(yōu)先級(jí)排列的端點(diǎn)應(yīng)用圖3中描述的窮盡PBA間隙計(jì)算,針對(duì)與最差GBA 間隙相關(guān)聯(lián)的那些端點(diǎn),系統(tǒng)可以識(shí)別最差的重計(jì)算出的PBA間隙。應(yīng)該指出的是,這種窮盡PBA間隙計(jì)算過(guò)程不必處理終止于所選擇的端點(diǎn)的一組 路徑中的每條路徑。圖4例示了對(duì)示例端點(diǎn)400執(zhí)行窮盡PBA間隙計(jì)算。更為具體地,圖4以圖形的方式例示了針對(duì)終止于端點(diǎn)400的一組路徑重計(jì)算間 隙的過(guò)程。如圖4中所示,以如果軸410上的每個(gè)GBA間隙值和軸420上的PBA間隙值具 有相同的水平位置,則軸410上的每個(gè)GBA間隙值等于軸420上的PBA間隙值的方式,繪制 GBA間隙軸410和PBA間隙軸420。注意,與相應(yīng)的GBA間隙401A_409A(9個(gè)圓圈)相關(guān)聯(lián)的9條路徑按照GBA間隙遞 增的順序排列在GBA間隙軸410上,其中路徑的最差GBA間隙401A位于軸410的最左端。 在窮盡PBA間隙計(jì)算過(guò)程期間,根據(jù)圖3中描述的技術(shù)來(lái)從與間隙401A(淺陰影圓圈)相 關(guān)聯(lián)的路徑開(kāi)始順序地處理這一組路徑。這生成了 PBA間隙軸420上的重計(jì)算出的PBA間 隙401B(深陰影圓圈),其大于GBA間隙,這是期望的,因?yàn)镚BA間隙更為不好。注意,PBA 間隙401B隨后變?yōu)樽畈畹闹赜?jì)算出的PBA間隙(當(dāng)沒(méi)有其它值可用時(shí))。接著,對(duì)與GBA 間隙402A相關(guān)聯(lián)的路徑進(jìn)行重計(jì)算,并且獲得PBA軸420上的PBA間隙402B。因?yàn)镻BA間 隙402B小于GBA間隙401B,所以間隙402B替換401B,作為新的最差PBA間隙。類(lèi)似地,分別對(duì)與GBA間隙403A、404A和405A(所有都為淺陰影圓圈)相關(guān)聯(lián)的 路徑進(jìn)行重計(jì)算,以獲得PBA軸420上的PBA間隙403B、404B和405B(所有都為深陰影圓 圈)。注意,GBA間隙403A-405A中的每個(gè)都小于最差PBA間隙402B。此外,對(duì)應(yīng)的GBA間 隙403B-405B中的每個(gè)都大于最差PBA間隙402B。因此,在重計(jì)算PBA間隙405B后,PBA 間隙402B保持為最差PBA間隙。接著,處理與GBA間隙406A(空心圓圈)相關(guān)聯(lián)的新路徑。首先,將GBA間隙406A 與最差PBA間隙402B進(jìn)行比較。因?yàn)镚BA間隙406A大于最差PBA間隙402B,所以GBA間 隙軸410上的GBA間隙的增加值確保與GBA間隙406A-409A(所有為空心圓圈)相關(guān)聯(lián)的 路徑不會(huì)產(chǎn)生比當(dāng)前的最差PBA間隙402B更小的PBA間隙值。因此,不會(huì)對(duì)這些新的路徑 進(jìn)行重計(jì)算,從而節(jié)省計(jì)算資源,并且基于路徑的STA報(bào)告端點(diǎn)400的最差PBA間隙。注意,盡管在圖4中不是對(duì)所有路徑進(jìn)行重計(jì)算,但是對(duì)與GBA間隙403A-405A相 關(guān)聯(lián)的那些路徑全部進(jìn)行重計(jì)算,從而所重計(jì)算出的PBA間隙不會(huì)影響搜索針對(duì)端點(diǎn)400 的最差PBA間隙的結(jié)果。使用快速估計(jì)的改進(jìn)的基于路徑的STA本發(fā)明的實(shí)施例提供了改進(jìn)的基于路徑的STA技術(shù),該技術(shù)可以大大減少使用基 于路徑的STA必須重計(jì)算的路徑的數(shù)目。更為具體地,如果新的路徑或者該新的路徑的一 部分(例如,一段)與一個(gè)或多個(gè)先前重計(jì)算過(guò)的路徑重疊,則不必從頭開(kāi)始對(duì)新路徑進(jìn)行 重計(jì)算。取而代之,可以使用與已經(jīng)重計(jì)算過(guò)的路徑相關(guān)聯(lián)的基于路徑的時(shí)序信息,來(lái)快速 地估計(jì)還未被分析的新路徑的路徑延遲。例如,如果被完全重計(jì)算的前M個(gè)路徑是 散的(即,沒(méi)有共同段),而接下來(lái)的N個(gè)新路徑與前M個(gè)路徑中的一些路徑共享一些段,則可以嘗試估計(jì)在這些新路徑中的基于 路徑的分析相對(duì)于基于圖表的分析的改進(jìn),而不需要重計(jì)算所有N個(gè)新路徑。注意,在重用已經(jīng)重計(jì)算過(guò)的路徑來(lái)估計(jì)新路徑的PBA延遲的一般性概念下,可 以使用不同的估計(jì)技術(shù)。一種估計(jì)技術(shù)將諸如來(lái)自基于路徑的STA的PBA延遲和PBA偏移 (slew)的時(shí)序信息與已經(jīng)根據(jù)基于圖標(biāo)的STA獲得的最差偏移組合,以生成對(duì)新路徑的路 徑延遲的充分準(zhǔn)確的估計(jì)。這種估計(jì)通常遠(yuǎn)快于完全的基于路徑的STA計(jì)算。注意,執(zhí)行這種快速估計(jì)的一個(gè)目標(biāo)是在基于窮盡路徑的STA期間盡可能多地刪 減(prime)路徑。例如,當(dāng)搜索一個(gè)端點(diǎn)的最差PBA間隙時(shí),可以對(duì)新路徑進(jìn)行快速估計(jì), 其中估計(jì)可以與當(dāng)前的最差PBA延遲/間隙進(jìn)行比較。如果所估計(jì)的延遲/間隙好于當(dāng)前 的最差PBA延遲/間隙,則從下一步的考慮中刪減該新路徑。因此,本技術(shù)避免對(duì)新路徑重 計(jì)算PBA延遲/間隙。注意,在本實(shí)施例中,該估計(jì)為新路徑提供了時(shí)序界限。這種估計(jì)技 術(shù)將在下面進(jìn)行更為詳細(xì)的描述。估計(jì)技術(shù)的質(zhì)量通常影響相對(duì)于傳統(tǒng)的基于路徑的STA的運(yùn)行時(shí)間改進(jìn)量。如果 估計(jì)技術(shù)的質(zhì)量低(即,如果估計(jì)準(zhǔn)則是較保守的),則刪減的路徑可能較少,而必須重計(jì) 算許多路徑。相反,如果估計(jì)技術(shù)的質(zhì)量高(即,如果估計(jì)準(zhǔn)則不那么保守),則可以刪減大 多數(shù)路徑,而重計(jì)算較少的路徑。在一個(gè)實(shí)施例中,估計(jì)技術(shù)被設(shè)計(jì)為使得它可以產(chǎn)生與完 全重計(jì)算出的結(jié)果基本上相同的結(jié)果,或者產(chǎn)生與完全重計(jì)算出的結(jié)果相比要差但同時(shí)盡 可能接近完全重計(jì)算出的結(jié)果的結(jié)果。這種估計(jì)技術(shù)提供更好的運(yùn)行時(shí)間改進(jìn)。在一個(gè)實(shí) 施例中,正確設(shè)計(jì)的估計(jì)技術(shù)產(chǎn)生比基于圖表的STA結(jié)果好、但是與完全重計(jì)算出的基于 路徑的STA結(jié)果相比不是最佳的結(jié)果。圖5示出了例示根據(jù)本發(fā)明的實(shí)施例的使用快速估計(jì)來(lái)對(duì)新路徑執(zhí)行改進(jìn)的基 于路徑的STA的過(guò)程的流程圖。在操作期間,系統(tǒng)接收新路徑,該新路徑包括一組互相鏈接的段(步驟502)。注 意,已經(jīng)先利用基于圖表的STA針對(duì)每條路徑計(jì)算了 GBA延遲/間隙。因此,新路徑中的每 個(gè)段與一個(gè)GBA延遲相關(guān)聯(lián),該GBA延遲可以用作最差情況的延遲估計(jì)。針對(duì)一組段的所 有GBA延遲的總和等于針對(duì)新路徑的GBA延遲。這個(gè)GBA延遲隨后可以被轉(zhuǎn)換為同一路徑 的GBA間隙。注意,每個(gè)段還可以與共同的如基于圖表的STA所要求的最差偏移相關(guān)聯(lián)。接著,對(duì)于一組段中的每個(gè)段,系統(tǒng)確定新路徑是否與先前根據(jù)基于圖表的STA 重計(jì)算過(guò)的至少一個(gè)不同的路徑共享(例如,重疊)段(步驟504)。圖6例示了根據(jù)本發(fā)明的實(shí)施例的具有共享共同段606的兩條路徑(即,路徑602 和604)的電路示意圖。更為具體地,路徑602包括至少三個(gè)緩存器、一個(gè)鎖存器和兩個(gè)AND 門(mén)608和610。路徑601包括一個(gè)鎖存器以及AND門(mén)608和610。此外,路徑602和604在 段606上重疊,該段606包括AND門(mén)608和610。在本發(fā)明的一個(gè)實(shí)施例中,每個(gè)段被定義為4個(gè)管腳的序列,例如,圖6中的 A-X-M-Y。注意,路徑602和604兩者通過(guò)管腳A-X-M-Y。此外,每個(gè)段還包括兩個(gè)字段關(guān) 鍵字字段和數(shù)據(jù)字段。關(guān)鍵字字段被用來(lái)驗(yàn)證新路徑是否匹配給定段。該字段還包含4個(gè) 管腳、4個(gè)上升/下降方向和單元弧數(shù)目,例如,從弧AX到MY的數(shù)目。在本實(shí)施例中,對(duì)于 一條路徑中的一段匹配(或共享)另一路徑中的一段,上述兩段必須具有相同的4個(gè)管腳 的序列,以及在所有匹配管腳上具有相同的上升/下降方向。
數(shù)據(jù)字段包含基于GBA的延遲及偏移和基于PBA的延遲及偏移的數(shù)據(jù)結(jié)構(gòu)。段的 數(shù)據(jù)字段可以包含估計(jì)共享同一段的新路徑的PBA延遲所需要的延遲及偏移。數(shù)據(jù)字段還 可以存儲(chǔ)一些統(tǒng)計(jì)值(例如,年齡、訪(fǎng)問(wèn)的數(shù)目等)。注意,本發(fā)明通??梢詰?yīng)用于任何類(lèi)型 的段結(jié)構(gòu)。因此,本發(fā)明不限于如上所述和圖6中所例示的具體段結(jié)構(gòu)。在一些實(shí)施例中,在高速緩存中存儲(chǔ)這些段。利用每個(gè)段的關(guān)鍵字對(duì)該高速緩存 進(jìn)行索引。存儲(chǔ)這些段的主數(shù)據(jù)結(jié)構(gòu)可以只是表格也可以是更高級(jí)的數(shù)據(jù)結(jié)構(gòu),以便于快 速地查找和更新。每個(gè)段還可以與一個(gè)得分相關(guān)聯(lián)。在一個(gè)實(shí)施例中,該得分可以是PBA 延遲相對(duì)于GBA延遲的改進(jìn),其可以由基于路徑的STA保證。利用該得分,如果必須添加新 路徑且同時(shí)高速緩存是滿(mǎn)的,則系統(tǒng)可以從高速緩存中移除具有最低得分的段。參見(jiàn)圖5,如果步驟504為真,則系統(tǒng)嘗試使用所存儲(chǔ)的與先前重計(jì)算過(guò)的路徑中 的段相關(guān)聯(lián)的GBA延遲及偏移和PBA延遲及偏移,來(lái)估計(jì)新路徑中的共享段的PBA延遲(步 驟506)。注意,在步驟506期間可以出現(xiàn)若干種變型。理想地,如果可以從先前重計(jì)算的路 徑取回延遲和偏移,則延遲和偏移隨后可以被用來(lái)執(zhí)行對(duì)新路徑的估計(jì)。然而,在一些實(shí)施 例中,對(duì)于先前重計(jì)算過(guò)的路徑,延遲和偏移是不可獲得的。這可以發(fā)生在存在多個(gè)合格的 路徑并且在步驟504中識(shí)別,并且僅僅與最佳值(例如,最小延遲)相關(guān)聯(lián)的路徑具有所存 儲(chǔ)的延遲和間隙時(shí)。在這種情形下,系統(tǒng)需要在合格的路徑中定位包含上述值的路徑。然 而,如果多個(gè)合格的路徑都具有存儲(chǔ)的延遲和偏移,則系統(tǒng)可以選擇與最佳值(例如,最小 延遲)相關(guān)聯(lián)的路徑來(lái)估計(jì)新路徑中的共享段的延遲。注意,這些多個(gè)合格的路徑可以終 止于同一端點(diǎn)或者終止于不同的端點(diǎn)。如果步驟504的結(jié)果為假,S卩,沒(méi)有找到與該段匹配的路徑,則系統(tǒng)使用原始的 GBA延遲作為該段的PBA延遲估計(jì)(步驟508)。注意,重用GBA延遲不會(huì)對(duì)該段產(chǎn)生改進(jìn)。接著,系統(tǒng)返回來(lái)處理還未被估計(jì)的新路徑中的下一段,并且隨后重復(fù)步驟 504-508。這個(gè)過(guò)程繼續(xù),直到新路徑中的所有段已經(jīng)被估計(jì)為止。此時(shí),系統(tǒng)將對(duì)新路徑 中的所有段的所估計(jì)的PBA延遲進(jìn)行求和,以獲得新路徑的估計(jì)的PBA延遲(步驟510)。 理想地,與原始的GBA延遲/間隙相比,由于先前重計(jì)算過(guò)的PBA值的影響,該估計(jì)的PBA 延遲以及隨后所估計(jì)的PBA間隙在準(zhǔn)確性上獲得相當(dāng)大的改進(jìn)并且不那么保守。如果是這 樣,則已經(jīng)以非常快的方式獲得所估計(jì)的PBA延遲/間隙。在一個(gè)實(shí)施例中,隨后可以使用 完全路徑估計(jì)來(lái)決定是否從相關(guān)聯(lián)的基于路徑的STA中刪減新路徑而不需要進(jìn)行重計(jì)算, 或者決定新路徑必須被重計(jì)算。如下結(jié)合圖7和8來(lái)更為詳細(xì)地描述該過(guò)程。在整個(gè)新路徑與其它路徑之間沒(méi)有重疊段的最差情況方案中,所估計(jì)的PBA延遲 變?yōu)樵糋BA延遲值,并且沒(méi)有做出改進(jìn)。這種情形通常在IC設(shè)計(jì)中的開(kāi)始的非常少量的 路徑被處理時(shí)出現(xiàn)。如同如下在圖7中所述,這些路徑通常必須使用基于路徑的STA并為 將來(lái)的路徑設(shè)置值來(lái)進(jìn)行重計(jì)算。隨著越來(lái)越多的延遲和偏移被重計(jì)算,重疊段的數(shù)目增 加并且可以對(duì)基于路徑的STA進(jìn)行更多的估計(jì)。在一些實(shí)施例中,在正在處理第二路徑時(shí) 重疊出現(xiàn)并且盡可能早地應(yīng)用估計(jì)技術(shù)。注意,使用快速估計(jì)的一個(gè)目標(biāo)是對(duì)新路徑提供與GBA延遲相比更為準(zhǔn)確和更少 不好的PBA延遲?,F(xiàn)在描述估計(jì)技術(shù)。在本發(fā)明的一個(gè)實(shí)施例中,新路徑中的一個(gè)段的PBA延遲的估計(jì)是基于先前針對(duì) 不同路徑中的同一個(gè)段計(jì)算的PBA延遲和PBA偏移進(jìn)行的。理想地,可以通過(guò)直接將重計(jì)算的PBA延遲重用作新路徑中的PBA延遲的估計(jì)來(lái)進(jìn)行估計(jì)。然而,這通常是不正確的,因 為對(duì)于給定段,段的輸入管腳上的不同偏移產(chǎn)生段的不同PBA延遲,其中大的輸入偏移導(dǎo) 致更大的PBA延遲。因?yàn)榕c新路徑相關(guān)聯(lián)的偏移是未知的,所以新路徑中的一個(gè)段的PBA 延遲是大于還是小于不同路徑中的同一個(gè)段的重計(jì)算的PBA延遲,不是馬上就清楚的。本發(fā)明的一些實(shí)施例考慮了如下事實(shí)使用時(shí)序圖中的每個(gè)節(jié)點(diǎn)上的最差偏移 (即,最大偏移值)來(lái)計(jì)算GBA延遲。還要注意的是,PBA延遲隨輸入偏移的變化是由電路的 電特性綁定確定的?;谶@些考慮,可以設(shè)計(jì)一個(gè)公式,該公式提供隨著輸入偏移增加PBA 延遲降級(jí)的上限。例如,一個(gè)公式使用下述表達(dá)式來(lái)估計(jì)新路徑中的共享段的PBA延遲的上限。D〃+F(S-S'),其中S是段上的GBA偏移,D' /S'是已經(jīng)重計(jì)算的路徑中的該段的PBA延遲/偏 移,以及D"是新路徑中的該段的PBA延遲。此外,F(xiàn)()是兩個(gè)偏移S和S'之差的非負(fù)函 數(shù)。在一個(gè)實(shí)施例中,F(xiàn)(S_S' ) = a X(S-S'),其中a >0是偏移-延遲系數(shù)。注意, 上述表達(dá)式提供了基于先前計(jì)算出的段的PBA延遲和PBA偏移兩者對(duì)新路徑的最差可能的 延遲降級(jí)的估計(jì)。注意,新路徑的偏移不是利用估計(jì)技術(shù)來(lái)估計(jì)的。圖7示出了例示根據(jù)本發(fā)明的實(shí)施例的對(duì)IC設(shè)計(jì)執(zhí)行改進(jìn)的基于窮盡路徑的STA 的過(guò)程的流程圖。類(lèi)似于圖3中所示出的傳統(tǒng)過(guò)程,該過(guò)程在終止于給定端點(diǎn)的一組路徑 中搜索具有最差的重計(jì)算的PBA間隙的路徑。系統(tǒng)通常開(kāi)始于基于相關(guān)聯(lián)的GBA間隙來(lái)對(duì)IC設(shè)計(jì)中的一組端點(diǎn)按優(yōu)先級(jí)進(jìn)行 排列(圖7中未示出)。系統(tǒng)隨后選擇還未被重計(jì)算的具有最差的GBA間隙的端點(diǎn)(或“最 差GBA端點(diǎn))(步驟702)。接著,系統(tǒng)基于終止于該端點(diǎn)的一組路徑的相關(guān)聯(lián)的GBA間隙, 按照間隙值遞增的順序,對(duì)終止于該端點(diǎn)的這一組路徑進(jìn)行排序,即,較差的間隙接收較高 的優(yōu)先級(jí)(步驟704)。接著,對(duì)于按照GBA間隙順序的一組路徑中的每條路徑,系統(tǒng)確定GBA間隙是否大 于閾值間隙(步驟706)。注意,該閾值間隙保持當(dāng)前的最差的重計(jì)算出的PBA間隙,隨著處 理更多的路徑,當(dāng)前的最差的重計(jì)算出的PBA間隙被迭代地更新。通常,閾值間隙具有足夠 大的初始值,其可以被容易地替換為重計(jì)算出的PBA間隙。如果該當(dāng)前處理的路徑的GBA間隙大于閾值間隙,則已經(jīng)找到最差的重計(jì)算出的 PBA間隙,其等于閾值間隙(步驟708),并且過(guò)程終止。注意,這很對(duì)于正在被處理的第一 路徑是很少見(jiàn)的情形(即,具有最差GBA間隙的路徑)。然而,如果該當(dāng)前處理的路徑的GBA間隙小于閾值間隙,則系統(tǒng)隨后確定路徑是 否具有已經(jīng)在共享同一段的不同路徑中使用基于路徑的STA重計(jì)算的至少一段(步驟 710)。注意,該不同路徑可以是IC設(shè)計(jì)中的任何路徑,并且因此不限于正在處理的該組路 徑中的路徑。如果步驟710為真,則系統(tǒng)例如使用結(jié)合圖5描述的估計(jì)過(guò)程來(lái)快速地估計(jì)路徑 的PBA間隙(步驟712)。系統(tǒng)隨后確定所估計(jì)出的PBA間隙是否小于當(dāng)前的閾值間隙(步 驟714)。如果是,則系統(tǒng)確定當(dāng)前路徑不與最差PBA間隙相關(guān)聯(lián),并且因此該路徑可以被刪 減。因此,系統(tǒng)不對(duì)該路徑上的PBA間隙進(jìn)行重計(jì)算,并且節(jié)省計(jì)算資源。系統(tǒng)隨后返回來(lái) 按照優(yōu)先級(jí)順序處理該組路徑中的下一路徑。注意,該比較是安全的,因?yàn)樗烙?jì)的PBA間隙是與該路徑相關(guān)聯(lián)的實(shí)際PBA間隙的下限(即,更保守的值)。換言之,如果步驟710為 真,則如果所估計(jì)的PBA間隙被替換為實(shí)際的PBA間隙,則步驟710也為真。然而,如果步驟710或步驟714的確定結(jié)果為假,即,路徑不具有先前重計(jì)算的段 或所估計(jì)的PBA間隙小于閾值間隙,則系統(tǒng)隨后對(duì)路徑執(zhí)行基于路徑的STA,以獲得所重計(jì) 算出的PBA間隙(步驟716)。系統(tǒng)隨后確定所重計(jì)算出的PBA間隙是否大于當(dāng)前的閾值間 隙(步驟718)。如果是,則系統(tǒng)確定當(dāng)前路徑與最差PBA間隙不相關(guān)聯(lián),并且返回來(lái)按照優(yōu) 先級(jí)順序處理該一組路徑中的下一路徑。否則,找到新的最差PBA間隙,并且系統(tǒng)利用所重計(jì)算出的PBA間隙來(lái)替換閾值間 隙(步驟720)。接著,系統(tǒng)繼續(xù)處理按照優(yōu)先級(jí)順序的一組路徑中的下一路徑,直到找到最 差的重計(jì)算出的PBA間隙。最后,系統(tǒng)輸出最差的重計(jì)算出的PBA間隙(步驟722)。該過(guò) 程相對(duì)于圖3中的傳統(tǒng)過(guò)程的一個(gè)重大的改進(jìn)在于,在該過(guò)程中,實(shí)際對(duì)非常少的路徑進(jìn)
行重計(jì)算。圖8例示了根據(jù)本發(fā)明的實(shí)施例的對(duì)圖4中的示例端點(diǎn)執(zhí)行改進(jìn)的窮盡PBA間隙計(jì)算。在改進(jìn)的窮盡PBA間隙計(jì)算過(guò)程期間,根據(jù)圖7中描述的技術(shù)來(lái)順序地處理與GBA 延遲401A-409A相關(guān)聯(lián)的組路徑,其中開(kāi)始于與間隙401A(淺陰影圓圈)相關(guān)聯(lián)的路徑。 為了簡(jiǎn)單,利用路徑的GBA延遲值來(lái)指代該路徑。當(dāng)在不使用估計(jì)的情況下對(duì)與GBA延遲 40IA和402A相關(guān)聯(lián)的路徑進(jìn)行重計(jì)算后,間隙402B(深陰影圓圈)被識(shí)別為最差PBA間隙。接著,處理路徑403A。在該實(shí)例中,路徑403A與先前重計(jì)算的路徑之間具有重疊 段,先前重計(jì)算的路徑包括但不限于路徑401A和402A(即,包括終止于其它端點(diǎn)的路徑)。 因此,對(duì)路徑403A進(jìn)行估計(jì),以及所估計(jì)出的PBA間隙在PBA間隙軸上被示出為403B,,其 是實(shí)際PBA間隙403B的估計(jì)。隨后除去路徑403A,因?yàn)?03B,大于402B。類(lèi)似地,還對(duì) 路徑404A和405A進(jìn)行估計(jì),并隨后除去路徑404A和405A。注意,在圖8中,所估計(jì)的路 徑403A-405A由具有交叉形狀的陰影圓圈表示,從而將路徑403A-405A與所重計(jì)算的路徑 40IA和402A區(qū)分開(kāi)。類(lèi)似于圖4,不對(duì)路徑406A-409A進(jìn)行重計(jì)算或估計(jì)。與圖4中描述的過(guò)程相對(duì)照,在圖8中對(duì)僅僅兩條路徑進(jìn)行重計(jì)算,與之前相比減 少了三條路徑。然而,改進(jìn)的過(guò)程產(chǎn)生與傳統(tǒng)過(guò)程相同的最還PBA間隙402B。注意,盡管在對(duì)最差情況的PBA延遲和間隙的窮盡搜索的上下文中描述本估計(jì)技 術(shù),但是本估計(jì)技術(shù)還可以用于執(zhí)行對(duì)最好情況的PBA延遲和間隙的窮盡搜索。為了如此 完成,對(duì)在圖7中所描述的過(guò)程進(jìn)行修改,以便閾值間隙現(xiàn)在表示最好的重計(jì)算的PBA間 隙,并且步驟706、714和718中的條件完全保留。此外,用于關(guān)于段的延遲的新估計(jì)技術(shù)需 要提供用于實(shí)際PBA延遲的下限來(lái)取代上限。通常,本估計(jì)技術(shù)可以應(yīng)用于任何基于路徑 的STA過(guò)程。在一些實(shí)施例中,可以通過(guò)增加并行性,比如通過(guò)使用多線(xiàn)程或其它并行技術(shù),進(jìn) 一步改進(jìn)本技術(shù)的效率。通過(guò)同時(shí)地處理IC設(shè)計(jì)中的更多的路徑和更多的端點(diǎn),當(dāng)正在分 析新路徑時(shí),更多的先前重計(jì)算出的時(shí)序信息變得可用。圖9例示了根據(jù)本發(fā)明的實(shí)施例的用于在IC設(shè)計(jì)中執(zhí)行有效的基于路徑的STA 的裝置。
裝置902可以包括經(jīng)由有線(xiàn)或無(wú)線(xiàn)通信信道彼此通信的機(jī)構(gòu)。具體地,裝置902 可以包括識(shí)別機(jī)構(gòu)904、確定機(jī)構(gòu)906、估計(jì)機(jī)構(gòu)908和計(jì)算機(jī)構(gòu)910。上述機(jī)構(gòu)中的每個(gè)機(jī) 構(gòu)可以使用一個(gè)或多個(gè)集成電路實(shí)現(xiàn),或者被實(shí)現(xiàn)為通用處理器的模塊。裝置902可以是 計(jì)算機(jī)系統(tǒng)的部件。在一些實(shí)施例中,識(shí)別機(jī)構(gòu)904可以被配置為識(shí)別IC設(shè)計(jì)內(nèi)的一組路徑,其中每 條路徑包括一個(gè)或多個(gè)段;確定機(jī)構(gòu)906可以被配置為確定一組路徑中的路徑的至少一段 與通過(guò)先前執(zhí)行基于路徑的STA而計(jì)算的不同路徑共享,其中不同路徑中的至少一段與先 前計(jì)算的基于路徑的時(shí)序信息相關(guān)聯(lián);估計(jì)機(jī)構(gòu)908可以被配置為至少基于與不同路徑中 的共享段相關(guān)聯(lián)的基于路徑的時(shí)序信息,執(zhí)行對(duì)該路徑的基于路徑的延遲的估計(jì);以及計(jì) 算機(jī)構(gòu)910可以被配置為通過(guò)對(duì)路徑執(zhí)行基于路徑的STA,計(jì)算路徑的基于路徑的延遲。本發(fā)明的實(shí)施例的上述描述已經(jīng)被呈現(xiàn)來(lái)僅僅用于例示和描述。描述不是意在排 他性或者將本發(fā)明限制到所公開(kāi)的形式。相應(yīng)地,許多修改和變形對(duì)于本領(lǐng)域的技術(shù)人員 而言是顯而易見(jiàn)的。另外,上述公開(kāi)不是意在限制本發(fā)明。本發(fā)明的范圍由所附權(quán)利要求 限定。
權(quán)利要求
一種用于在電路設(shè)計(jì)中執(zhí)行有效的基于路徑的靜態(tài)時(shí)序分析(STA)的方法,所述方法包括識(shí)別所述電路設(shè)計(jì)內(nèi)的一組路徑,其中每條路徑包括一個(gè)或多個(gè)段;對(duì)于所述一組路徑中的一條路徑,確定所述路徑中的至少一段是否與先前通過(guò)執(zhí)行基于路徑的STA而計(jì)算過(guò)的不同路徑共享,其中所述不同路徑中的所述至少一段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián);并且如果是,則至少基于與所述不同路徑中的共享段相關(guān)的基于路徑的時(shí)序信息,執(zhí)行對(duì)所述路徑的基于路徑的延遲的估計(jì);否則,通過(guò)對(duì)所述路徑執(zhí)行基于路徑的STA,計(jì)算所述路徑的基于路徑的延遲,其中所述方法通過(guò)重用與先前計(jì)算過(guò)的路徑相關(guān)聯(lián)的時(shí)序信息來(lái)快速地估計(jì)還未被分析的路徑的基于路徑的延遲,減少計(jì)算時(shí)間。
2.如權(quán)利要求1所述的方法,其中,在執(zhí)行所述估計(jì)后,所述方法還包括通過(guò)執(zhí)行下述 來(lái)確定與所述路徑相關(guān)聯(lián)的基于路徑的延遲是否是所述一組路徑中的最差情況的基于路 徑的延遲確定所估計(jì)出的基于路徑的延遲是否大于閾值延遲;并且如果是,則通過(guò)對(duì)所述路徑執(zhí)行基于路徑的STA來(lái)計(jì)算所述路徑的基于路徑的延遲;否則,確定所述基于路徑的延遲不是所述一組路徑中的最差情況的基于路徑的延遲, 其中所述確定是基于所估計(jì)出的基于路徑的延遲來(lái)進(jìn)行的,而不實(shí)際計(jì)算所述路徑延遲的 基于路徑的延遲,從而減少計(jì)算時(shí)間。
3.如權(quán)利要求2所述的方法,其中,所述方法被用來(lái)在所述一組路徑中識(shí)別最差情況 的基于路徑的延遲和最差情況的基于路徑的間隙。
4.如權(quán)利要求1所述的方法,其中,在執(zhí)行所述估計(jì)后,所述方法還包括通過(guò)執(zhí)行下述 來(lái)確定與所述路徑相關(guān)聯(lián)的基于路徑的延遲是否是所述一組路徑中的最好情況的基于路 徑的延遲確定所估計(jì)出的基于路徑的延遲是否小于閾值延遲;并且如果是,則通過(guò)對(duì)所述路徑執(zhí)行基于路徑的STA,計(jì)算所述路徑的基于路徑的延遲;否則,確定所述基于路徑的延遲不是所述一組路徑中的最好情況的基于路徑的延遲, 其中所述確定是基于所估計(jì)出的基于路徑的延遲來(lái)進(jìn)行的,而不實(shí)際計(jì)算所述路徑延遲的 基于路徑的延遲,從而減少計(jì)算時(shí)間。
5.如權(quán)利要求4所述的方法,其中,所述方法被用來(lái)在所述一組路徑中識(shí)別最好情況 的基于路徑的延遲和最好情況的基于路徑的間隙。
6.如權(quán)利要求1所述的方法,其中,所述一組路徑終止于所述電路設(shè)計(jì)中的共同端點(diǎn)。
7.如權(quán)利要求1所述的方法,其中,所述基于路徑的時(shí)序信息包括基于路徑的延遲和 基于路徑的偏移。
8.如權(quán)利要求7所述的方法,其中,執(zhí)行對(duì)所述路徑的基于路徑的延遲的估計(jì)包括至 少基于與所述不同路徑中的同一段相關(guān)聯(lián)的基于路徑的延遲和基于路徑的偏移,估計(jì)所述 路徑中的所述段的基于路徑的延遲。
9.如權(quán)利要求8所述的方法,其中,所述路徑中的每個(gè)段與基于圖表的延遲和基于圖標(biāo)的偏移相關(guān)聯(lián),所述基于圖表的延遲和基于圖表的偏移是先前根據(jù)基于圖表的STA而針 對(duì)所述路徑計(jì)算出的,其中所述基于圖表的延遲和所述基于圖表的偏移提供對(duì)與所述路徑 相關(guān)聯(lián)的基于路徑的延遲和基于路徑的偏移的最差情況的估計(jì)。
10.如權(quán)利要求9所述的方法,其中,執(zhí)行對(duì)所述路徑的基于路徑的延遲的估計(jì)包括 至少基于與所述段相關(guān)聯(lián)的基于圖表的偏移,對(duì)所述路徑中的所述段的基于路徑的延遲進(jìn) 行估計(jì)。
11.如權(quán)利要求10所述的方法,其中,執(zhí)行對(duì)所述路徑的基于路徑的延遲的估計(jì)還包括對(duì)于所述路徑中的每個(gè)段,確定所述段是否與先前根據(jù)基于路徑的STA而計(jì)算過(guò)的另一路徑共享,其中所述另一 路徑中的所述段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián);如果是,則至少基于與所述另一路徑中的共享段相關(guān)的基于路徑的時(shí)序信息,執(zhí)行對(duì) 所述段的基于路徑的延遲的估計(jì);否則,使用與所述段相關(guān)聯(lián)的基于圖表的延遲,作為所述段的估計(jì)出的基于路徑的延 遲;并且對(duì)所述路徑中的所有段的估計(jì)出的基于路徑的延遲進(jìn)行求和,以獲得所述路徑的所估 計(jì)出的基于路徑的延遲。
12.如權(quán)利要求1所述的方法,其中,所述一組路徑終止于所述電路設(shè)計(jì)中的多個(gè)端點(diǎn)o
13.一種用于在電路設(shè)計(jì)中執(zhí)行有效的基于路徑的靜態(tài)時(shí)序分析(STA)的設(shè)備,所述 設(shè)備包括識(shí)別機(jī)構(gòu),配置為識(shí)別所述電路設(shè)計(jì)內(nèi)的一組路徑,其中每條路徑包括一個(gè)或多個(gè)段;確定機(jī)構(gòu),配置為確定所述一組路徑中的一條路徑的至少一段是否與先前通過(guò)執(zhí)行基 于路徑的STA而計(jì)算過(guò)的不同路徑共享,其中所述不同路徑中的所述至少一段與先前計(jì)算 出的基于路徑的時(shí)序信息相關(guān)聯(lián);估計(jì)機(jī)構(gòu),配置為用于至少基于與所述不同路徑中的共享段相關(guān)的基于路徑的時(shí)序信 息,執(zhí)行對(duì)針對(duì)所述路徑的基于路徑的延遲的估計(jì);以及計(jì)算機(jī)構(gòu),配置為通過(guò)對(duì)所述路徑執(zhí)行基于路徑的STA,計(jì)算所述路徑的基于路徑的延遲,其中所述設(shè)備通過(guò)重用與先前計(jì)算出的路徑相關(guān)聯(lián)的時(shí)序信息來(lái)快速地估計(jì)還未被 分析的路徑的基于路徑的延遲,減少計(jì)算時(shí)間。
14.如權(quán)利要求13所述的設(shè)備,其中,所述設(shè)備還包括最差情況確定裝置,用于在執(zhí)行 所述估計(jì)后確定與所述路徑相關(guān)聯(lián)的基于路徑的延遲是否是所述一組路徑中的最差情況 的基于路徑的延遲,所述最差情況確定裝置包括用于確定所估計(jì)出的基于路徑的延遲是否大于閾值延遲的裝置;以及 用于在確定所估計(jì)出的基于路徑的延遲大于閾值延遲時(shí)通過(guò)對(duì)所述路徑執(zhí)行基于路 徑的STA來(lái)計(jì)算所述路徑的基于路徑的延遲的裝置;用于在確定所估計(jì)出的基于路徑的延遲不大于閾值延遲時(shí)確定所述基于路徑的延遲不是所述一組路徑中的最差情況的基于路徑的延遲的裝置,其中所述確定是基于所估計(jì)出 的基于路徑的延遲來(lái)進(jìn)行的,而不實(shí)際計(jì)算所述路徑延遲的基于路徑的延遲,從而減少計(jì) 算時(shí)間。
15.如權(quán)利要求14所述的設(shè)備,其中,所述設(shè)備還包括用于在所述一組路徑中識(shí)別所 述最差情況的基于路徑的延遲和所述最差情況的基于路徑的間隙的裝置。
16.如權(quán)利要求13所述的設(shè)備,其中,所述設(shè)備還包括最好情況確定裝置,用于在執(zhí)行 所述估計(jì)后確定與所述路徑相關(guān)聯(lián)的基于路徑的延遲是否是所述一組路徑中的最好情況 的基于路徑的延遲,所述最好情況確定裝置包括用于確定所估計(jì)出的基于路徑的延遲是否小于閾值延遲的裝置;以及用于當(dāng)確定所估計(jì)出的基于路徑的延遲小于閾值延遲時(shí)通過(guò)對(duì)所述路徑執(zhí)行基于路 徑的STA來(lái)計(jì)算所述路徑的基于路徑的延遲的裝置;用于當(dāng)確定所估計(jì)出的基于路徑的延遲不小于閾值延遲時(shí)確定所述基于路徑的延遲 不是所述一組路徑中的最好情況的基于路徑的延遲的裝置,其中所述確定是基于所估計(jì)出 的基于路徑的延遲來(lái)進(jìn)行的,而不實(shí)際計(jì)算所述路徑延遲的基于路徑的延遲,從而減少計(jì) 算時(shí)間。
17.如權(quán)利要求16所述的設(shè)備,其中,所述設(shè)備還包括用于在所述一組路徑中識(shí)別最 好情況的基于路徑的延遲和最好情況的基于路徑的間隙的裝置。
18.如權(quán)利要求13所述的設(shè)備,其中,所述一組路徑終止于所述電路設(shè)計(jì)中的共同端點(diǎn)o
19.如權(quán)利要求13所述的設(shè)備,其中,所述基于路徑的時(shí)序信息包括基于路徑的延遲 和基于路徑的偏移。
20.如權(quán)利要求19所述的設(shè)備,其中所述估計(jì)機(jī)構(gòu)包括用于至少基于與所述不同路 徑中的同一段相關(guān)聯(lián)的基于路徑的延遲和基于路徑的偏移來(lái)估計(jì)所述路徑中的所述段的 基于路徑的延遲的裝置。
21.如權(quán)利要求20所述的設(shè)備,其中,所述路徑中的每個(gè)段與基于圖表的延遲和基于 圖標(biāo)的偏移相關(guān)聯(lián),所述基于圖表的延遲和基于圖表的偏移是先前根據(jù)基于圖表的STA而 針對(duì)所述路徑計(jì)算出的,其中所述基于圖表的延遲和所述基于圖表的偏移提供對(duì)與所述路 徑相關(guān)聯(lián)的基于路徑的延遲和基于路徑的偏移的最差情況的估計(jì)。
22.如權(quán)利要求21所述的設(shè)備,其中,所述估計(jì)機(jī)構(gòu)包括用于至少基于與所述段相關(guān) 聯(lián)的基于圖表的偏移對(duì)所述路徑中的所述段的基于路徑的延遲進(jìn)行估計(jì)的裝置。
23.如權(quán)利要求22所述的設(shè)備,其中,所述估計(jì)機(jī)構(gòu)還包括對(duì)于所述路徑中的每個(gè)段,用于確定所述段是否與先前根據(jù)基于路徑的STA而計(jì)算過(guò)的另一路徑共享的裝置,其 中所述另一路徑中的所述段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián);用于當(dāng)確定所述段與先前根據(jù)基于路徑的STA而計(jì)算過(guò)的另一路徑共享時(shí)至少基于 與所述另一路徑中的共享段相關(guān)的基于路徑的時(shí)序信息,執(zhí)行對(duì)所述段的基于路徑的延遲 的估計(jì)的裝置;用于當(dāng)確定所述段與先前根據(jù)基于路徑的STA而計(jì)算過(guò)的另一路徑不共享時(shí)使用與 所述段相關(guān)聯(lián)的基于圖表的延遲,作為所述段的估計(jì)出的基于路徑的延遲的裝置;以及用于對(duì)所述路徑中的所有段的估計(jì)出的基于路徑的延遲進(jìn)行求和,以獲得所述路徑的 所估計(jì)出的基于路徑的延遲的裝置。
24.如權(quán)利要求13所述的設(shè)備,其中,所述一組路徑終止于所述電路設(shè)計(jì)中的多個(gè)端點(diǎn)o
全文摘要
本發(fā)明涉及使用快速估計(jì)技術(shù)的有效的基于窮盡路徑的靜態(tài)時(shí)序分析。本發(fā)明的一個(gè)實(shí)施例提供了一種系統(tǒng),該系統(tǒng)在電路設(shè)計(jì)中執(zhí)行有效的基于路徑的靜態(tài)時(shí)序分析(STA)。在操作期間,系統(tǒng)識(shí)別電路設(shè)計(jì)內(nèi)的一組路徑,其中每條路徑包括一個(gè)或多個(gè)段。對(duì)于一組路徑中的一條路徑,系統(tǒng)確定該路徑中的至少一段是否與先前通過(guò)執(zhí)行基于路徑的STA而計(jì)算過(guò)的不同路徑共享,其中該不同路徑中的至少一段與先前計(jì)算出的基于路徑的時(shí)序信息相關(guān)聯(lián)。如果共享,則系統(tǒng)至少基于與該不同路徑的共享段相關(guān)聯(lián)的基于路徑的時(shí)序信息,執(zhí)行對(duì)該路徑的基于路徑的延遲的估計(jì)。否則,系統(tǒng)通過(guò)對(duì)路徑執(zhí)行基于路徑的STA,計(jì)算路徑的基于路徑的延遲。
文檔編號(hào)G06F17/50GK101877017SQ20091021130
公開(kāi)日2010年11月3日 申請(qǐng)日期2009年10月30日 優(yōu)先權(quán)日2009年4月30日
發(fā)明者C·索維亞尼, K·拉瑪特, R·赫萊赫爾 申請(qǐng)人:新思科技有限公司