TWI493370B - 工程變更之保持時間修復方法 - Google Patents

工程變更之保持時間修復方法 Download PDF

Info

Publication number
TWI493370B
TWI493370B TW102107593A TW102107593A TWI493370B TW I493370 B TWI493370 B TW I493370B TW 102107593 A TW102107593 A TW 102107593A TW 102107593 A TW102107593 A TW 102107593A TW I493370 B TWI493370 B TW I493370B
Authority
TW
Taiwan
Prior art keywords
padding
gate
layout
node
expressed
Prior art date
Application number
TW102107593A
Other languages
English (en)
Other versions
TW201435629A (zh
Inventor
Iris Hiu Ru Jiang
yu ming Yang
Sung Ting Ho
Original Assignee
Univ Nat Chiao Tung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Chiao Tung filed Critical Univ Nat Chiao Tung
Priority to TW102107593A priority Critical patent/TWI493370B/zh
Priority to US13/931,589 priority patent/US8839173B1/en
Publication of TW201435629A publication Critical patent/TW201435629A/zh
Application granted granted Critical
Publication of TWI493370B publication Critical patent/TWI493370B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

工程變更之保持時間修復方法
本發明係關於積體電路的技術領域,尤指一種工程變更之保持時間修復方法。
隨著積體電路製程技術的不斷演進,以往對電路影響不大的效應,如今在先進製程的設計階段都必須要加以考慮,才能確保電路的正常運作。例如種種因為動態變異而造成的影響,像是工作電壓的變化、製程的變異、溫度的波動、軟錯誤(soft error)以及電晶體的退化,而造成時序上的錯誤(timing error)。在傳統的電路設計當中,往往使用最壞情況設計(worst-case design),設計者會預留時序保護帶(timing guardband),來保證即使遇到最糟糕的條件下,電路都能在正確的時間內完成運算。然而,由於預留時序保護帶(timing guardband)的關係,也因此降低了電路效能。
為了消除時序保護帶(timing guardband)對電路效能的影響,許多擁有錯誤偵測和修正的可復原式電路 (resilient circuits)被提了出來。例如D.Ernst et al.在MICRO,pp.7-18,2003所發表的論文「Razor:a low-power pipeline based on circuit-level timing speculation」中,提出Razor正反器(Razor flip-flop)來用以偵測錯誤的電路。圖1係習知Razor正反器之使用示意圖,其藉由額外的儲存元件陰影拴鎖器(shadow latch)110來取樣組合邏輯120的輸出,此儲存元件110由經過延遲的時脈clk_dly所控制,再將主正反器130與陰影拴鎖器(shadow latch)110的輸出經由一互斥反或閘(XNOR)140做比對。如果比對結果發現有錯誤,就會發出偵測到錯誤的訊號,並把造成錯誤結果的指令重新計算來做錯誤修正。
然而對可復原式電路(resilient circuits)而言, 保持時間(hold time)是個非常重要議題。例如以圖1的電路為例子,如果下個週期的信號經由短路徑(short path)而被延遲的時脈所偵測到的話,會造成錯誤的判斷。為了要避免錯誤判斷的發生,短路徑(short path)的延遲至少要超過錯誤偵測窗框(error detection window)w,例如一般時脈clk和延遲時脈clk_dly的相位差。一錯誤偵測窗框w會對保持時間裕度(hold time margin)產生額外的要求,這個問題也存在於其它論文所提出的的可復原式電路(resilient circuits)中。由於對保持時間裕度(hold time margin)的額外要求,使得可復原式電路(resilient circuits)所面臨的短路徑填補(short path padding)問題更加的複雜。
對於延遲填補(delay padding)的問題,習知技 術提出了對短路徑(short path)塞入緩衝器(buffer)來增加其延遲的方法。
習知技術中,延遲填補(delay padding)會與時 脈偏移排程(clock skew scheduling)的方法一起在邏輯再合成(logic resynthesis)的階段設法降低時脈週期,其目標是決定每條路徑(path)的填補延遲(padding delay)而非該在哪位置插入延遲(insert delay)。
相較之下,另一種習知技術會決定該在哪個位 置插入延遲(insert delay)。N.V.Shenoy et al.在ICCAD,pp.156-161,1993所發表的論文「Minimum padding to satisfy short path constraints」提出了藉由線性規劃的解決方法。由於線性規劃的計算時間比較長,所以不適合用於大型設計。針對線性規劃方法不適合用於大型設計,一種先前技術提出了貪婪啟發式演算法。其中一種貪婪的方式是針對最大建立鬆弛(setup slack)的邏輯閘來做填補,目的是為了不要傷害到最長路徑延遲(longest path delay)。另一種貪婪的方式是針對最多保持違規路徑(hold violating paths)經過的邏輯閘來做填補,目的是為了減少總填補延遲(total padding delay)。
圖2係一習知將時序錯誤可復原式電路 (timing error resilient circuits)整合至一設計之流程圖。由於考慮時序保護頻帶(timing guardband),基於保守時序週期(conservative clock period)的邏輯合成和時序分析後,目標時序週期(target clock period)和所述錯誤偵測區間w則 會被確定。Sth 及Hth 代表目標時序週期對保守時序週期的比率。其最長路徑延遲超過目標時鐘週期之時序可疑的正反器(flip-flop)會被可復原式電路所取代。正反器(flip-flop)被可復原式電路取代前,設計會被再合成,此時,時序可疑的正反器(flip-flop)會被分配有一個額外的保持時間裕度(hold time margin)以覆蓋該錯誤偵測窗框(error detection window)w。在正反器(flip-flop)被可復原式電路取代後,執行佈局及繞線(placement & routing)。由於顯著的保持時間裕度(hold time margin)及保持違規(hold violations)可能仍然存在於一個佈局及繞線後的設計中,因此,最後執行短路徑填補。
根據先前技術所提出的啟發式方法,無法妥善 的填補所有短路徑(short path)。圖3A至圖3D係習知技術填補短路徑之示意圖。圖3A電路之邏輯閘g1 ,g2 ,g3 發生保持違規(hold violations)。如果反覆地針對最大建立鬆弛(setup slack)的邏輯閘來做填補或是針對最多保持違規路徑(hold violating paths)經過的邏輯閘來做填補,會得到圖3B和圖3C的結果。由圖3B和圖3C可以發現邏輯閘g2 的保持違規(hold violations)無法解決。但是如果以圖3D的填補方式,是可以解決所有的保持違規(hold violations)。因此可以發現,如果在填補的時候只有採取區域觀點(local view),可能會有無法修補的結果。然而,即使找到了一組不錯的填補方法(padding solution),因為緩衝器能提供的延遲是固定的,仍然可能會在實體具現(physical implementation)時失敗。例如,希望對邏輯閘g2 增加0.2單位的延遲,而緩衝器只能提供0.15單位的延遲和0.25單位的延遲,仍然會導致填補失敗。因此習知之保持時間修復之技術實仍有改善的空間。
本發明之目的主要係在提供一工程變更之保 持時間修復方法,以全域觀點找出填補數值,並在粗質延遲填補(coarse-grained delay padding)中使用備用元件(spare cell),而細質延遲填補(fine-grained delay padding)中使用虛擬金屬(dummy metal),而可成功地修復一已佈局及繞線設計的保持時間。
為達前述之目的,本發明提出一種工程變更之 保持時間修復方法,其係對一已佈局及繞線設計藉由塞入最少的電容(capacitance)來填補完該已佈局及繞線設計的短路徑(short path),該方法包含一填補數值決定步驟(Padding Value Determination)及一負載/緩衝配置步驟(load/buffer allocation)。該填補數值決定步驟接收該已佈局及繞線設計,依據一元件庫(cell library)、一時序限制(timing constraints)及一時序分析報告(timing analysis report),以決定並輸出該已佈局及繞線設計之每一個閘所需填補(padding)的數量與位置。該負載/緩衝配置步驟依據一備用元件(spare cells)資訊、一虛擬金屬資訊(dummy metal information)、及該已佈局及繞線設計之每一個閘所需填補 (padding)的數量與位置,以填補完該已佈局及繞線設計的短路徑(short path)。
110‧‧‧陰影拴鎖器
120‧‧‧組合邏輯
130‧‧‧主正反器
圖1係習知Razor正反器之使用示意圖。
圖2係一習知將時序錯誤可復原式電路整合至一設計之流程圖。
圖3A至圖3D係習知技術填補短路徑之示意圖。
圖4係本發明一種工程變更之保持時間修復方法的流程圖。
圖5A及圖5B係本發明增加短路徑(short path)的延遲之示意圖。
圖6A及圖6B係本發明對一已佈局及繞線設計執行填補數值之示意圖。
圖7係本發明一有界盒子(bounding box)中的對應備用元件之示意圖。
圖8係本發明以動態規劃解次集合加總解時的表格之示意圖。
圖9係本發明競爭相同的備用元件之示意圖。
圖10係本發明填補閘/走線選擇最佳的次集合加總解之示意圖。
圖11係本發明衝突填補閘/走線之虛擬金屬的示意圖。
圖12係本發明所使用最大流量網絡方法之示意圖。
圖13係本發明基準統計的結果之示意圖。
圖14A及圖14B係本發明的方法與習知技術的填補數值比較之示意圖。
圖15係本發明的方法與習知技術的負的建立鬆弛及負的保持鬆弛(negative setup slack/negative hold slack)比較之示意圖。
圖4係本發明一種工程變更之保持時間修復方法的流程圖,該工程變更之保持時間修復方法係對一已佈局及繞線設計藉由塞入最少的電容(capacitance)來填補完該已佈局及繞線設計的短路徑(short path)。
本發明所使用的元件時序模型(cell timing model)是根據Synopsys公司的liberty library。閘延遲(gate delay)以查表(lookup table)的方式儲存,以輸入迴轉(input slew)和輸出電容(output capacitance)為索引去查表即可得到閘延遲(gate delay)。每條網絡(net)的走線延遲(wire delay)會加在對應的驅動閘(driving gate)上。閘的輸出電容(output capacitance)包含走線負載(wire loading)、扇出閘(fanout gate)的輸入電容(input capacitance)和輸出接腳電容(output pin capacitance)。G.D.Hachtel and F.Somenzi在其2006出版的「Logic Synthesis and Verification Algorithms」一書中,提出負載決定現象(loading dominance phenomenon),亦即,改變輸出負載(output loading)對閘延遲(gate delay) 的影響遠大於改變輸入延遲(input slew)。因此,本發明藉由增加閘的輸出電容(output capacitance)來增加延遲,亦即在本發明中,所增加的延遲將被轉換為電容(capacitance)。此外,閘的輸出電容(output capacitance)不能大於元件庫(cell library)中所定義的最大負載電容(maximum load capacitance)。
短路徑填補(short path padding)對傳統的電路設計是很重要的,並且在可復原式電路(resilient circuits)的問題當中更具有挑戰性。為了使可復原式電路(resilient circuits)的錯誤偵測和修正能夠有效運作,本發明致力於解決短路徑填補(short path padding)的問題,短路徑填補(short path padding)的問題可視為:給定一個已佈局及繞線設計(placed and routed design)、元件庫(cell library)、備用元件(spare cells)資訊、虛擬金屬資訊(dummy metal information)、時序限制(timing constraints)、及時序分析報告(timing analysis report)後,本發明藉由塞入最少的電容(capacitance),來填補完所有的短路徑(short path)並且滿足時序限制(timing constraints)。
由於在設計流程的早期階段,時序(timing)與實體資訊(physical information)仍不夠明確,因此本發明在後佈局階段(post-layout stage)執行短路徑填補(short path padding)。圖5A及圖5B係本發明增加短路徑(short path)的延遲之示意圖。如圖5A所示,本發明藉由插入緩衝器,來增加短路徑(short path)的延遲。如圖5B所示,本發明藉 由加掛額外的負載電容(load capacitance),來增加短路徑(short path)的延遲。因此,元件(cell)與金屬走線都能夠用來增加短路徑(short path)的延遲。通常電路設計會在佈置(placement)階段預先布置備用元件(spare cell,redundant cell)。虛擬金屬(dummy metal)亦可增加延遲,因此在本發明中,虛擬金屬(dummy metal)可以視為電容(capacitance)的額外來源並且大小可以被調整。因此,在後佈局階段(post-layout stage)可以藉由對備用元件(spare cell)與虛擬金屬(dummy metal)的重新繞線來完成填補。根據Synopsys公司的Liberty library規範,對短路徑(short path)所增加的延遲所轉換為增加的負載電容(load capacitance)或插置緩衝器(inset buffer)的數量,係可以經由查表所得到。
如圖4所示,本發明一種工程變更之保持時間修復方法包含一填補數值決定步驟(Padding Value Determination)及一負載/緩衝配置步驟(load/buffer allocation)。
該填補數值決定步驟(Padding Value Determination)接收該已佈局及繞線設計,依據一元件庫(cell library)、時序限制(timing constraints)及一時序分析報告(timing analysis report),以決定並輸出該已佈局及繞線設計之每一個閘所需填補(padding)的數量與位置。該填補數值決定步驟(Padding Value Determination)係以全域觀點(global view)來產生所需填補(padding)的數量與位置。
該負載/緩衝配置步驟依據一備用元件(spare cells)資訊、一虛擬金屬資訊(dummy metal information)、及該已佈局及繞線設計之每一個閘所需填補(padding)的填補數值與位置,以填補完該已佈局及繞線設計的短路徑(short path)。該負載/緩衝配置步驟藉由增加額外的負載電容(load capacitance)與插置緩衝器(inset buffer)來實現。為了達成該填補數值決定步驟所產生的填補數值(padding value),該負載/緩衝配置步驟分成粗質延遲填補(coarse-grained delay padding)與細質延遲填補(fine-grained delay padding)兩階段來處理。在粗質延遲填補(coarse-grained delay padding)中,使用備用元件(spare cell),而細質延遲填補(fine-grained delay padding)使用虛擬金屬(dummy metal)。
一般來說,愈多的填補延遲(padding delay)代表著需要更多的資源用於填補上。因此,本發明首先縮小所有的填補延遲(padding delay),然後將每個閘/走線(gate/wire)的填補延遲(padding delay)轉換成負載/緩衝器(load/buffers)。然而,此會面臨到兩個問題,第一個問題是要選擇哪個邏輯閘來填補延遲(padding delay),第二個問題是不能傷害到該已佈局及繞線設計中的閘之建立時間(setup time)。
第一個問題的困難在於,如果對靠近主要輸入(primary input)的閘來做填補的話,可以很容易的就符合時序限制(timing constraints),但全部的填補數值(padding value)卻會增加。如果對較多短路徑(short paths)所經過的gate閘來做填補的話,可以降低全部所使用的填補數值 (padding value),但是卻可能違反時序限制(timing constraints)。在圖2A中,如果對閘g2 與閘g3 來填補0.3單位的延遲,這樣一來雖然滿足時序限制(timing constraints),但總共需要0.6的填補數值(padding value)。如果對閘g1 來填補0.3單位的延遲,發現經由閘g2 到o1 的這條短路徑(short path)會無解。因此,為了要處理這個問題,決定填補數值(padding value)與位置的同時必須要有全域觀點(global view)。
該填補數值決定步驟(Padding Value Determination)包含一填補資源收集步驟(Padding resource collection)、一扇出填補靈活性計算/靈活性檢查步驟(fanout padding flexibility calculation/flexibility checking)、一填補值決定步驟(padding value decision)、一判斷步驟、及一填補值再精鍊步驟(padding value refinement)。
由於本發明的工程變更之保持時間修復方法適用於在後佈局階段(post-layout stage),故首先需對可填補資源進行蒐集。可用於對每個閘進行填補的資源包括該已佈局及繞線設計之一個閘其扇出網絡(fanout net)的一有界盒子(bounding box)中的對應備用元件(spare cells)資訊及對應虛擬金屬資訊(dummy metal information),故在該填補資源收集步驟(padding resource collection)中,依據該備用元件(spare cells)資訊及該虛擬金屬資訊(dummy metal information),以收集該已佈局及繞線設計之一個閘其扇出網絡(fanout net)的一有界盒子(bounding box)中的對應備用 元件(spare cells)資訊及對應虛擬金屬資訊(dummy metal information)。
邏輯閘gi 的最大填補電容Cmax (i)係為元件庫(cell library)中所定義最大輸出電容的最小值及及其可用之填補資源。因此一正反器之輸入或一主要輸出的最大填補電容Cmax (i)為0。一個位於邏輯閘gi 與邏輯閘gj 之間的走線之最大填補電容Cmax (i,j)亦可如最大填補電容Cmax (i)定義,不予贅述。最大填補電容Cmax (i)及Cmax (i,j)代表上限,但仍保留靈活性(flexibilities)來設置填補數值。
該扇出填補靈活性計算/靈活性檢查步驟(fanout padding flexibility calculation/flexibility checking)計算該已佈局及繞線設計之一個閘的扇出填補靈活性(fanout padding flexibility)PF (i)。為了要以全域觀點(global view)來決定填補數值與位置,首先對所有保持違規邏輯閘(hold violating gate)的扇出錐(fanout cone)計算扇出填補靈活性(fanout padding flexibility)PF (i)。
在電路設計的過程當中,通常會表示成有向圖(directed graph)K=(G,E)。該有向圖K=(G,E)係表示有向圖K係由閘G及邊E所組成。該有向圖K的每個節點gi G表示一個邏輯閘,並在其上以D(i)表示閘延遲(gate delay)。每一條邊e(i,j)E表示連著閘的導線。節點gi 的輸出端之建立到達時間(setup arrival time)A(i)係以下列公式表示: 節點gi 的輸出端之建立需要時間(setup required time)R(i)係以下列公式表示: 節點gi 的輸出端的保持到達時間(hold arrival time)a(i)係以下列公式表示: 節點gi 的輸出端之保持需要時間(hold required time)r(i)係以下列公式表示:
邊e(i,j)E係由節點gi 指向節點gj ,紀錄該邊e(i,j)的建立邊緣鬆弛(setup edge slack)S(i,j)係以下列公式表示:S (i ,j )=R (i ,j )-A (i )。節點gi G所記錄的建立節點鬆弛(setup node slack)S(i)係以下列公式表示: 邊e(i,j)E紀錄由節點gi 指向節點gj 的保持邊緣鬆弛(hold edge slack)H(i,j)係以下列公式表示:H (i ,j )=a (i )-r (i ,j )。節點gi G所記錄的保持節點鬆弛(hold node slack)H(i)係以下列公式表示: 以圖3A的例子,可計算出H(2,1)=0.1-0.4=-0.3,H(2,o1 )=0.1-0.3=-0.2,H(2)=-0.3。
每個節點gi 的安全填補數值(safe padding value)Psaf (i)可用下列公式表示:P saf (i )=min{S (i ),| min{0,H (i )}|,P max (i )}。其中,Pmax (i)為節點或邏輯閘gi 的最大填補延遲(maximum padding delay)。該最大填補延遲(maximum padding delay)Pmax (i)係由最大填補電容Cmax (i)轉換而來,因此一正反器之輸入或一主要輸出的最大填補延遲(maximum padding delay)Pmax (i)為0。
根據以上的定義,對短路徑(short path)所經過的節點gi 增加t延遲且t≦Psaf (i)時,滿足此條件的情況下是不會違反時序限制(timing constraints)。
節點gi G所記錄的扇出填補靈活性(fanout padding flexibility)PF (i)係以下列公式表示: 當中,H' (i ,j )=H (i ,j )+P F (j )+P saf (j )。
H'(i)和S'(i)表示在扇出都填補最大可允許的值情況下的更新後之鬆弛。Psaf (i)也會隨著動態地做更新。
本發明對每一個閘gi 定義扇出填補靈活性 (fanout padding flexibility)PF (i),來表示閘gi 的扇出錐(fanout cone)之中所允許的最大填補數值。對於保持滿足的閘(hold satisfying gate)或是主要輸出(primary output),其扇出填補靈活性PF (i)的值會是0。當扇出都填補最大可允許的數值情況下,對於保持違規邏輯閘(hold violating gate)gi ,其扇出填補靈活性PF (i)的值會是閘gi 目前的保持節點鬆弛(hold node slack)H(i)和扇出邊緣(fanout edge)最小的更新後的保持邊緣鬆弛(hold edge slack)之差異。
根據上述數學公式,扇出填補靈活性PF(i)會從主要輸出(primary output)朝著主要輸入(primary input_計算回去。例如以圖3A的例子,根據數學公式可以得到以下數值:PF (o1)=0.0,PF(FF2)=0.0;PF (1)=min{0,(-0.3+0.0+0.0)}-(-0.3)=0.0;H'(1)=-0.3,S'(1)=0.4;PF (2)=min{0,(-0.2+0.0+0.0),(-0.3+0.0+0.3)}-(-0.3)=0.1;H'(2)=min{(-0.3+0.0+0.3),(-0.2+0.0+0.0)}=-0.2;S'(2)=min{(0.4-0.0-0.3),(0.3-0.0-0.0)}=0.1;PF (3)=min{(-0.3+0.0+0.3),0.0}-(-0.3)=0.3;H'(3)=min{(-0.3+0.0+0.3)}=0.0;S'(3)=min{(1.0-0.0-0.3)}=0.7。
根據以上的數學公式,本發明可由以下的式子來檢查扇出填補靈活性(fanout padding flexibility)PF (i)。如果| min{0,H (i )}|>P F (i ),g i PI ,PI為主要輸入(primary input),表示保持違規(hold violations)無法由對邏輯閘做填補來解決。如果S (i ,j )<| min{0,H (i ,j )}|,e (i ,j ) E 表示保持違規(hold violations)無法由對走線做填補來解決。該填補值決定步驟(padding value decision),依據該一個閘的扇出填補靈活性(fanout padding flexibility)PF (i)以計算該一個閘的一填補值P(i)。在前述考慮全域觀點的情況下所計算得到扇出填補靈活性(fanout padding flexibility)PF (i),接下來便可由此來決定填補數值。針對每個保持違規邏輯閘(hold violating gate)gi 以拓樸次序(topological order)來計算出其填補數值。扇出填補靈活性(fanout padding flexibility)PF (i)表示邏輯閘gi 的扇出錐(fanout cone)之中所允許的最大填補數值。因此,對保持違規邏輯閘(hold violating gate)gi 所做的填補只需要考慮扣除扇出錐(fanout cone)的影響之後所剩下未修完的負的保持鬆弛(negative hold slack)。例如,安全填補數值(safe padding value)和扇出填補靈活性(fanout padding flexibility)PF (i)的差異。因此,由前述的數學公式及符號,該一個閘gi 的該填補值係以下列公式表示:P (i )=max{P saf (i )-P F (i ),0}。
Psaf (i)代表在邏輯閘gi 的扇入閘(fanin gates)經過填補之後的安全填補數值(safe padding value)。當決定了每個邏輯閘gi 的填補數值之後,增加的延遲會對其扇出閘(fanout gate)的到達時間(arrival time)造成影響。因此,需對填補的邏輯閘gi 的扇出邊緣鬆弛(fanout edge slack)更 新。扇出邊緣鬆弛(fanout edge slack)更新可以用下列公式表示:S (i ,j )=R (i ,j )-A (i )-P (i ),H (i ,j )=P (i )+a (i )-r (i ,j )。
對填補的邏輯閘gi 的扇出邊緣鬆弛((fanout edge slack)做更新之後,扇出閘(fanout gates)的建立節點鬆弛(setup node slack)及保持節點鬆弛(hold node slack)也會跟著重新計算。
圖6A及圖6B係本發明對一已佈局及繞線設計執行填補數值之示意圖。以圖6A做為決定填補數值的例子,假設Pmax (2)=0.5,Pmax (3)=0.4,Pmax (1)=0.4。根據扇出填補靈活性(fanout padding flexibility)PF (i),可以得到以下數值:Psaf (2)=min{0.3,|-0.3|,0.5}=0.3,P(2)=0.3-0.1=0.2;S(2,1)=1.1-0.7-0.2=0.2,H(2,1)=0.2+0.1-0.4=-0.1;Psaf (3)=min{0.3,|-0.3|,0.4}=0.3,P(3)=0.3-0.3=0.0;S(3,1)=1.1-0.1-0.0=1.0,H(3,1)=0.0+0.1-0.4=-0.3;S(1)=min{1.0,0.2}=0.2,H(1)=min{-0.3,-0.1}=-0.3;Psaf (1)=min{0.2,|-0.3|,0.4}=0.2,P(1)=0.2-0.0=0.2。
但是決定完填補數值之後,從圖6A可以發現,經由邏輯閘g3 到邏輯閘g1 的短路徑(short path)仍然有-0.1的保持違規(hold violations),這是由於高估扇出填補 靈活性(fanout padding flexibility)PF (i)的緣故。經由重新執行該扇出填補靈活性計算/靈活性檢查步驟(fanout padding flexibility calculation/flexibility checking)與該填補值決定步驟(padding value decision),將得到的填補數值做累加,可以得到圖6B的結果,所有短路徑(short path)都得以解決。因此,該扇出填補靈活性計算/靈活性檢查步驟(fanout padding flexibility calculation/flexibility checking)與該填補值決定步驟(padding value decision)兩步驟會做重複的計算直到保持違規(hold violations)都得以解決或是無法再進一步改善為止。因此在該判斷步驟中,其判斷該已佈局及繞線設計之每一個閘的短路徑(short path)之保持違反(hold violation)是否均已解決或是違反(violation)已無法再刪減(eliminated),若否,則重回扇出填補靈活性計算/靈活性檢查步驟(fanout padding flexibility calculation/flexibility checking)。
本發明希望能夠更進一步的減少在邏輯閘上的全部填補數值,因此如果仍然有未解決的保持違規(hold violations),本發明會使用填補走線(padding wires)對邏輯閘增加其延遲。
在本發明的填補值決定步驟(padding value decision)中,填補位置(padding location)會盡量選在比較靠近主要輸出(primary output,PO)的地方,但是對於分叉的短路徑(forked short paths),此會使得所使用的填補數值因此而增加。如圖6A所示,根據前述的計算所得到的結果總共 需要0.5的填補延遲(padding delay),但由於邏輯閘g4 是分叉路徑(forked paths),故以圖6B的填補延遲(padding delay)方式,可以進一步減少總共所使用的填補數值為0.4。
本發明希望能夠藉由對填補數值再行刪減,使填補數值最後決定的位置會是有較多短路徑(short paths)所經過的邏輯閘。因此,當該判斷步驟判定該已佈局及繞線設計之每一個閘的短路徑(short path)之保持違反(hold violation)均已解決或是違反(violation)已無法再刪減(eliminated)時,該填補值再精鍊步驟(padding value refinement)以反向拓樸次序(reverse topological order)計算該已佈局及繞線設計之一個閘的再精鍊填補值(refined padding value),以再刪減該已佈局及繞線設計之一個閘的填補值。
本發明透過以下的定義及數學公式,來達成降低填補數值的目的。一反向填補值(reverse padding value)Prev (i)係以下列公式表示: 反向填補值(reverse padding value)Prev (i)表示每個填補的邏輯閘gi 有多少的填補能夠朝著扇入(fanin)方向傳遞。為了避免動到結合路徑(joined path)的填補數值,因此本發明只針對只有一個扇入保持違規(fanin hold violation)的邏輯閘來做處理。如果邏輯閘gi 有保持邊緣鬆弛(hold edge slack)小於填補數值時,表示邏輯閘gi 有保持違規(hold violation) 的情況發生,如此一來便可以對填補之後所更新的結果找出原本的保持違規(hold violation)。
一新增安全填補數值(added safe padding value)Padd (i)係以下列公式表示:P add (i )=min{S (i ),P max (i )-P (i )}。新增安全填補數值(added safe padding value)Padd (i)是考慮保持限制(setup constraint)與最大填補延遲(maximum padding delay)Pmax (i),計算後得到每個邏輯閘還能夠增加多少填補。該再精鍊填補值(refined padding value)Pref (i)係以下列公式表示:P ref (i )=P (i )+min{P add (i ),min j {P rev (j )|H (i ,j )<P (i )}。
根據以上的定義,以反向拓樸次序(reverse topological order)可以算出每個邏輯閘的再精鍊填補值(refined padding value)Pref (i),新的結果能夠更進一步的減少全部的填補數值。
如果電路的建立鬆弛(setup slack)很緊或是最大輸出電容(maximum output capacitance)的限制,導致對邏輯閘做填補後,仍然有無法解決的保持違規(hold violation)的話,本發明會在再精鍊(refinement)之後,透過填補於走線上(padding on wires)來解決剩下的保持違規(hold violation)。亦即,該填補值再精鍊步驟(padding value refinement)更包含一走線填補值(wire padding value)步驟。
該走線填補值(wire padding value)步驟係計算 一走線e(i,j)的一走線填補值(wire padding value),以再刪減該已佈局及繞線設計之一個閘/走線的填補值,該走線填補值(wire padding value)P(i,j)係以下列公式表示:P (i ,j )=min{S (i ,j ),| min{0,H (i ,j )}|}。
該走線填補值(wire padding value)P(i,j)會以拓樸次序(topological order)來做決定。根據時序庫(timing library),最後決定每個邏輯閘的填補遲延(padding delay)會轉換成填補負載(padding load)或填補緩衝器(padding buffer)。
該負載/緩衝配置步驟包含一找尋備用元件候選者(finding spare cell candidates)步驟、一備用元件選擇(spare cell selection)步驟、一虛擬金屬配置(dummy metal allocation)步驟。
為了達成該填補數值決定步驟所產生的填補數值(padding value),該負載/緩衝配置步驟分成粗質延遲填補(coarse-grained delay padding)與細質延遲填補(fine-grained delay padding)兩階段來處理。
從元件庫(cell library)可以得到每個元件(cell)所能提供的電容,經由轉換得到每個元件(cell)所能提供的延遲。但由於是元件(cell)離散的關係,使得備用元件(spare cell)可能無法滿足閘/走線所要的填補負載(padding load)或填補緩衝器(padding buffer)。因此,在粗質延遲填補(coarse-grained delay padding)中,使用備用元件(spare cell),而細質延遲填補(fine-grained delay padding)使用虛擬 金屬(dummy metal)。
該找尋備用元件候選者(finding spare cell candidates)步驟,對該已佈局及繞線設計之需要進行填補的閘/走線(gate/wire)產生備用元件候選者(spare cell candidates),其係將每個需要進行填補的閘的扇出網絡(fanout net)的一有界盒子(bounding box)中的對應備用元件(spare cells)規劃為需要進行填補的閘能夠使用的資源。圖7係本發明一有界盒子(bounding box)中的對應備用元件之示意圖。如圖7所示,能提供填補給待填補閘g2 的備用元件(spare cell)為s1 ,s2 與s3 ,能提供填補給待填補閘g2 與g3 之間走線的備用元件(spare cell)為s2 。接下來要決定如何使用這些備用元件(spare cell)來做閘/走線的填補。備用元件(spare cells)與重新走線(rewiring)所提供的延遲,應該盡可能地接近每個閘所要的填補延遲(padding delay),但是不能超過填補延遲(padding delay),避免發生時序違規(timing violation)。
本發明對一個閘/走線找到合適的備用元件候選者(spare cell candidate)來做填補的問題,係以次集合加總解(subset sum solution)來處理。次集合加總解(subset sum solution)可以透過動態規劃(dynamic programming)來得到最佳解。做動態規劃(dynamic programming)時的步階大小(step size)會取決於是否能夠兼顧效率與準確度。例如圖7中,待填補閘g2 的填補延遲(padding delay)是0.25,能夠使用的備用元件(spare cells)為s1 ,s2 與s3 。圖8係本發明以 動態規劃(dynamic programming)解次集合加總解(subset sum solution)時的表格之示意圖,此時決定的步階大小(step size)是0.05。可以發現當填補延遲(padding delay)是0.25時,s2 與s3 的組合會是最佳解,因此將s2 與s3 紀錄為g2 的備用元件候選者(spare cell candidates)。同樣的以此也可以決定出填補走線(padding wire)的備用元件候選者(spare cell candidates)。
然而,對於不同的填補閘/走線(padding gate/wire)的次集合加總解(subset sum solution),可能會競爭相同的備用元件(spare cell)的情形。圖9係本發明競爭相同的備用元件之示意圖。如圖9所示,g1 與g2 都想以s3 來做填補。為了要處理資源競爭的問題,本發明對所有填補閘/走線(padding gate/wire)紀錄使用者定義允許範圍之內的多組次集合加總解(subset sum solution)。如圖8所示,當填補數值(padding value)是0.25時,如果定義範圍為0.05,則{s1 }與{s2 ,s3 }均會被紀錄為備用元件候選者(spare cell candidates)。接下來,本發明要對每個填補閘/走線(padding gate/wire),來決定用哪些備用元件(spare cell)來做填補。
該備用元件選擇(spare cell selection)步驟其係將每個需要進行填補的閘/走線選擇最佳的次集合加總解(subset sum solution),填補完該已佈局及繞線設計的短路徑(short path)。對填補閘/走線(padding gate/wire)決定用哪些備用元件(spare cell)來做填補的時候,不同的閘/走線 (gate/wire)會有資源競爭的問題。因此,本發明對填補閘/走線(padding gate/wire)記錄了多組備用元件候選者(spare cell candidates)。在該備用元件選擇(spare cell selection)步驟中,本發明將決定填補閘/走線(padding gate/wire)所要使用的備用元件(spare cell)。備用元件選擇(spare cell selection)問題可視為設定包裝問題(set packing problem),是NP-hard的問題。本發明為了有效率的處理,先讓每個填補閘/走線(padding gate/wire)選擇最佳的次集合加總解(subset sum solution)。如果發生衝突的情況,將有衝突情況的填補閘/走線(padding gate/wire)集合起來,並且以其次集合加總解(subset sum solution)的數量來做從小到大的排序。最後再以此順序,讓每個填補閘/走線(padding gate/wire)選擇最佳的次集合加總解(subset sum solution)。圖10係本發明填補閘/走線選擇最佳的次集合加總解之示意圖。如圖10所示,閘g1 對應至備用元件{s4 }、閘對應至備用元件{s2 ,s3 }、閘g3 對應至備用元件{s5 ,s6 }。
在之前的粗質延遲填補(coarse-grained delay padding),本發明使每個填補閘(padding gate)選擇備用元件(spare cells)。如果選擇後的備用元件(spare cells)仍然無法滿足要求的填補延遲(padding delay),則剩下不足的延遲(delay)經過計算轉為電容(capacitance),並且在細質延遲填補(fine-grained delay padding)階段利用虛擬金屬插置(dummy metal insertion)來達成。因此,該虛擬金屬配置(dummy metal allocation)步驟利用虛擬金屬插置(dummy metal insertion),填補完該已佈局及繞線設計的短路徑(short path)。
填補閘時所能使用的虛擬金屬資源(dummy metal resource)係取決於其扇出網絡(fanout net)的有界盒子(bounding box)內未被使用的繞線資源(routing resource)。如果不同的閘/走線(gate/wire)的有界盒子(bounding box)有重疊的話,會發生互相爭奪相同虛擬金屬資源的情形。圖11係本發明衝突填補閘/走線(padding gate/wire)之虛擬金屬(dummy metal)的示意圖。將獨立有界盒子(independent bounding box)內的虛擬金屬稱作獨立虛擬金屬(independent virtual metal),反之稱為相依虛擬金屬(dependent virtual metal)。本發明首先使用獨立虛擬金屬來做填補,如果還是有未解決閘/走線(gate/wire)的話,再以最大流量網絡(maximum flow network)方法,分配相依虛擬金屬。
圖12係本發明所使用最大流量網絡(maximum flow network)方法之示意圖。最大流量網絡(maximum flow network)方法包含源節點(source node)s及匯集節點(sink node)t。每個填補閘/走線對應的節點gi 和節點di 表示相依虛擬金屬。連接節點s與節點gi 的邊緣能力(edge capacity)為節點gi 的剩餘待填補電容(remaining padding capacitance),連接節點di 與節點t的邊緣能力(edge capacity)為節點di 所能提供的電容(capacitance)。如果節點gi 的有界盒子(bounding box)有覆蓋到節點di 的範圍,則連接節點gi 與節點di 的邊緣能力(edge capacity)為無限大。如圖11所 示,分配完獨立虛擬金屬(independent virtual metal)之後,閘(或又稱為節點)g1 與閘g2 和走線w3 仍然有未解決填補電容(unfixed padding capacitance),其分別為0.15,0.2和0.1。虛擬金屬的重疊區域(overlapping region)可以提供的電容分別為0.25與0.2。對應的流量網絡(flow network)與最大流量(maximum flow)如圖12所示。根據計算完的流量,可以以此來決定用哪些虛擬金屬來修補剩下的填補電容。如果仍然有未解決填補電容(unfixed padding capacitance),代表可能因為資源有限而無法加以實現,此時會回到填補數值決定步驟重新決定填補數值,讓資源比較少的閘不要給超過該閘所能負荷的填補數值。
圖13係本發明基準統計(benchmark statistics)的結果之示意圖,其中,Circuit指的是電路名稱,#Gate指的是組合邏輯閘數,#FF指的是正反器的數量,#SFF指的是有時序疑慮的正反器的數量,Conservative clock period(ns)指的是考慮時序保護帶(timing guardband)的時序週期,THS指的是來自有時序疑慮的正反器之全部為負數的保持鬆弛(total negative hold slack)。每個電路是由Synopsys及Cadence公司的商業程式工具根據55-nm製程來做合成、佈局、與繞線。同時也使用這些工具來驗證電路時序。本發明中所使用Sth =75%與Hth =25%的設定,其為為現今電路設計常用的設定。
圖14A及圖14B係本發明的方法與習知技術的填補數值比較之示意圖。圖14A及圖14B中的Padding delay指的是全部所決定的填補數值(padding value)總和。LP指的是N.V.Shenoy et al.在ICCAD,pp.156-161,1993所發表的論文「Minimum padding to satisfy short path constraints」提出線性規劃(linear programming)方法以IBM公司的ILOG CPLEX Optimizer實現。Greedy 1指的是Y.Sun et al.在美國專利US Patent 7,278,126中提出每次選擇最大建立鬆弛(setup slack)的閘來做填補的方式。Greedy 2指的是每次選擇最多保持違規路徑(hold violations path)經過的閘來做填補。由圖14A及圖14B所示可知,因為本發明有考慮全域觀點,所以本發明的方法能夠解決每一個電路的保持違規(hold violations)。線性規劃(LP)方法在處理大問題時,會因為時間的問題而無法處理。Greedy 1與Greedy 2有很大機率會無法處理所有的保持違規(hold violations)並且因為需要反覆的計算,所以需要花費較多時間。
圖15係本發明的方法與習知技術的負的建立鬆弛及負的保持鬆弛(negative setup slack/negative hold slack)比較之示意圖。比較了本發明的負載/緩衝配置與N.V.Shenoy et al.方法的結果。如同前述所提到,即使在N.V.Shenoy et al.得到了最佳的結果,但是依此結果映射(mapping)過去仍然可能有保持違規(hold violations)未能解決。以粗質延遲填補(coarse-grained delay padding)與細質延遲填補(fine-grained delay padding)兩階段來處理,本發明可以成功實現該填補數值決定步驟(Padding Value Determination)所決定的填補數值。備用元件(spare cell)與 虛擬金屬(dummy metal)的組合提供了本發明彈性地來做電容配置(capacitance allocation),由於離散緩衝器延遲的問題(discrete buffer delay problem),虛擬金屬(dummy metal)扮演著不可或缺的腳色。
由前述說明可知,本發明的貢獻為:
(1)以全域觀點找出填補數值:習知技術中的貪婪啟發式演算方法係以區域性觀點,因此有很大機率會無法修完電路中的所有保持違規(hold violations)。而,本發明會計算每個邏輯閘的扇出錐(fanout cone)所能填補的彈性範圍,然後根據得到的結果,以全域觀點的方式來決定填補數值。
(2)粗質延遲填補(coarse-grained delay padding)與細質延遲填補(fine-grained delay padding):由於元件庫(cell library)所能提供的延遲是固定的,因此本發明提出在粗質延遲填補(coarse-grained delay padding)中,使用備用元件(spare cell),而細質延遲填補(fine-grained delay padding)使用虛擬金屬(dummy metal),因為虛擬金屬(dummy metal)可以依需要來調整大小。
(3)後佈局階段(post-layout stage)執行短路徑填補(short path padding):習知技術在處理這個問題時,是在邏輯重新合成階段決定填補數值,因此習知技術的時序報告(timing report)可能有一些不正確,同時可以使用的填補資源還不明確,因此本發明在後佈局階段(post-layout stage)階段實現延遲填補。
綜上所述,根據以上的觀察,本發明首先在一填補數值決定步驟(Padding Value Determination)中試著減少填補數值並且決定其位置。接著在負載/緩衝配置步驟(load/buffer allocation)做分配來滿足填補數值決定步驟決定的填補數值。在填補數值決定步驟中,本發明以全域觀點計算每個邏輯閘的扇出錐(fanout cone)所能填補的彈性範圍,並依此決定每個邏輯閘的填補數值。在負載/緩衝配置步驟中,為了達成填補數值決定步驟決定的填補數值,本發明提出了在粗質延遲填補步驟(coarse-grained delay padding)及細質延遲填補步驟(fine-grained delay padding)。因為元件庫(cell library)能提供的延遲是固定的值,所以粗質延遲填補(coarse-grained delay padding)中,使用備用元件(spare cell)。剩下的部分,由於虛擬金屬(dummy metal)可以視為額外的資源並且可以被調整,所以,而細質延遲填補(fine-grained delay padding)使用虛擬金屬(dummy metal)。
上述實施例僅係為了方便說明而舉例而已,本發明所主張之權利範圍自應以申請專利範圍所述為準,而非僅限於上述實施例。
其為流程圖,故無符號。

Claims (9)

  1. 一種工程變更之保持時間修復方法,其係對一已佈局及繞線設計藉由塞入最少的電容來填補完該已佈局及繞線設計的短路徑,該方法包含:一填補數值決定步驟,接收該已佈局及繞線設計,依據一元件庫、一時序限制及一時序分析報告,以決定並輸出該已佈局及繞線設計之每一個閘所需填補的數量與位置;以及一負載/緩衝配置步驟,依據一備用元件資訊、一虛擬金屬資訊、及該已佈局及繞線設計之每一個閘所需填補的數量與位置,以填補完該已佈局及繞線設計的短路徑;其中,該填補數值決定步驟包含:一填補資源收集步驟,依據該備用元件資訊及該虛擬金屬資訊,以收集該已佈局及繞線設計之一個閘其扇出網絡的一有界盒子中的對應備用元件資訊及對應虛擬金屬資訊;一扇出填補靈活性計算/靈活性檢查步驟,計算該已佈局及繞線設計之一個閘的扇出填補靈活性PF (i);一填補值決定步驟,依據該一個閘的該扇出填補靈活性PF (i)以計算該一個閘的一填補值;一判斷步驟,其判斷該已佈局及繞線設計之每一個閘的短路徑之保持違反是否均已解決或是違反已無法再刪減,若否,則重回扇出填補靈活性計算/靈活性檢查步驟;以及一填補值再精鍊步驟,若判定該已佈局及繞線設計之每一個閘的短路徑之保持違反均已解決或是違反已無法再刪減時,以反向拓樸次序計算該已佈局及繞線設計之一個閘的再精鍊填補值,以再刪減該已佈局及繞線設計之一個閘的填補值; 其中,該負載/緩衝配置步驟包含:一找尋備用元件候選者步驟,對該已佈局及繞線設計之需要進行填補的閘/走線產生備用元件候選者,其係將每個需要進行填補的閘的扇出網絡的一有界盒子中的對應備用元件規劃為需要進行填補的閘能夠使用的資源;一備用元件選擇步驟,其係將每個需要進行填補的閘/走線選擇最佳的次集合加總解,填補完該已佈局及繞線設計的短路徑;以及一虛擬金屬配置步驟,利用虛擬金屬插置,填補完該已佈局及繞線設計的短路徑;其中,該已佈局及繞線設計係以一有向圖K{K=(G,E)}表示,該有向圖的每個節點gi (gi G)係為該已佈局及繞線設計中的一個閘,並在該節點gi 上以D(i)表示對應於該閘的閘延遲,每一條邊e(i,j){e(i,j)E}表示連著該閘的導線,節點gi 的輸出端之建立到達時間A(i)係以下列公式表示: 節點gi 的輸出端之建立需要時間R(i)係以下列公式表示: 節點gi 的輸出端的保持到達時間a(i)係以下列公式表示: 節點gi 的輸出端之保持需要時間r(i)係以下列公式表示:
  2. 如申請專利範圍第1項的工程變更之保持時間修復方法,其中,邊e(i,j){e(i,j)E}紀錄由節點gi 指向節點gj 的建 立邊緣鬆弛S(i,j)係以下列公式表示:S (i ,j )=R (i ,j )-A (i ),節點gi G所記錄的建立節點鬆弛S(i)係以下列公式表示: 邊e(i,j)E紀錄由節點gi 指向節點gj 的保持邊緣鬆弛H(i,j)係以下列公式表示:H (i ,j )=a (i )-r (i ,j ),節點gi G所記錄的保持節點鬆弛H(i)係以下列公式表示:
  3. 如申請專利範圍第2項的工程變更之保持時間修復方法,其中,每個節點gi 的安全填補數值Psaf (i)係以下列公式表示:P saf (i )=min{S (i ),| min{0,H (i )}|,P max (i )}。
  4. 如申請專利範圍第3項的工程變更之保持時間修復方法,其中,節點gi G所記錄的扇出填補靈活性PF (i)係以下列公式表示: 當中,H' (i ,j )=H (i ,j )+P F (j )+P saf (j )。
  5. 如申請專利範圍第4項的工程變更之保持時間修復方法,其中,該一個閘的該填補值係以下列公式表示:P (i )=max{P saf (i )-P F (i ),0}。
  6. 如申請專利範圍第5項的工程變更之保持時間修復方法,其中,一反向填補值Prev (i)係以下列公式表示: 一新增安全填補數值Padd (i)係以下列公式表示:P add (i )=min{S (i ),P max (i )-P (i )}該再精鍊填補值Pref (i)係以下列公式表示:P ref (i )=P (i)+min{P add (i ),min j {P rev (j )|H (i ,j )<P (i )}。
  7. 如申請專利範圍第6項的工程變更之保持時間修復方法,其中,該填補值再精鍊步驟更包含:一走線填補值步驟,計算一走線e(i,j)的一走線填補值,以再刪減該已佈局及繞線設計之一個閘/走線的填補值,該走線填補值P(i,j)係以下列公式表示:P (i ,j )=min{S (i ,j ),| min{0,H (i ,j )}|}。
  8. 如申請專利範圍第7項的工程變更之保持時間修復方法,其中,該備用元件選擇步驟中,如果發生衝突的情況,將有衝突情況的進行填補的閘/走線集合,並且以該進行填補的閘/走線的次集合加總解的數量來做從小到大的排序,最後再以此順序,讓每個該進行填補的閘/走線選擇最佳的次集合加總解。
  9. 如申請專利範圍第8項的工程變更之保持時間修復方法,其中,於該虛擬金屬配置步驟中,如果發生衝突的情況,以最大流量網絡方法分配虛擬金屬。
TW102107593A 2013-03-05 2013-03-05 工程變更之保持時間修復方法 TWI493370B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW102107593A TWI493370B (zh) 2013-03-05 2013-03-05 工程變更之保持時間修復方法
US13/931,589 US8839173B1 (en) 2013-03-05 2013-06-28 Engineering change order hold time fixing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW102107593A TWI493370B (zh) 2013-03-05 2013-03-05 工程變更之保持時間修復方法

Publications (2)

Publication Number Publication Date
TW201435629A TW201435629A (zh) 2014-09-16
TWI493370B true TWI493370B (zh) 2015-07-21

Family

ID=51489532

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102107593A TWI493370B (zh) 2013-03-05 2013-03-05 工程變更之保持時間修復方法

Country Status (2)

Country Link
US (1) US8839173B1 (zh)
TW (1) TWI493370B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719747B2 (en) * 2012-01-31 2014-05-06 Mentor Graphics Corporation Single event upset mitigation for electronic design synthesis
US9117011B2 (en) * 2013-02-19 2015-08-25 International Business Machines Corporation Characterization and functional test in a processor or system utilizing critical path monitor to dynamically manage operational timing margin
US9582635B2 (en) * 2013-12-30 2017-02-28 Altera Coroporation Optimizing IC performance using sequential timing
US9805155B2 (en) * 2015-03-31 2017-10-31 Mediatek Inc. Circuit layouts, methods and apparatus for arranging integrated circuits
US10242150B1 (en) * 2016-06-07 2019-03-26 Xilinx, Inc. Circuit design implementation using control-set based merging and module-based replication
US10127340B2 (en) 2016-09-30 2018-11-13 Taiwan Semiconductor Manufacturing Company, Ltd. Standard cell layout, semiconductor device having engineering change order (ECO) cells and method
US10540463B1 (en) * 2018-02-13 2020-01-21 Xilinx, Inc. Placement of delay circuits for avoiding hold violations
US11023650B2 (en) 2019-06-18 2021-06-01 Samsung Electronics Co., Ltd. Apparatus and method for circuit timing fixing using extension metal sections and alternate vias
US11537775B1 (en) * 2020-02-18 2022-12-27 Synopsys, Inc. Timing and placement co-optimization for engineering change order (ECO) cells
WO2022041154A1 (zh) * 2020-08-28 2022-03-03 华为技术有限公司 一种保持时间裕量的检测电路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007041A1 (en) * 2007-06-26 2009-01-01 Nec Electronics Corporation Automatic delay adjusting method for semiconductor integrated circuit by using dummy wiring
TW201250862A (en) * 2009-11-20 2012-12-16 Semiconductor Energy Lab Method for manufacturing semiconductor device
TW201310913A (zh) * 2011-05-16 2013-03-01 Semiconductor Energy Lab 可編程邏輯裝置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4237434B2 (ja) 2001-11-26 2009-03-11 富士通マイクロエレクトロニクス株式会社 集積回路のホールドタイムエラー修正方法及びその修正プログラム
US7191416B2 (en) * 2003-01-27 2007-03-13 Stmicroelectronics Limited System and method for modifying integrated circuit hold times
US7278126B2 (en) * 2004-05-28 2007-10-02 Qualcomm Incorporated Method and apparatus for fixing hold time violations in a circuit design
US7634748B2 (en) * 2004-07-22 2009-12-15 Lsi Corporation Special engineering change order cells
US7331028B2 (en) * 2004-07-30 2008-02-12 Lsi Logic Corporation Engineering change order scenario manager
US7325211B1 (en) * 2005-09-02 2008-01-29 Sun Microsystems, Inc. Clock skew modelling using delay stamping
US7634743B1 (en) * 2006-07-21 2009-12-15 Cadence Design Systems, Inc. Method for updating a placed and routed netlist
US8266566B2 (en) * 2010-09-10 2012-09-11 International Business Machines Corporation Stability-dependent spare cell insertion
WO2012124117A1 (ja) * 2011-03-17 2012-09-20 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007041A1 (en) * 2007-06-26 2009-01-01 Nec Electronics Corporation Automatic delay adjusting method for semiconductor integrated circuit by using dummy wiring
TW201250862A (en) * 2009-11-20 2012-12-16 Semiconductor Energy Lab Method for manufacturing semiconductor device
TW201310913A (zh) * 2011-05-16 2013-03-01 Semiconductor Energy Lab 可編程邏輯裝置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hau-Yu Chang; Iris Hui-Ru Jiang;Yao-Wen Chang,"Timing ECO Optimization via Bezier Curve Smoothing and Fixability Identification", IEEE, 2011 *

Also Published As

Publication number Publication date
US20140258957A1 (en) 2014-09-11
US8839173B1 (en) 2014-09-16
TW201435629A (zh) 2014-09-16

Similar Documents

Publication Publication Date Title
TWI493370B (zh) 工程變更之保持時間修復方法
Markov et al. Progress and challenges in VLSI placement research
US7743354B2 (en) Optimizing integrated circuit design through use of sequential timing information
US8589845B2 (en) Optimizing integrated circuit design through use of sequential timing information
US7913210B2 (en) Reducing critical cycle delay in an integrated circuit design through use of sequential slack
US7739642B2 (en) Optimizing integrated circuit design through balanced combinational slack plus sequential slack
Kahng et al. Recovery-driven design: A power minimization methodology for error-tolerant processor modules
TWI521370B (zh) 用於產生時鐘網路拓撲之暫存器叢集方法、系統及其電腦可讀取記錄媒體
US10360341B2 (en) Integrated metal layer aware optimization of integrated circuit designs
US20120254818A1 (en) Methods, systems, and articles of manufacture for implementing full-chip optimization with reduced physical design data
Dobre et al. Mixed cell-height implementation for improved design quality in advanced nodes
US9009645B2 (en) Automatic clock tree routing rule generation
US10915685B1 (en) Circuit stage credit based approaches to static timing analysis of integrated circuits
US8117575B2 (en) System and method for on-chip-variation analysis
US20100153897A1 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce leakage power in an electronic circuit and electronic design automation tool incorporating the same
US10289790B2 (en) System, method and computer product for enhanced decoupling capacitor implementation
TWI459227B (zh) 時序設計變更的方法
US10318684B2 (en) Network flow based framework for clock tree optimization
US10599882B1 (en) Using a layer performance metric (LPM) to perform placement, routing, and/or optimization of an integrated circuit (IC) design
Yang et al. PushPull: Short path padding for timing error resilient circuits
US7380228B2 (en) Method of associating timing violations with critical structures in an integrated circuit design
US8527925B2 (en) Estimating clock skew
JP6787045B2 (ja) 検証支援プログラム、検証支援方法、および情報処理装置
US8527927B2 (en) Zone-based area recovery in electronic design automation
US8336013B2 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees