Global Sources
電子工程專輯
 
電子工程專輯 > EDA/IP
 
 
EDA/IP  

深次微米設計中的靜態時序分析方法

上網時間: 2001年04月14日     打印版  Bookmark and Share  字型大小:  

關鍵字:深次微米設計  時序收斂  靜態時序分析方法STA  模型級縮減技術  耦合時序分析(TACO) 

隨著積體電路製造製程技術的不斷發展,在製造之前要預測IC的時序收斂性能就面臨越來越多的困擾,本文介紹靜態時序分析(STA)方法在解決時序分析問題上需要考慮的種種問題。

Ravishankar Arunachalam

卡耐基-梅隆大學博士

Lawrence Pileggi

教授

卡耐基-梅隆大學電氣和電腦工程

對於今天的深次微米設計來說,最棘手的問題莫過於時序收斂了。因此,準確的時序校驗變得比以前更為重要。隨著設計規模和複雜度的增大,使用繁雜的電路模擬進行製造前的時序校驗已不切實際。取而代之的是基於靜態時序分析(STA)的時序終止(timing sign-off)法,STA估測最壞情況下的電路特性,而與電路的輸入模式無關。STA藉由包含物理電路節點和加權邊緣(weighted edge)的時序圖描述電路,加權邊緣藉由信號延遲描述這些節點間的信號傳輸情況。然後,STA計算出網路的理論延遲以確定電路中最長或“臨界”路徑。

節點間的邏輯關係通常可忽略,由此造成的延遲稱為網路的拓樸延遲。一般來說,忽略邏輯資訊無傷大局,因為在設計充分的電路中,拓樸延遲給出的上限比較接近實際的最大延遲。但是這個上限的精確度依賴於計算信號延遲所用的模型精確度。

盡量接近實際

在STA中,電晶體級的建模可模擬最接近矽片上器件的性能,其結果也是最精確的。但這種模擬非常耗時,因而常將器件的行為抽象為更高級的邏輯門或單元,在ASIC設計中尤其如此。邏輯門藉由以下方法進行預先描述:針對不同負載情況和輸入組合來精確模擬邏輯門行為,然後將延遲作為負載電容和輸入跳變時間等參數的函數來儲存。

器件尺寸不斷減小,互連延遲現象又普遍存在,於是90年代初我們不得不重新考慮這一傳統方案。隨著深次微米技術的出現,邏輯門不再只驅動純容性負載,長導線也帶有分佈式RC互連特徵。

由於無法預先描述所有可能的RC負載組合,門延遲不得不藉由負載的“有效電容”近似值來分析。除了門延遲被描述為一個有效容性負載的函數外,長RC互連延遲也必須在時序圖中單獨表示。為了計算由數百個電容和電阻組成的互連電路延遲,模型級縮減技術(model-order reduction technique)採用時間常數近似法,以簡單的解析形式描繪相關的傳輸特徵。雖然由長RC互聯效應引起的這些變化對延遲建模和計算有重大影響,但用於STA的技術和運算仍然適用。

棘手的耦合問題

不幸的是,不斷縮小的IC特徵尺寸使RC互連延遲呈現增加的趨勢。單個晶片的處理能力越強,就越需在較小的空間內整合並互連更多的邏輯門。這將加大佈局和佈線的複雜度,使得線路更加擁擠。為了容納下所有這些連線,金屬互連的寬度必須不斷減少,同時金屬層數卻不斷增加。由於金屬阻抗與其寬度成反比,人們開始採用改變金屬連線橫截面長寬比的方法來控制阻抗(從而將RC互連延遲限定在合理範圍內)。

由於線寬減小了,導線由短粗變為細長以控制阻抗。長寬比的改變又加劇了相鄰連線間電氣特性的相互影響,這要用鄰線間的耦合電容進行建模。另外,由於IC金屬互連層數不斷增加,較高金屬層到基底層的距離也在不斷減小,從而減小了對地的電容量。

乍看起來,這種方法似乎無懈可擊,但稍加分析就會發現,它會引起很多嚴重問題。在STA中,某一特定路徑的延遲是這樣計算的:從輸入開始,藉由該路徑上所有門直至初級輸出,將所有延遲累加起來。但當互連路徑與相鄰連線間存在強耦合時,計算門延遲的方法還能如此簡單嗎?電容藉由電晶體或金屬阻抗充電和放電是導致積體電路延遲的主要因素,當非線性源(這是邏輯門的電氣表述)為藉由電阻網路接地的電容充電時,精確計算延遲就比較困難。然而,由於電容耦合現象普遍存在,電容另一端連接的是互連線,線上信號變化也無法預測。

