專利名稱:統(tǒng)計時序分析中關鍵度預測的系統(tǒng)和方法
技術領域:
本發(fā)明涉及數(shù)字集成電路的設計自動化。更具體地說,它涉及存 在延遲變化時的數(shù)字電路統(tǒng)計靜態(tài)時序分析。
背景技術:
人們注意到,變異性(variability)隨著歷代集成電路技術的發(fā)展 成比例增大。這種變異性源包括例如制造變化、設備疲勞、環(huán)境變 化(例如溫度和供電電壓)以及鎖相環(huán)路(PLL)變化。在存在這些 變化時,希望獲知每條信號傳播弧(例如時序弧)的關鍵度 (criticality),即制造集成電路(例如芯片)、其中關鍵路徑通過感 興趣的信號傳播弧的概率。各種各樣的應用可從這種能力中獲益,包 括測試、時序報告和電路優(yōu)化。
現(xiàn)有技術的"確定性"時序方法在固定的工藝角或工藝"實例"上 執(zhí)行時序。因此,可能難以預測信號傳播弧關鍵度和電路延遲的概率 分布。此外,在確定性時序方法中,關鍵路徑是唯一的,因而成為優(yōu) 化方法中顯而易見的改進目標。在統(tǒng)計時序中,注意到每條路徑和每 條邊都有作為關鍵路徑和關鍵邊的某個非負概率。希望能夠按大小順 序預測這些邊關鍵度概率,以便指導集成電路的人工或自動優(yōu)化。
預測關鍵度概率的現(xiàn)有技術方法存在例如在正確地考慮相關性 時的低效率以及不能正確地考慮相關性之類的問題。計算關鍵度的一 種方法是通過產生滿足給定概率分布的過程參數(shù)的許多隨機組合、并 隨后執(zhí)行重復的確定性時序分析以便為每個單個的過程參數(shù)組合檢 測關鍵時序弧,來直接應用蒙特卡羅仿真。其中某特定邊在最關鍵路 徑上的那一小部分電路是該邊的關鍵度概率。然而,由于需要過多的 確定性時序分析,此方法的計算效率很低。另一現(xiàn)有方法使用參數(shù)化的統(tǒng)計靜態(tài)分析,在公開的題為
"System and Method for Probabilistic Criticality Prediction of Digital Circuits"的美國專利申請序列號2005/0066298中對其進行了描述。然 而,該方法隱含地假定"胎緊概率"(tightness probability )為獨立概 率。該假設是有缺陷的,原因在于由于信號傳播路徑的再收斂和對 于共有的全局變化源的依賴,胎緊概率可能是強相關的,從而導致對 關鍵度概率的預測不精確。
因此,需要克服上述問題。
發(fā)明內容
本發(fā)明的各方面涉及數(shù)字電路中用于關鍵度預測的系統(tǒng)和方法。 具體地說,本發(fā)明的各方面公開了 一種用于在參數(shù)化的統(tǒng)計靜態(tài)時序 分析(SSTA)中計算時序圖每條邊的關鍵度概率的方法。
本發(fā)明提供了一種用于確定電路時序圖的邊關鍵度概率的方法。 該方法包括形成與被計時的電路對應的有向無環(huán)時序圖,執(zhí)行該電路 的統(tǒng)計時序,為感興趣的每條邊定義將時序圖劃分為多個部分的割 集,為割集中的每條邊確定邊松弛(edge slack),為割集中的所有邊 松弛計算統(tǒng)計最大值,和根據(jù)統(tǒng)計最大值推斷每條邊的邊關鍵度概率。
本發(fā)明還提供了一種用于在電路的統(tǒng)計時序分析中預測關鍵度 的系統(tǒng),包括用于形成與被計時的電路對應的有向無環(huán)時序圖的裝 置,用于執(zhí)行電路的統(tǒng)計時序的裝置,用于為時序圖的每個層級定義 將時序圖劃分為多個部分的割集的裝置,用于為割集中的每條邊確定 邊松弛的裝置,用于為割集中的所有邊松弛計算統(tǒng)計最大值的裝置, 以及用于根據(jù)統(tǒng)計最大值推斷每條邊的邊關鍵度概率的裝置。
本發(fā)明還提供了 一種用于部署應用以優(yōu)化電路的時序特征的方 法,包括提供計算機基礎設施,其可操作為形成與被計時的電路對 應的有向無環(huán)時序圖;執(zhí)行電路的統(tǒng)計時序;為感興趣的每條邊定義 將時序圖劃分為多個部分的割集;為割集中的每條邊確定邊松弛;為割集中的所有邊松弛計算統(tǒng)計最大值;和根據(jù)統(tǒng)計最大值推斷每條邊 的關鍵度概率。
下面參考下列附圖介紹本發(fā)明的優(yōu)選實施例。
圖l是根據(jù)本發(fā)明實施例的統(tǒng)計靜態(tài)時序分析系統(tǒng)的示意框圖。
圖2是由時序弧的關鍵度所驅動的電路優(yōu)化系統(tǒng)的示意圖。
圖3是為介紹與圖1-2中提到的相關術語而提供的數(shù)字電路實例。
圖4示出了對圖3中所示的示例電路進行建模的時序圖。 圖5的示意圖示例了圖3中所示的數(shù)字電路的時序圖的信號傳播 路徑和時序弧的關鍵度。
圖6示出了變化空間,其中路徑的關鍵度區(qū)域經過如圖5所示時序弧.
圖7示出了時序圖的示例割集。
圖8是為時序圖計算時序圖割集的流程方法,該時序圖的實例見 圖4所示。
圖9示例了示例時序圖割集的計算過程。
圖IO示例了經過時序弧的所有路徑的最大延遲的計算過程。
圖10A是用于確定時序圖的邊的關鍵度概率的高級流程方法,
該時序圖的實例見圖4所示。
圖ll是用于計算時序弧關鍵度的流程圖。
圖12是用于計算N個一階線性模型的胎緊概率的流程圖。
圖13為一階模型的集合示出了二叉劃分樹實例。
圖14是使用二叉劃分樹為N個一階模型計算胎緊概率的流程
圖,圖13示例了二叉劃分樹的實例。
圖15是用于遍歷劃分樹和計算胎緊概率的流程圖,劃分樹的實
例見圖13所示。
圖16的計算機系統(tǒng)用于執(zhí)行本發(fā)明的各個方面。
具體實施例方式
本發(fā)明的各方面描述了在數(shù)字電路統(tǒng)計時序分析中用于預測信 號傳播弧的關鍵度的系統(tǒng)和方法。信號傳播弧的關鍵度是該弧為關鍵
弧的概率(即制造時序弧屬于時序關鍵的信號傳播路徑的芯片的概 率)。
圖1是根據(jù)本發(fā)明實施例的統(tǒng)計靜態(tài)時序分析系統(tǒng)100的示意框 圖。這里系統(tǒng)100也可稱作工具100。系統(tǒng)100被配置為接收多個輸 入110、 120、 130、 140。第一輸入是表示待分析電路的結構的電路網 表110。第二輸入是時序斷言120 (例如時序約束)集合。時序斷言 120典型地包括在主輸入上的到達時間、在主輸出上要求的到達時間、 與時鐘相位有關的信息、和由主輸出驅動的外部栽荷的詳細情況。時 序斷言120的形式可以是確定性數(shù)值或獨立概率分布或相關概率分布 或其任一組合。
第三輸入是參數(shù)化延遲模型130集合,這些延遲模型允許定時器 確定門或線的延遲作為延遲模型變量(例如輸入斜率或上升/下降時間 和輸出載荷)的函數(shù)和變化源的函數(shù)。例如,在公開的題為"System and Method for Statistical Timing Analysis of Digital Circuits,,的美國 專利申請序列號2005-0065765中所述的一階線性模型可用于確定延 遲。系統(tǒng)100被配置為接收關于變化源的統(tǒng)計信息140。變化源140 典型地包括變化源列表,每個變化源有均值和標準偏差。
概率或統(tǒng)計靜態(tài)時序模塊150被配置為接收輸入110、 120、 130、 140,以生成電路時序圖,其中標注有在電路所有節(jié)點上的到達時間 和要求時間(例如輸出160)的參數(shù)化一階模型160。參數(shù)化一階模 型160可以具有一階線性模型形式。標注有到達時間和要求時間的參 數(shù)化模型160的時序圖由單元170接收,其中單元170被配置為計算 時序弧的關鍵度。單元170計算時序弧的關鍵度180。時序弧的關鍵 度180表明在成品芯片上時序弧的關鍵度概率。例如,時序弧A的關 鍵度提供了制造時序弧A位于時序關鍵的信號傳播路徑上的芯片的概率。
圖2是根據(jù)本發(fā)明的實施例的由時序弧的關鍵度驅動的電路優(yōu) 化系統(tǒng)200的示意圖。系統(tǒng)200包括電路優(yōu)化模塊240和靜態(tài)時序分 析器250。電路優(yōu)化模塊240被配置為接收電路網表210、時序斷言 集合、參數(shù)化延遲模型220、以及優(yōu)化目標和約束230作為輸入。
電路網表210表示待優(yōu)化電路的結構。
參數(shù)化延遲模型220的集合使靜態(tài)時序分析器250能夠確定門或 線的延遲作為延遲模型變量(例如輸入斜率或上升/下降時間和輸出載 荷)的函數(shù)和變化源的函數(shù)。例如,在公開的題為"System and Method for Statistical Timing Analysis of Digital Circuits"的美國專利申請序 列號2005-0065765中所述的一階線性模型可用于確定延遲。
優(yōu)化約束230可以包括例如時序約束、泄漏和切換功率約束、信 號斜率約束、面積約束和噪聲約束。
優(yōu)化目標230指定希望實現(xiàn)優(yōu)化器240的目標。例如,優(yōu)化目標 可以是最小化芯片面積或功率、最大化生產量或性能等。
電路優(yōu)化器240接受各種輸入以產生優(yōu)化電路260,其中優(yōu)化電 路260可以是網表或數(shù)據(jù)庫形式。優(yōu)化電路260包括優(yōu)化目標230指 定的特征并且滿足優(yōu)化約束230。優(yōu)化電路260可以不同于網表210 指定的電路。區(qū)別例如可以在電路單元的尺寸或類型、或拓樸方面。
在優(yōu)化中,優(yōu)化器240與靜態(tài)時序分析器250交互以估計電路時 序特征。另外,優(yōu)化器240與時序弧關鍵度的計算器250交互以選擇 合適的電路單元作為改變單元尺寸、單元類型或者電路單元的其它優(yōu) 化轉換的備選??梢岳斫猓瑑?yōu)化可以是離散型或連續(xù)型,并且某些自 定義電路設計可以由也可以不由庫單元構成。所屬領域的技術人員能 夠創(chuàng)建可應用到這些不同的優(yōu)化場景的本發(fā)明的變體。
為了計算時序弧的關鍵度,在適當?shù)臅r候本說明書使用下列定
義
數(shù)字系統(tǒng)典型地以在每個時鐘周期或"滴嗒,,聲中執(zhí)行某些計算 的電路為基礎進行操作。在特定的時鐘周期內,給定的信號可能不切換、可能切換一次、或者可能切換很多次,這取決于運用到電路上的 輸入。在每個時鐘周期內,對于系統(tǒng)中的每一個信號,理想的是確保 正確的時序(例如早模式到達時間或"早到達時間"和晚模式到達時間 或"晚到達時間")。
將早模式到達時間定義為信號可能切換的最早時間(例如從在前 一時鐘周期中所處的穩(wěn)定邏輯狀態(tài)變化)。早模式到達時間確保前一 周期"穩(wěn)定下來,,,并在當前時鐘周期內在邏輯值變化或切換之前記錄 正確的邏輯值。允許信號切換且仍使電路如所希望的那樣運行的最早
時間稱作"早要求時間"(early required time )。
將晚模式到達時間定義為信號停止切換從而變得穩(wěn)定的最晚時 間。這確保電路已經在所需的時間內完成動作以滿足時鐘周期約束。 期望信號停止切換并穩(wěn)定在其最終的穩(wěn)定邏輯狀態(tài)上以使電路正常 工作的最晚時間稱為"晚要求時間"(late required time )。
在晚模式中,將要求時間和到達時間之間的代數(shù)差值定義為"晚 時序松弛"。同樣地,在早模式中,到達時間和要求時間之間的代數(shù) 差值稱為"早時序松弛"。
定時器通過經過時序圖"前向傳播"時序值來計算到達時間,并且 通過經過時序圖"后向傳播"時序值來計算要求時間。
為簡單起見,本說明局限于計算晚模式時序量(例如晚到達時間 和晚要求時間)。然而,應當注意到所提計算關鍵度的技術和方法可 擴展到早模式時序量(例如早到達時間和早要求時間)。
時序圖是數(shù)字電路的模型。時序圖的頂點對應于時序圖所建模的 電路的節(jié)點。時序圖的弧或"時序弧"連接頂點。時序弧是有向的,并 且模擬從一電路節(jié)點向另一電路節(jié)點的信號傳播。每條時序弧分配有 傳播延遲。該延遲等于從時序弧的初始頂點到其最終頂點的信號傳播 時間。時序圖的兩個節(jié)點可以有特殊的意義-所有信號在其上開始的 源節(jié)點和作為所有電路信號的目的地的宿節(jié)點。對于有一個主輸入和 一個輸出的電路,源節(jié)點是電路的主輸入,宿節(jié)點是電路的主輸出。 對于有多個主輸入和輸出的電路,為便于分析,將源和宿節(jié)點另外引入實際的電路節(jié)點。因此,源節(jié)點與電路的所有主輸入連接,宿節(jié)點 與電路的所有主輸出連接。
將具有帶有最小時序松弛的頂點的時序圖的路徑定義為關鍵路
徑。例如,如果電路設計成更高速工作,經過關鍵路徑的信號傳播可 能也得變快。發(fā)明人注意到,加速非關鍵路徑可能不會有助于電路更 快運轉,因為屬于關鍵路徑的時序弧被認為是關鍵的??赏ㄟ^降低選 擇的關鍵弧的延遲,將電路設計為更快運轉。非關鍵弧延遲的小改變 似乎不會影響電路性能。因此,為優(yōu)化電路,希望確定電路的關鍵時 序弧。對于集成電路的有效生產測試,獲知芯片的關鍵時序弧是有幫 助的。電子設計自動化的其它領域(例如布局、布線、緩沖器插入和 物理合成等)均可從時序弧關鍵度的獲知中獲益。
圖3是用于說明圖1-2中所述相關術語的示例數(shù)字電路的實例。 數(shù)字電路300有門320、 350和370。電路300有主輸入310、 340和 360,和主輸出330和380。
圖4示出了對圖3所示的示例電路300進行建模的時序圖400。 時序圖400包括源節(jié)點440和宿節(jié)點455。節(jié)點410、 430、 490對應 于圖3的主電路輸入310、 340和360。節(jié)點420和485對應于圖3的 主輸出330和380。節(jié)點420、 480和485對應于圖3的門320、 350 和370的輸出?;?25、 460、 475是分別連接源節(jié)點440與節(jié)點410、 430、 490的時序弧?;?35和470是使節(jié)點420、 485與宿節(jié)點455 連接的時序弧。根據(jù)分配給時序弧的延遲,信號經過所有的時序弧從 源節(jié)點440向宿節(jié)點455傳播。
在所有門傳播延遲是確定性值的實施例中,所有的到達和要求時 間也是確定性值。然而,如果要對制造和/或環(huán)境變異性進行建模,時 序弧的延遲應當被認為是用其對應的概率分布函數(shù)來描述的隨機變 量。于是,應當采用統(tǒng)計時序分析計算到達時間、要求時間和時序松 弛的概率分布。
參數(shù)化的統(tǒng)計靜態(tài)時序分析(SSTA)有益于電路分析和優(yōu)化。 根據(jù)該技術,將門延遲表示為一階線性模型
10j = a0+|>,風.+力 ,。 (1)
其中。。是均值;aat,是全局參數(shù)z,的變化(variation),
az,=《-%,。其中《.,。是義,的均值;",.是門延遲對參數(shù)變化/vy,.的靈
敏度;m。是引起門延遲的不相關變化的隨機變量;以及。 +,是門延遲
對不相關變化m。的靈敏度。
使用公式(l)的表達,參數(shù)化的SSTA計算電路時序特征(例如 到達和要求到達時間、延遲、時序松弛)的統(tǒng)計近似,作為相同的一
階線性模型形式的相同參數(shù)的函數(shù)。
參數(shù)化的統(tǒng)計STA可以是基于路徑的或基于塊的?;诼窂降?統(tǒng)計STA單獨地分析每條信號傳播路徑并計算電路延遲的概率分布 作為所有路徑延遲的概率最大值。通常這需要枚舉所有信號傳播路徑 并在參數(shù)變化空間內進行積分,這是一個低效率的計算過程。
另一參數(shù)化的SSTA技術是基于塊的SSTA。在該技術中,按照 每個電路節(jié)點的拓樸順序,以類似于確定性STA傳播到達時間的方 式,為每個電路節(jié)點計算信號到達時間和信號要求到達時間,作為過 程參數(shù)的函數(shù)。使用基于塊的SSTA,可以將時序分析當作增量運算 執(zhí)行,由此在實施電路改動后,可以有效地對時序進行查詢。
通過以門延遲遞增到達時間并計算最差到達時間,基于塊的STA 計算每個電路節(jié)點上的到達時間。以門延遲遞增到達時間與從門輸入
向門輸出傳播信號對應。本操作通過將門輸入上的到達時間與門延遲 相加執(zhí)行。計算最差到達時間是從到達門輸入的信號中選擇最差信 號。最差信號可以是最晚或最早到達時間,這取決于時序分析類型。 所提出的計算時序弧關鍵度的方法基于發(fā)明人所作的觀察,發(fā)明
鍵度總和,如圖5和6所示。
圖5是示出示例時序圖的信號傳播路徑和時序弧的關鍵度的示 意圖。具體地說,圖5示出了時序圖500,該時序圖500具有源節(jié)點 515和宿節(jié)點530。從時序圖500中,選擇具有初始頂點535和終端 頂點550的任意時序弧540。路徑520、 545和565從源節(jié)點515向時序弧540的初始節(jié)點535延伸。路徑525、 555和560從時序弧540
的終端節(jié)點550向宿節(jié)點530延伸。經過時序弧540的各條路徑是路
徑520、 545和565、時序弧540本身、和路徑525、 555和560的所
有可能的組合。時序圖500中的畫點區(qū)域表示為了簡明起見沒有在時
序圖中明確示出的更多節(jié)點和弧。
每條路徑的延遲可以用公式(1)的一階線性模型表示??紤]兩 條路徑&和^及其延遲的 一 階線性模型
A = + ""+1盧。,* (2)
/=1 ' =1
其中,"。,是延遲的均值;Az,是參數(shù)《的變化,az,. 其中《,。是《.的均值;&、。,.,是路徑延遲對參數(shù)變化a^,的靈敏度; a/ "、 m。,,是引起路徑延遲的不相關變化的隨機變量;以及^," "。+1,, 分別是路徑延遲對不相關變化m。。 m吣的靈敏度。延遲A和",(當 作隨機變量)有相同精確值的概率是0,除非
aa = a" (3)
于是,兩條路徑&和&中至少其一是關鍵路徑的概率是每條路徑
是關鍵路徑的單獨概率之和
尸(X或&是關鍵的)=尸"是關鍵的)+尸(^是關鍵的)(4) 如果公式(3)成立,則路徑&和s,可以有相同的延遲。那么如
果路徑&和&其中之一是關鍵的,則另一個也是關鍵的。如公式(5)
中所示,關鍵度值可以被分配給每條路徑&和s,。
尸"是關鍵的)=/^,是關鍵的)=尸(^或^是關鍵的)/2 (5)
可以看出,公式(4)對公式(5)也成立。
公式(5)示例的概念可以從一對路徑擴展到任意數(shù)量的路徑。 也就是說,路徑集合/^,&,...,5V中至少 一條路徑是關鍵路徑的概率等 于這些路徑中的每條路徑是關鍵路徑的單獨概率之和<formula>formula see original document page 13</formula> (6)
由此可以直接得到時序弧的關鍵度等于經過該弧的所有路徑的
關鍵度之和,如圖6所示。
圖6示出了一個變化空間,其具有經過如圖5的示例時序圖所示 的時序弧的路徑的關鍵度區(qū)域。具體地說,圖6示意性地示出兩個樣 本參數(shù)變化的空間610:有效信道長度i^/和晶體管閾值VM??臻g610 覆蓋丄6//和V^從-3(y到3o的變化??臻g610的每個點對應于Z^/,和 V,A的一個組合。多邊形615、 620、 625、 630、 635、 640、 645、 650、 655代表經過時序圖500的時序弧540 (圖5)的路徑是關鍵路徑的過 程參數(shù)組合的區(qū)域。每個多邊形區(qū)域對應于經過弧540的9條路徑之 一。應當理解,圖5的時序圖是示例性的,是為了更好地理解本發(fā)明 的各方面而示出的。在優(yōu)選實施例中,多邊形區(qū)域可以只互相鄰接但 絕對不會相交,因為路徑延遲是過程參數(shù)的不同線性函數(shù)。所有這些 多邊形615、 620、 625、 630、 635、 640、 645、 650、 655的并集是其 中時序弧540是關鍵的過程參數(shù)組合的區(qū)域,因為如果經過弧540的 路徑中的至少一條是關鍵的,則該時序弧就是關鍵的。
如果考慮屬于時序圖割集的時序弧集合,可以簡化時序弧關鍵度 的計算。將連接圖的割集定義為若從圖中刪除、則使圖分割為兩個不 相連部分的弧的任意集合。真割集(或最小割集)是指這樣一個割集, 即該割集的任一真割集自身不是割集。
為了簡化時序弧關鍵度的計算,只考慮將時序圖分為兩部分的真 割集,其中一部分包含源頂點,另一部分包含宿頂點。還有,只考慮 滿足下列性質的割集
如果割集C將時序圖劃分為兩個組件(component) F和G,以 便F組件含有源頂點且G組件含有宿頂點,則任一割集弧的初始頂點 屬于F組件,任一割集弧的終端頂點屬于G組件。換句話說,所有割 集弧的弧從包含源頂點的組件指向包含宿頂點的組件。為了簡潔,在 下面的描述中稱真割集為"割集"。
時序圖是有向無環(huán)圖(DAG )并且DAG的頂點總是可以按照拓樸分類(例如對DAG排序以便每條弧從低指數(shù)(index)頂點流向高 指數(shù)頂點)。
如果時序圖有割集C,則從時序圖的源頂點流向宿頂點的任一路 徑具有屬于割集C的弧-否則,源和宿頂點不能屬于圖的不同組件。
從源頂點到宿頂點的任一路徑上只有一條弧屬于割集。 一旦路徑 經過割集弧,它到達具有宿頂點的組件且不能返回具有源頂點的組 件。因此,該路徑不可能經過割集的另一條弧。因此,可以得出的結 論是同一割集的兩條時序弧"和6同時是關鍵的概率(即制造兩條時 序弧均是關鍵時序弧的芯片的概率)是0,因為所述弧具有經過它們 的不同路徑集。
對于時序圖的任一割集,時序弧關鍵度的和總為l,因為該和代 表芯片所有路徑的關鍵度之和。
假設對于給定割集C的任一時序弧《,已知經過該時序弧的所有
路徑的最大延遲的一階線性模型A,c:。于是,時序圖的最大延遲"的
一階模型,作為所有這些一階模型D,,c的統(tǒng)計最大值,可被計算為
<formula>formula see original document page 14</formula> (7)
其中最大值是從統(tǒng)計意義上對割集C的所有時序弧進行計算得 到的,wc是割集中的邊數(shù)。
經過時序弧",.的路徑的最大延遲A,c大于從源頂點到宿頂點的 任一其它路徑的延遲的概率恰好等于該時序弧。,的關鍵度。此概率
Sc等于在公式(7)中計算統(tǒng)計最大值時與延遲A,c對應的胎緊概率。
因此,為了計算時序弧關鍵度,希望計算時序圖的割集、經過每 個時序弧的路徑集的最大延遲的一階模型以及以一階線性模型形式 表示的這些最大延遲的胎緊概率。
圖7示出了時序圖的示例割集。具體地說,圖7示意性地示例了 時序圖700的割集780的實例。時序圖700有源節(jié)點735和宿節(jié)點750。 割集780包括從其初始節(jié)點725、 725和760分別流向終端節(jié)點740、 755和755的時序弧730、 785和765。路徑集715從源節(jié)點735流向 節(jié)點725。路徑集720從節(jié)點740流向宿節(jié)點750。路徑集770從源節(jié)點735流向節(jié)點760。路徑集775從節(jié)點755流向宿節(jié)點750。
圖8是為時序圖(圖4示出了其實例)計算時序圖割集的流程方 法。具體地說,圖8示例了用于構建時序圖割集的方法800。需要理 解的是可以用多種不同方法構建割集,且這里所述的發(fā)明構思是適用 的,與如何構建割集無關。方法800的輸入是時序圖,輸出是覆蓋該 時序圖所有時序弧的割集集合。
開始模塊810將控制傳遞給功能模塊815。
在步驟815,功能模塊815對時序圖分層(levelize)。將分層定 義為將時序圖的頂點集V劃分為子集(層級)F7,F(xiàn)2,...K ,以便每個 時序弧從低層級頂點流向高層級頂點。在確定性和統(tǒng)計時序分析中均 使用了分層,它是時序分析器(例如圖2中所示的時序分析器255) 的一部分??梢酝ㄟ^調用靜態(tài)時序分析工具的適當功能模塊或者通過 直接訪問由靜態(tài)時序分析工具創(chuàng)建的分層時序圖實現(xiàn)步驟815。然后 執(zhí)行步驟820。
在步驟820,創(chuàng)建空集C。。然后執(zhí)行步驟825。在步驟825,初 始化層級計數(shù)器/的值為1并設置變量w等于時序圖的層級數(shù)。然后 將方法移到步驟830。
在步驟830,計算割集C"考慮割集Cw,并從中刪除去往層級 F,的頂點的所有弧。還有,根據(jù)下面的公式,將從層級K的頂點離開 的所有弧添加到所得割集中
C尸CV廠〖去在琉^ Kf的敘_/+/岸矛琉^ K; (8)
然后移動方法到步驟835。
步驟835將層級計數(shù)器/的值加1并將控制傳遞給步驟840。 步驟840確定層級計數(shù)器/的值是否小于時序圖的層級數(shù)《。如 果計數(shù)器/小于",判斷模塊840將控制傳遞給功能模塊830以計算 時序圖的下一割集。否則,步驟840將控制傳遞給結束模塊845。
圖9示出示例性時序圖的割集的計算過程。具體地說,圖9解釋 了對具有源節(jié)點926和宿節(jié)點956的時序圖900的實例計算割集。為 了示例,示出了時序圖900的一個層級903和兩個割集980和983。層級903包括頂點930和976。頂點903有進入弧906和離開弧910 和940。頂點976有進入時序弧946和離開時序弧970。割集980包 括時序弧卯6、 936和946。割集983包括時序弧910、 940、 936和 970。圖9示出了當方法800處理時序圖900的層級903時的快照。 方法800從割集980轉換到割集983。通過考慮具有弧906、 936和 946的割集980,該方法計算割集983;從割集980中移除去往層級 903的頂點930、 976的弧906和946;添加離開層級903的頂點930、 976的弧910、 940和970,從而生成新割集{936、 910、 940、 970}。
圖10示例了經過時序圖的時序弧的所有路徑的最大延遲的計算 過程。將經過某條邊的所有路徑的最大延遲稱為該邊的邊松弛。具體 地說,圖IO示意性地示出了時序圖1000,其源頂點為1015,宿頂點 為1035。示出了經過任選的時序弧1040的路徑的最大延遲的一階模 型的計算過程。時序弧1040有初始頂點1025和終端頂點1030。路徑 集1020從源頂點1015流向所選時序弧1040的初始頂點1025。路徑 集1045從所選時序弧1040的終端頂點1030流向時序圖的宿頂點 1035。時序圖1000中所示的畫點區(qū)域表示更多未明示的時序圖節(jié)點 和邊。
假設參數(shù)化的統(tǒng)計時序分析已經算出了 一階線性模型形式的到 達時間和要求時間,并且根據(jù)靜態(tài)時序分析中到達時間和要求時間的
定義,可以得出結論是在時序弧1040的初始頂點1025上的到達時間 ^,恰好等于從源頂點1015到初始頂點1025的信號傳播最大延遲。 另一方面,在時序弧1040的終端頂點1030上的要求時間7^,恰好等
于從頂點1030到宿頂點1035的信號傳播最大延遲,不過要加負號。 為了簡明,假定源頂點1015上的到達時間和宿頂點1035上的要求時 間設置為0。經過時序弧1040的路徑集的最大延遲/)s是從源頂點1015 到時序弧1040的初始頂點1025的最大延遲D,加上時序弧1040本身 的延遲Z^加上從時序弧1040的終端頂點1030到宿頂點1035的最大 延遲"r:
Z^Z)y+Z^+Z^ (9)該延遲可以用由統(tǒng)計靜態(tài)時序分析算出的到達時間和要求時間
的值表示
"5=^r,/+ZV7W'r (10) 需要理解的是公式(9)和(10)中的加減運算是在統(tǒng)計意義上進行的。
綜上可知,可以根據(jù)統(tǒng)計時序分析的結果直接并有效地計算經過 時序圖的任一時序弧的所有路徑的最大延遲,即任一時序弧的邊松 弛。
圖10A是確定時序圖的邊關鍵度概率的高級流程方法,該時序 圖的實例已在圖4中示出。
在步驟1051,生成與被計時的電路對應的有向無環(huán)時序圖并執(zhí) 行電路的統(tǒng)計時序。然后方法移到步驟1052。
在步驟1052,對于感興趣的每條邊,定義將時序圖劃分為多個 部分的割集。然后執(zhí)行步驟1053。
在步驟1053,確定割集中感興趣的每條邊的邊松弛。然后執(zhí)行 步驟1054。
在步驟1054,確定割集中所有邊松弛的統(tǒng)計最大值。然后執(zhí)行 步驟1055。
在步驟1055,根據(jù)步驟1054的統(tǒng)計最大值運算推斷每條邊的近 關鍵度概率。
圖ll是為時序圖計算時序弧關鍵度的流程方法1100,該時序圖 實例已在圖9示出。開始模塊1110將控制傳遞給功能模塊1115。
功能模塊1115執(zhí)行參數(shù)化的統(tǒng)計時序分析,為時序圖的每個頂 點計算到達時間和要求的到達時間。功能模塊1115將控制傳遞給功 能模塊1120。
功能模塊1120構建覆蓋包含在時序圖中的所有時序弧的該時序 圖的割集。例如方法800可執(zhí)行此操作??墒褂闷渌线m的方法???以一次構建所有割集并隨后對其進行處理,或一次構建和處理一個割 集。功能模塊1120將控制傳遞給功能模塊1125。功能模塊1125設置變量M等于由功能模塊1120構建的割集數(shù)。 功能模塊1125將控制傳遞給功能模塊1130。
功能模塊1130初始化割集計數(shù)器/為1并將控制傳遞給功能模 塊1135。
功能模塊1135從功能模塊1120構建的割集集合中選擇第/個割 集G,功能模塊1135將控制傳遞給功能模塊1140。
功能模塊1140設置等于割集C,沖的時序弧數(shù)并將控制傳遞給 功能模塊1145。
功能模塊1145初始化當前割集中弧計數(shù)器乂為1并將控制傳遞 給功能模塊1150。
功能模塊1150從割集C,中選擇第乂個時序弧 并將控制傳遞給 功能模塊1155。
功能模塊1155找到時序弧 的初始頂點v,"/,"和終端頂點 ,,,,; 并將控制傳遞給功能模塊1160。
功能模塊1160計算經過時序?。サ乃新窂降募系淖畲笱舆t AV (即e,y的邊松弛)的一階線性模型如下
<formula>formula see original document page 18</formula> (12)
其中
* ^0w,)是在頂點上的到達時間
* d( )是時序弧e,:/的延遲
* ^(v—是在頂點,.,上的要求時間
功能模塊1160將控制傳遞給功能模塊1165。
功能模塊1165將時序弧計數(shù)器y'加1并將控制傳遞給判斷模塊
1170。
判斷模塊1170確定y的當前值是否不大于當前割集c:,.中的時序
弧數(shù)iV。如果/'不大于7V,判斷模塊1170將控制傳遞給功能模塊1150。 否則,判斷模塊1170將控制傳遞給功能模塊1175。
功能模塊1175為一階模型集合^),,,,/^,...,/>^計算胎緊概率 iV,A,2,.. .,Aw。例如,尸,口是A,7為P",A,2,.. .,"W中最大值的概率??梢杂枚喾N方法執(zhí)行該計算??赡艿姆椒ㄖ皇鞘褂妹商乜_技術。 胎緊概率的蒙特卡羅計算方法可能是有效的,因為它只要被應用與割
集數(shù)(等于時序圖深度) 一樣多的次數(shù)。功能模塊1175將控制傳遞 給功能模塊1180。
功能模塊1180設置當前割集的時序弧e,口,o..,e,w的關鍵度 等于功能模塊1175算出的胎緊概率i^,尸w,…,iV。功能模塊1180將 控制傳遞給功能模塊1185。
功能模塊1185將割集計數(shù)器Z加1并將控制傳遞給判斷模塊
1190。
判斷模塊1190確定/的當前值是否不大于割集數(shù)M。如果/的 當前值不大于i\f,判斷模塊1190將控制傳遞給功能模塊1135以處理 下一割集。否則,判斷模塊11卯將控制傳遞給功能模塊1195。
并不必須如上所述通過獨立的方法800和1100來使時序圖割集 的計算與時序弧關鍵度的計算分離。方法800、 1100可以結合起來以 便在割集構建之后立即計算屬于該割集的時序弧的關鍵度。
圖12示出了用于計算給定的W個一階線性模型附;,附2,...,/^的 胎緊概率的算法1200的框圖。這些一階線性模型可以是例如延遲、 到達或要求時間的模型。在計算邊關鍵度時,它們通常是割集中所有 邊的邊松他。
算法1200的開始模塊1205將控制傳遞給功能模塊1210。
功能模塊1210設置7V等于給定的一階統(tǒng)計模型的數(shù)目并將控制 傳遞給功能模塊1215。
功能模塊1215初始化一階線性模型計數(shù)器為1并將控制傳遞 給功能模塊1220。
功能模塊1220計算除模型附,之外的所有給定一階線性模型的統(tǒng)
計最大值。意思是計算iV-7個一階線性模型Wi,W2,…,Ww,附W,…,Ww 的統(tǒng)計最大值。計算結果是一階線性模型附w柳稱為邊/的補邊松弛。 功能模塊1220將控制傳遞給功能模塊1225。
功能模塊1225計算一階邊松弛模型w,大于功能模塊1220計算出的一階補邊松弛模型附附駄的胎緊概率尸。功能模塊1225將控制傳 遞給功能模塊1230。
功能模塊1230設置一階模型附,的胎緊概率尸,等于功能模塊1225 計算出的值尸并將控制傳遞給功能模塊1235。
功能模塊1235將一階線性模型計數(shù)器/加1并將控制傳遞給判 斷模塊1240。
判斷模塊1240確定/值是否不大于給定的一階模型數(shù)W。如果/ 的當前值不大于W,判斷模塊1240將控制傳遞給功能模塊1220。否 則,它將控制傳遞給功能模塊1245。
功能模塊1245計算一階線性模型附7,W2,…,附w的胎緊概率 /W,.,iV之和S并將控制傳遞給功能模塊1250。理論上,S應等于 1.0,但是由于數(shù)字舍入或其它近似的原因,它可能不等于l.O。
功能模塊1250通過將每個胎緊概率戶,除S來將每個胎緊概率 尸,的值歸一化。通過確保胎緊概率之和為1,該歸一化可以提高計算 的精確度。功能模塊1250將控制傳遞給結束模塊1255。
方法1200可能需要應用O(TV力次二進制統(tǒng)計最大值運算。在另 一實施例中,可通過下迷步驟在線性時間0(7N9內計算關鍵度將給定 的一階線性模型集合劃分為具有2,4,8,...,2'°-個元素的子集的層次嵌 套系統(tǒng);構建該層次劃分的二叉劃分樹;從有2個元素的子集開始, 為每個子集預先計算統(tǒng)計最大值,然后繼續(xù)到有4個元素的子集,依
此類推;以及遍歷二叉劃分樹并且為補子集和在此遍歷中所需的胎緊
概率計算統(tǒng)計最大值。
不失一般性,為節(jié)約篇幅,假定希望對其計算關鍵度的一階線性
模型附h附2,…,W;v的數(shù)目iV是2的冪
7V=2" (13) 圖13示出了一個有序二叉樹1300,用于8個一階線性模型集合
/>^,附2,附_ , /1^,W5,附6,附7,/M4/的層次均衡戈'J分。i亥樹有根節(jié)點1303和示 意性地代表給定一 階線性模型/yW,,W2,W3,/^,附5,W(j,附7,wW的葉節(jié)點
1333、 1335、 1338、 1340、 1343、 1345、 1348、 1350。在劃分的第一層級上,將葉節(jié)點集劃分為子集1323、 1325、 1328、 1330。樹節(jié)點 1313 、 1315 、 1318 、 1320 對應于這些子集 "附hW^,〖附3,/wW附5,W^,〖附7,W^。將第一層級的子集的集合劃分為第 二層級的兩個子集1355、 1360。樹節(jié)點1305、 1310對應于第二層級
的這些子集
圖14示出了計算給定的N個一階邊松弛線性模型的胎緊概率的 流程圖1400的框圖。發(fā)明人假定給定的一階邊松弛模型的數(shù)目是2 的冪,不過該方法可一般地適用于任意數(shù)量的一階邊松弛模型。
開始模塊1405將控制傳遞給功能模塊1410。
功能模塊1410設置iV等于希望計算其胎緊概率的給定的一階邊 松弛線性模型的數(shù)目。功能模塊1410將控制傳遞給功能模塊1415。
功能模塊1415計算劃分樹中的層級數(shù)為
"ogW (14)
由于假設給定一階模型數(shù)是2的冪(例如N是2的冪),所以 該計算是精確的。然而,方法1400可以擴展到處理任何數(shù)目的一階 模型。功能模塊1415將控制傳遞給功能模塊1420。
功能模塊1420創(chuàng)建劃分樹的葉(例如最低)層級并構建與給定 的一階線性模型對應的葉節(jié)點的有序集合。功能模塊1420將控制傳 遞給功能模塊1425。
功能模塊1425設置劃分層級(例如劃分樹層級)的計數(shù)器/為1 并將控制傳遞給功能模塊1430。
功能模塊1430設置在劃分的當前層級的子集(即在劃分樹當前 層級上的節(jié)點)的數(shù)目M-7V/2并將控制傳遞給功能模塊1435。
功能模塊1435初始化在劃分的當前層級的子集的計數(shù)器為1 并將控制傳遞給功能模塊1440。
功能模塊1440構建劃分的第個層級的第子集如下
<formula>formula see original document page 21</formula>(15)
通過包含來自前一層級劃分的兩個子集5W,々-,,&w,力來構建該子
集&》根據(jù)在劃分的前一層級上子集的順序,取子集能模塊1440將控制傳遞給功能模塊1445。
功能模塊1445計算所構建子集&y的一階線性模型附,v并將它賦 給該子集。通過計算與用于構建子集&,/的子集對應的一 階線性模型附w,w,附,w,々的統(tǒng)計最大值,計算該一階模型m^。 一階線 性模型是子集&v中所含的所有 一 階線性模型的統(tǒng)計最大值的 一 階 線性才莫型。功能模塊1445將控制傳遞給功能模塊1450。
功能模塊1450將子集計數(shù)器y'的當前值加1,然后將控制傳遞給 判斷模塊1455。
判斷模塊1455確定y'是否不大于在當前劃分層級上的子集數(shù)3f。 如果)不大于在當前劃分層級上的子集數(shù),判斷模塊1455將控制傳遞 給功能模塊1440以構建在劃分的當前層級上的下一子集。否則,將 控制傳遞給功能模塊1460。
功能模塊1460構建對應于劃分的第,'個層級的劃分樹的第i個層 級??梢栽谧蛹瘶嫿ㄟ^程中執(zhí)行該構建。然而,在優(yōu)選的實施例中, 為了更清楚,發(fā)明人將樹節(jié)點構建與子集構建分開。功能模塊1460 將控制傳遞給功能模塊1465。
功能模塊1465將劃分層級的計數(shù)器i加1并將控制傳遞給功能 模塊1470。
功能模塊1470計算在劃分的下一層級的子集數(shù)M為M-iW/2并 將控制傳遞給判斷模塊1475。
判斷模塊1475確定/是否小于劃分層級數(shù)w。如果/小于w,判 斷模塊1475將控制傳遞給功能模塊1435以構建下一劃分層級。否則, 將控制傳遞給功能模塊1480。
功能模塊1480通過給劃分樹添加根節(jié)點完成該樹的構建,并將 控制傳遞給功能模塊1483。
功能模塊1483將等于與根節(jié)點的右子節(jié)點對應的子集的一階線 性模型w^的補一階線性模型附,,c。—賦給根節(jié)點的左子節(jié)點。該補 模型等于與對應于左子節(jié)點的子集互補的子集的統(tǒng)計最大值的一階 線性模型。功能模塊1483將控制傳遞給功能模塊1485。功能模塊1485將等于與根節(jié)點左子節(jié)點對應的子集的一階線性 模型附,^的補一階線性模型附卬—賦給根節(jié)點的右子節(jié)點。該補模型 等于與對應于右子節(jié)點的子集互補的子集的統(tǒng)計最大值的一階線性 模型。功能模塊1485將控制傳遞給功能模塊1488。
功能模塊1488從上到下遍歷劃分樹的左子樹并為其葉節(jié)點計算 胎緊概率。遍歷方法1500將在下面參照圖15闡明。功能模塊1488 將控制傳遞給功能模塊1490。
功能模塊1490從上到下遍歷劃分樹的右子樹并為其葉節(jié)點計算 胎緊概率。功能模塊1490將控制傳遞給結束模塊1495。
圖15示例了用于遍歷劃分子樹和計算對應于其葉節(jié)點的一階模 型的胎緊概率的流程方法1500。方法1500具有遞歸結構。也就是, 該方法調用其自身來遍歷較低層的子樹。方法1500考慮與對應于劃 分子樹節(jié)點的子集互補的子集。方法1500計算補子集元素的統(tǒng)計最 大值的一階線性模型。將補子集的一階線性模型稱為補一階線性模型 或補邊爭^弛。
方法1500假定在調用方法1500之前,子樹的根具有已分配的補 一階模型。這是通過調用方法1500的方法1400或由方法1500在其 遞歸調用自身之前實現(xiàn)的。
開始模塊1505將控制傳遞給判斷模塊1510。
判斷模塊1510確定根節(jié)點的子節(jié)點是否為葉節(jié)點。如果子節(jié)點 是葉節(jié)點,判斷模塊1510將控制傳遞給功能模塊1515以處理葉節(jié)點。 否則,將控制傳遞給功能模塊1535。
功能模塊1515計算左補一階線性模型附"??ё鳛楦?jié)點的補模
型附r。w,c。,Z和右葉節(jié)點的一階模型附/ea/Wg/f/ 的統(tǒng)計最大值。功能模塊
1515將控制傳遞給功能模塊1520。
功能模塊1520計算左葉節(jié)點的一階模型附,^^的胎緊概率,作
為該一階線性模型附^y;,e/,和左補一階模型附,,c。,,的二進制胎緊概率。
功能模塊1520將控制傳遞給功能模塊1525。
功能模塊1525計算右補一階線性模型wv。哼,作為根節(jié)點的補模型附r。。,,c?!妥笕~節(jié)點的一階模型附^/^的統(tǒng)計最大值。功能模塊
1525將控制傳遞給功能模塊1530。
功能模塊1530計算右葉節(jié)點的一階線性模型附一w-的胎緊概 率,作為該一階模型附,e^^,和右補一階線性模型附^。一的二進制胎 緊概率。功能模塊1530將控制傳遞給結束模塊1555。
功能模塊1535計算左子節(jié)點的補一階線性模型附,,c。,,作為根節(jié) 點的補模型w,。屮?!蛯诟?jié)點的右子節(jié)點的子集的 一 階線性模 型附ri-的統(tǒng)計最大值。功能模塊1535將控制傳遞給功能模塊1540。
功能模塊1540計算右子節(jié)點的補一階線性模型/iv。,,作為根節(jié) 點的補模型w,。。,,e。—和對應于根節(jié)點的左子節(jié)點的子集的 一 階線性模 型附^的統(tǒng)計最大值。功能模塊1540將控制傳遞給功能模塊1545。
功能模塊1545從上到下遍歷劃分樹的左子樹并計算其葉節(jié)點的 胎緊概率。通過遞歸調用方法1500執(zhí)行遍歷。功能模塊1545將控制 傳遞給功能模塊1550。
功能模塊1550從上到下遍歷劃分樹的右子樹并計算其葉節(jié)點的 胎緊概率。通過遞歸調用算法1500執(zhí)行遍歷。功能模塊1550將控制 傳遞給結束模塊1555。
該方法是有效的,并且正確考慮了內在相關性。同時考慮了影響 電路性能的所有變化源。所得到的關鍵度概率使用于各種不同的無論 使用人工或自動化技術實現(xiàn)的設計任務(例如優(yōu)化、布局、緩沖器插
入和布線等)。
圖16的計算機系統(tǒng)用于執(zhí)行本發(fā)明的各個方面。 計算機系統(tǒng)1600在計算機基礎設施1602中提供。計算機系統(tǒng) 1600旨在代表任意類型的能夠執(zhí)行本發(fā)明內容的計算機系統(tǒng)。例如, 計算機系統(tǒng)1600可以是便攜式計算機、臺式機、工作站、手持設備、 服務器、計算機集群等。應當注意的是用戶1604可以直接訪問計算 機系統(tǒng)1600,或者可以操作通過網絡1606 (例如因特網、廣域網 (WAN)、局域網(LAN)、虛擬專用網(VPN)等)與計算機系統(tǒng)1600通 信的計算機系統(tǒng)。對于后種情況,計算機系統(tǒng)1600與用戶操作的計算機系統(tǒng)之間的通信可通過各種不同類型的通信鏈路組合發(fā)生。例 如,通信鏈路可以包括可利用有線和/或無線傳輸方法的任意組合的可
尋址連接。在通過因特網進行通信的情況下,通過傳統(tǒng)的基于TCP/IP 套接字的協(xié)議提供連接性,并且可以使用因特網服務提供商建立與因 特網的連接性。
所示的計算機系統(tǒng)1600包括處理單元1608、存儲器1610、總線 1612、輸入/輸出(I/O)接口 1614。還有,示出了計算機系統(tǒng)1600與 外部設備/資源1616和一個或多個存儲系統(tǒng)1618通信。通常,處理單 元1608執(zhí)行存儲在存儲器1610和/或存儲系統(tǒng)1618中的計算機程序 代碼,例如用于計算邊關鍵度的代碼。在執(zhí)行計算機程序代碼時,處 理單元1608可以相對于存儲器1610、存儲系統(tǒng)1618、和/或1/0接口 1614讀和/或寫數(shù)據(jù)??偩€1612提供在計算機系統(tǒng)1600中的每個組 件之間的通信鏈路。外部設備/資源1616可以包括能使用戶與計算機 系統(tǒng)1600交互的任何設備(例如鍵盤、定點設備、顯示器(例如顯 示器1620)、打印機等)和/或能使計算機系統(tǒng)1600與一個或多個其 它計算設備進行通信的任何設備(例如網卡、調制解調器等)。
計算機基礎設施1602只示例了可以用于實現(xiàn)本發(fā)明的各種類型 的計算機基礎設施。例如,在一個實施例中,計算機基礎設施1602
;驟的兩個或更多計算設備(例如服務器集;、)。而且,計算機系統(tǒng)
1600只代表可以用于本發(fā)明實踐中的許多類型的計算機系統(tǒng),其中每 種計算機系統(tǒng)可以包括硬件/軟件的諸多組合。例如,處理單元1608 可以包括單個處理單元、或者可以在一個或多個位置(例如在客戶端 和服務器)分布有一個或多個處理單元。類似地,存儲器1610和/或 存儲系統(tǒng)1618可以包括位于一個或多個物理位置上的各種不同類型 的數(shù)據(jù)存儲和/或傳輸介質的任意組合。還有,1/0接口 1614可以包 括用于與一個或多個外部設備/資源1616交換信息的任何系統(tǒng)。另外 還有,可以理解,圖16中未示出的一個或多個額外的組件(例如系 統(tǒng)軟件、通信系統(tǒng)、高速緩沖存儲器等)可以包含在計算機系統(tǒng)1600中。然而,如果計算機系統(tǒng)1600包括手持設備等,可以理解的是一 個或多個外部設備/資源1616 (例如顯示器1620)和/或一個或多個存 儲系統(tǒng)1618可以包含在計算機系統(tǒng)1600內,而不是如圖16所示在 計算機系統(tǒng)1600之外。
存儲系統(tǒng)1618可以是能夠在本發(fā)明中為信息提供存儲的任意類 型的系統(tǒng)(例如數(shù)據(jù)庫)。就此而言,存儲系統(tǒng)1618可以包括一個 或多個存儲設備,例如磁盤驅動器或光盤驅動器等。在另一實施例中, 存儲系統(tǒng)1618可以包含分布在例如局域網(LAN)、廣域網(WAN) 或存儲區(qū)域網絡(SAN)(未示出)上的數(shù)據(jù)。
而且,雖然未示出,用戶1604操作的計算機系統(tǒng)可以包括計算 機化的組件,它們類似于上面關于計算機系統(tǒng)1600提到的那些組件。
盡管這里提供的本發(fā)明的描述集中于最大運算(max operation),但應當理解,所屬領域的技術人員可以將本發(fā)明的教導 應用于最小運算(min operation )。而且,盡管這里提供的本發(fā)明的 描述集中于計算最晚到達時間,但應當理解,所屬領域的技術人員可 以將本發(fā)明的教導應用于計算最早到達時間。還有,盡管這里提供的 本發(fā)明的描述集中于組合電路,但應當理解,所屬領域的技術人員可 以將本發(fā)明的教導應用于順序電路。另外,盡管這里提供的本發(fā)明的 描述集中于門延遲是可分函數(shù)的情況,但應當理解,所屬領域的技術 人員可以將本發(fā)明的教導應用于門延遲是不可分函數(shù)的情況。
權利要求
1、一種用于確定電路時序圖的邊的關鍵度概率的方法,包括形成與被計時的電路對應的有向無環(huán)時序圖;執(zhí)行電路的統(tǒng)計時序;為感興趣的每條邊定義將時序圖劃分為多個部分的割集;為割集中的每條邊確定邊松弛;計算割集中所有邊松弛的統(tǒng)計最大值;和從統(tǒng)計最大值推斷每條邊的邊關鍵度概率。
2、 權利要求l的方法,其中多個部分中的笫一部分包括時序圖 的源節(jié)點,多個部分中的第二部分包括時序圖的宿節(jié)點。
3、 權利要求2的方法,其中割集包括邊,并且邊的源節(jié)點所處 的層級低于時序圖的當前層級。
4、 權利要求2的方法,其中割集包括邊,并且邊的宿節(jié)點所處 的層級高于時序圖的當前層級。
5、 權利要求2的方法,其中早模式統(tǒng)計邊松弛是早模式源節(jié)點 統(tǒng)計到達時間、負的早模式宿節(jié)點統(tǒng)計要求到達時間和邊的早模式延 遲的統(tǒng)計和。
6、 權利要求2的方法,其中晚模式統(tǒng)計邊松弛是晚模式源節(jié)點 統(tǒng)計到達時間、負的晚模式宿節(jié)點統(tǒng)計要求到達時間和邊的晚模式延 遲的統(tǒng)計和。
7、 權利要求1的方法,其中推斷包括將每條邊的邊關鍵度概率 確定為割集中所有邊的邊松弛的最大值的胎緊概率。
8、 權利要求l的方法,其中影響電路性能的各變化源被同時考慮。
9、 權利要求l的方法,其中通過使用劃分樹數(shù)據(jù)結構執(zhí)行推斷步驟。
10、 一種用于優(yōu)化電路的時序特征的方法,包括 根據(jù)權利要求1-9的任一方法確定時序圖的邊的關鍵度概率;和使用關鍵度概率指導電路的時序特征的優(yōu)化。
11、 權利要求10的方法,其中通過使用劃分樹數(shù)據(jù)結構執(zhí)行確定步驟。
12、 權利要求10的方法,其中確定步驟包括 形成與被計時的電路對應的有向無環(huán)時序圖; 執(zhí)行電路的統(tǒng)計時序;為感興趣的每條邊定義被配置為將時序圖劃分為多個部分的割集;為割集中的每條邊確定邊松弛; 計算割集中所有邊松弛的統(tǒng)計最大值;和從統(tǒng)計最大值推斷每條邊的邊關鍵度概率。
13、 一種用于在電路的統(tǒng)計時序分析中預測關鍵度的系統(tǒng),包括 用于形成與被計時的電路對應的有向無環(huán)時序圖的裝置;用于執(zhí)行電路的統(tǒng)計時序的裝置;用于為時序圖的每個層級定義將時序圖劃分為多個部分的割集 的裝置;用于為割集中的每條邊確定邊松弛的裝置; 用于計算割集中所有邊松弛的統(tǒng)計最大值的裝置;和用于從統(tǒng)計最大值推斷每條邊的邊關鍵度概率的裝置。
14、 一種計算機程序,包括用于執(zhí)行根據(jù)權利要求1-12中任一 權利要求中的方法的所有步驟的指令。
全文摘要
描述了用于確定電路時序圖的邊關鍵度概率的方法。該方法包括形成與被計時的電路對應的有向無環(huán)時序圖,執(zhí)行電路的統(tǒng)計時序,為感興趣的每條邊定義將時序圖劃分為多部分的割集,為割集中的每條邊確定邊松弛,計算割集中所有邊松弛的統(tǒng)計最大值,和從該統(tǒng)計最大值推斷每條邊的邊關鍵度概率。還描述了用于確定電路時序圖的邊關鍵度概率的系統(tǒng)。
文檔編號G06F17/50GK101317178SQ200680044096
公開日2008年12月3日 申請日期2006年12月12日 優(yōu)先權日2005年12月16日
發(fā)明者C·威斯維斯瓦里亞赫, N·文卡特斯瓦蘭, V·佐羅托夫, 熊瑾珺 申請人:國際商業(yè)機器公司