如果認為只要計算一個門的固定延遲,並將多個門延遲累加就可得出路徑延遲,這一想法顯然過於幼稚。這也正是在STA中難以解決耦合電容不斷增加問題的症結所在。現在,執行STA的延遲建模問題和算法已密不可分。

分析鄰線

讓我們考慮邏輯門驅動互連線的情況。一根互連線一般與幾根鄰線耦合,由於我們關注的是鄰線對門/線延遲的影響,我們稱這根互連線為“受害線”。需要解決的問題是:這些受害線的存在對靜態時序分析的方法有何影響?我們知道這一影響是由大量相關效應決定的,因此可以將這些問題分解,然後逐個分析。

首先,可以觀察受害線與鄰線的間距,並判斷它是否會引起受害線特性的變化,這就必須量化間距的影響。可使用提取工具在合理誤差範圍內計算出受害線與鄰線間的耦合電容。對於每一根鄰線,耦合電容在整個電容中所占的比重決定了是否有必要考慮鄰線的影響。接下來,要確定這些控制電容另一端的鄰線作用。如果是空閑線,就根本沒有問題。可以認為這些耦合電容與接地電容沒有區別。然而這並不十分精確,因為與空閑線耦合併不完全等同於純粹接地耦合。但由於鄰線總電容遠遠大於單個耦合電容,可以將它近似看作接地節點。

但是,受害線的鄰線不會總處於空閑狀態,實際上可能會頻繁地跳變。應該確定被分析線在跳變時,其鄰線是否也在跳變。

但這並不是解決問題的最後一步。有可能某些鄰線在跳變,但卻與受害線完全無關。

當受害線在鄰線跳變之前完成了所有跳變,或受害線在此之後才進行跳變時,就會出現這種情景。無論哪種情況,為便於計算受害線延遲都可以認為這些鄰線是空閑的。

那麼鄰線跳變何時會影響受害線的延遲呢?當鄰線藉由耦合電容從或向正在跳變的受害線輸入或輸出電流時。如果鄰線的跳變方向與受害線相反,它們就會吸納電流,並因而增加受害線的延遲。或者,若鄰線與受害線以相同方向跳變,受害線延遲就會減小。由於藉由電容的電流依賴於電壓的變化率,所以鄰線的跳變速度十分重要。跳變得越快,對受害線的影響就越嚴重。

從上面的討論可以看出,為了決定受害線的延遲,至少應解決下列問題:受害線跳變時鄰線是否也在跳變?如果是,速率多少?

“雞生蛋”問題

但是,在討論中我們忽略了一個重要問題。由於無法模擬電路的所有可能模式,STA是在不考慮電路輸入模式的情況下進行的。這意味著我們不可能精確判斷出哪條線路正在跳變及何時跳變。我們能知道的僅是某一信號可能發生跳變的時間段。這一時間段是由某一信號到達的最早和最遲時間表示的。在STA中,通常這一資訊在受害線輸入端是已知的,我們也希望能確定鄰線的時間段。為了得到確切的資訊,比如“鄰線可能在1.2ns和1.5ns期間跳變”,我們必須精確計算出與鄰線相連的門延遲。但是這些門有可能耦合到其它相鄰門,所以需要分析它們的鄰近門,以確定其到達時間,而這一分析過程是否會停止在某處仍是未知數。

遺憾的是,受害線的鄰線到達時間極有可能與受害線本身的延遲有關。即使在沒有物理連接環的情況下,耦合也會在電路中引起“反饋環”。這就產生了“雞生蛋、蛋生雞”的問題,導致在STA中無法傳播受害信號。因此無法保証能找到最長路徑,也不可能在製造前完成時序分析。

還有些問題值得一提。由於容性耦合引起的問題越來越嚴重,設計者已經花了幾年時間解決這一問題。在此期間一直用STA進行時序分析,而由此製造出的晶片也可以工作並能滿足時序要求。那麼問題在哪儿?

過去,常用方法是將耦合電容作為接地電容,用“米勒系數”衡量。這一衡量值可以有效地表示受害線應充電或放電的容值。假設受害線在從0至Vdd的跳變過程中為一特定電容充電,且鄰線以相同速率發生了反向跳變,我們就很容易確定受害線充入的電量是接地情況下的兩倍。米勒系數之所以得到普遍應用,是因為它可以讓我們在不修改或很少修改的情況下繼續執行STA。電容增加導致了受害線延遲的增加,這似乎就是受害線所受的影響了。但是,很容易看出如果鄰線的跳變速率與受害線不一樣,這一方法將會導致極大錯誤。

更為重要的是,研究表明這一“2x”法也不是受害線延遲的上限。除跳變速率外,其它重要因素,如受害線驅動(門)阻抗和互連阻抗等,都被忽略了。

一種解決方案

在得出一個方案之前,我們應明確所要追求的目標。我們已反复強調STA進行的是與輸入模式無關的分析,所以每一信號的到達時間段都覆蓋所有可能的模式。比如,我們可以說某一特定信號可在“最早1.2ns”和“最遲1.5ns”跳變。只有當耦合存在時,確定信號到達時間的類似範圍才是合理的。

特別地,我們應確定電路中的每一信號在所有可能輸入到達時間和耦合作用情況下的最早和最遲到達時間。信號跳變時間範圍在STA中也稱為“到達時間窗口”。到達時間窗口由最早和最遲到達時間以及跳變速率(或信號邊沿跳變時間)組成,如圖所示。如果已知一根鄰線的到達時間窗口,就可以確定它是否與受害線的到達時間重疊。我們可以精確劃定這些存在“雞生蛋”問題的窗口。

從最壞情況著手不失為一項可行的方案。最壞情況是指:如果不知道鄰線的時序窗口,就假定其窗口與受害線窗口有重疊。由於我們不知道該鄰線何時跳變,可能在STA過程的後期才知道,我們就假設這一鄰線會對受害線造成最大的影響。若我們有辦法計算這一最大影響,這對STA意謂著什麼呢?在傳播信號跳變時間(或到達時間窗口)時,我們對跳變時間進行了悲觀的假設。再回到關於信號跳變時間的含義,“受害線可在1.2ns和1.5ns之間發生跳變”現在意味著無論哪個鄰線何時跳變,這些數位都將是受害線實際跳變時間的界限。

“實際”跳變時間範圍可能介於1.3ns和1.4ns之間。

我們應注意到悲觀的假設僅對於最遲到達時間才有真正意義。前面曾提到,如果跳變方向相同,鄰線可能會減小受害線的延遲。如果要推導出最早到達時間,“悲觀”假設應考慮耦合引起的延遲減小,進而找到最早的跳變時間。到達時間上限對電路的保持和競爭情況會產生影響,在多數情況下,這?的STA界限與最壞情況的路徑延遲同等重要。

關鍵時刻

用這種方法計算出的到達時間可能會過於悲觀。假定影響受害線延遲的鄰線在現實中可能會暫時與受害線隔離。一種建議方案是多次運行STA以反复減小悲觀因素。在第二次運行中,如果發現鄰線與受害線不重疊,受害線的延遲就會減小,受害線輸出的到達時間窗口也將縮小。這就是耦合時序分析(TACO)的中心思想,TACO是靜態時序分析工具中用於確定耦合效應的一種算法。

我們前面提到該方案可用於確定到達時間的界限。為了確定最早和最遲到達時間,我們必需先確定在有鄰線跳變情況下受害線的延遲界限。為了確定鄰線跳變所帶來的最大影響,我們必須根據受害線“排列”鄰線。這樣,即使我們知道鄰線的時序窗口,還是要確定鄰線何時跳變才會對受害線產生最大影響。不必涉及具體的算法,就可以較容易地計算出在RC耦合線路中最壞和最好情況下的跳變延遲。

在STA中,由於從最壞的假設著手(最寬的時序窗口),我們可以確保時序窗口在以後的STA運行中只會縮小。窗口縮小意味著延遲和到達時間的差距更近。這一方法的優勢在於如果認為運行STA太浪費時間,可以隨時停止,並可得出時序窗口的界限。在實際應用中,我們發現運行STA的次數無須超過兩次,因為第一次迭代所產生的悲觀估算會在第二次運行中得到充分校正。

盡管串擾電容的普遍存在引發了新的設計問題,但對傳統STA稍作修改,就可進行製造前的時序分析。

作者:Ravishankar Arunachalam現在卡耐基-梅隆大學攻讀博士學位。他的研究方向包括時序分析、信號完整性問題、延遲建模及互連分析等。

Lawrence Pileggi是卡耐基-梅隆大學的電氣和電腦工程教授。他曾任教於德州奧斯汀大學,並擔任Monterey設計系統公司的CTO。在從教之前,他曾在Westinghouse研發中心工作,並獲得兩項專利,被授予該公司的工程成就獎。





投票數:   加入我的最愛
我來評論 - 深次微米設計中的靜態時序分析方法
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首