【第六章:串擾噪聲 下】靜態時序分析聖經翻譯計劃
本文由知乎
趙俊軍
授權轉載,知乎主頁為https://www.zhihu.com/people/zhao-jun-jun-19
6.3 串擾延遲分析
6.3.1 基礎
奈米設計中典型網路的電容提取包括許多相鄰網路的影響,其中一些是接地電容,而其它一些則來自其它訊號網路的一部分走線。接地電容和訊號間電容如圖6-1所示。在基本延遲計算時(不考慮任何串擾),所有這些電容均被視為網路總電容的一部分。當相鄰網路穩定(或電平不切換)時,訊號間電容也可以視為接地電容。當一個相鄰網路電平切換時,通過耦合電容的充電電流會影響該網路的時序。網路間的等效電容會根據攻擊者網路電平切換的方向而變大或變小,下面的一個簡單示例對此進行了說明。
從圖6-12中可以看出,網路N1通過電容Cc耦合到相鄰的網路(標記為攻擊者網路),並通過電容Cg接地。此示例假定網路N1在輸出端具有上升電平過渡,並根據攻擊者網路是否同時進行電平切換來考慮不同的情況。
各種情況下,驅動單元所需的電容電荷可能會有所不同,如下所述。
- 攻擊者網路處於穩定狀態:在這種情況下,網路N1的驅動單元將提供電荷使Cg和Cc充電至Vdd。因此,該網路的驅動單元提供的總電荷為(Cg + Cc)* Vdd。這種情況可以進行基本的延遲計算,因為在這種情況下未考慮來自攻擊者網路的串擾。表6-13中為此情況下在網路N1電平切換前後Cg和Cc中的電荷量:
- 攻擊者網路朝同方向切換電平: 在這種情況下,往同方向電平切換的攻擊者網路可以起輔助驅動單元的作用。如果攻擊者網路同時以相同的壓擺(相同的過渡時間)進行電平切換,則驅動單元提供的總電荷僅為(Cg * Vdd )。如果攻擊者網路的壓擺比N1網路壓擺更快,則所需的實際電荷可能甚至小於(Cg * Vdd),因為攻擊者網路也可以為Cg提供充電電流。因此,在攻擊者朝相同方向切換電平時,來自驅動單元的所需電荷會小於表6-13中描述的攻擊者處於穩定狀態時的所需電荷。因此,當攻擊者網路朝相同方向切換電平時會導致網路N1切換電平的延遲更短, 延遲的減少被標記為負串擾延遲(negative crosstalk delay)。這種情況請參見表6-14,通常會在進行最小路徑分析時考慮此情況。
- 攻擊者網路朝相反方向切換電平:在這種情況下,耦合電容需要從-Vdd充電到Vdd。因此在電平切換前後,耦合電容上的電荷變化量為(2 * Cc * Vdd),網路N1的驅動單元以及攻擊者網路均需要提供額外的電荷。這種情況會導致網路N1切換電平的延遲更大,延遲的增加被標記為正串擾延遲(positive crosstalk delay)。這種情況請參閱表6-15,通常會在進行最大路徑分析時考慮此情況。
上面的示例說明了在各種情況下電容Cc的充電以及它如何影響網路N1切換電平的延遲。該示例僅考慮了網路N1處的上升過渡,但是類似的分析也適用於下降過渡。
6.3.2 正負串擾
基本延遲計算(不考慮任何串擾)假定驅動單元為網路總電容Ctotal(= Cground + Cc)的軌到軌(rail-to-rail)過渡提供了所有必要的電荷。如前一小節所述,當耦合(攻擊者)網路和受害者網路朝相反方向切換電平時,耦合電容Cc所需的電荷會更大。朝相反方向電平切換的攻擊者網路增加了來自受害者網路驅動單元的所需電荷量,並且增加了驅動單元和受害者網路互連的延遲。
類似地,當耦合(攻擊者)網路和受害者網路朝相同方向切換電平時,Cc上的電荷在受害者和攻擊者切換電平前後都保持不變。這減少了來自受害者網路驅動單元的所需電荷,並且減少了驅動單元和受害者網路互連的延遲。
綜上所述,同時切換受害者和攻擊者的電平會影響受害者網路過渡的時序。根據攻擊者網路電平切換方向的不同,串擾延遲影響可能為正(減慢受害者網路過渡時間)或為負(加快受害者網路過渡時間)。
正串擾延遲影響的示例如圖6-16所示。受害者網路在下降的同時,攻擊者網路卻在上升。攻擊者網路向相反方向的電平切換會增加受害者網路的延遲。正串擾(positive crosstalk)會影響驅動單元以及互連線,這兩者的延遲都會增加。
串擾延遲為負的情況如圖6-17所示。攻擊者網路與受害者網路同時上升,攻擊者網路與受害者網路朝相同方向的電平切換可減少受害者網路的延遲。如前所述,負串擾(negative crosstalk)會影響驅動單元和互連線的時序,兩者的延遲都會減小。
注意,最差的正串擾延遲和最差的負串擾延遲會分別針對上升和下降延遲進行計算。一般來說,由於串擾而導致的最大上升時間、最小上升時間、最大下降時間、最大下降時間延遲的攻擊者是不同的,這將在下面的小節中進行介紹。
6.3.3 多攻擊者的累積效應
在多攻擊者的串擾延遲分析中將累積由每個攻擊者串擾帶來的影響,這類似於6.2節中介紹的串擾毛刺分析。當多個網路同時進行電平切換時,對受害者網路的串擾延遲影響將由於多攻擊者而變得更加複雜。
大多數由於多攻擊者而導致的耦合分析都增加了每個攻擊者的增量影響,並計算了對受害者網路的累積影響。這可能看起來很保守,但是它確實表明了受害者網路最差情況的串擾延遲。
與多攻擊者時的串擾毛刺分析相似,也可以使用均方根(RMS)法,這種方法的悲觀度不如直接累加每個攻擊者帶來的影響。
6.3.4 攻擊者與受害者網路的時序相關性
串擾延遲分析時序相關的處理在概念上類似於6.2節中介紹的串擾毛刺分析時序相關內容。只有當攻擊者可以與受害者網路同時切換電平時,串擾才會影響受害者的延遲,這是使用攻擊者和受害者網路的時序視窗確定的。如6.2節所述,時序視窗表示網路可以在一個時鐘週期內切換的最早(earliest)和最遲(latest)時間。如果攻擊者和受害者網路的時序視窗重疊,則可以計算出串擾對延遲的影響。對於多攻擊者,也將類似地分析多個攻擊者的時序視窗。計算各種時序區域的可能影響,並考慮串擾延遲影響最嚴重的時序區域,以進行延遲分析。
考慮下面的示例,其中三個攻擊者網路可能會影響受害者網路的時序。攻擊者網路(A1,A2,A3)與受害者網路(V)電容耦合,並且它們的時序視窗與受害者網路的時序視窗有重疊部分。圖6-18中為時序視窗以及每個攻擊者可能造成的串擾延遲影響。基於時序視窗,串擾延遲分析可以確定引起最大串擾延遲影響的攻擊者組合。在此示例中,時序視窗可分為三個重疊區域,每個區域中都有不同的攻擊者進行電平切換。區域1中A1和A2進行電平切換,這可能導致串擾延遲影響為0.26(= 0.12 + 0.14)。區域2中僅A1進行電平切換,帶來的串擾延遲影響為0.14。區域3中僅A3進行電平切換,帶來的串擾延遲影響為0.23。因此,區域1的串擾延遲影響0.26為最壞的情況。
如前所述,串擾延遲分析將分別計算四種類型的串擾延遲。串擾延遲的四種類型是:正上升延遲(上升沿提前到達)、負上升延遲(上升沿滯後到達)、正下降延遲和負下降延遲。通常,在這四種情況下,網路可以具有不同的攻擊者組合。例如,受害者網路具有攻擊者網路A1、A2、A3和A4。在串擾延遲分析過程中,A1、A2、A4可能對正上升和負下降延遲有影響,而A2和A3對負上升和正下降延遲有影響。
6.3.5 攻擊者與受害者網路的功能相關性
除時序視窗外,串擾延遲計算還會考慮各種訊號之間的功能相關性。例如,掃描控制訊號僅在掃描模式期間進行電平切換,並且在執行設計的功能或任務模式期間保持穩定。因此,在功能模式期間,掃描控制訊號不可能成為攻擊者。掃描控制訊號只能在掃描模式期間成為攻擊者,在這種情況下,掃描控制訊號不能與其他功能訊號組合在一起,以進行最差情況的噪聲計算。
功能相關性的另一個示例是兩個攻擊者互補(邏輯相反)的情況。在這種情況下,訊號及其互補訊號永遠都不可能朝相同方向上切換電平以進行串擾噪聲計算。可以利用這種型別的功能相關性資訊,來確保僅實際上可以一起切換電平的訊號作為攻擊者,從而使串擾分析結果不會過於悲觀。
6.4 使用串擾延遲進行時序檢查
需要為設計中的每個單元和互連線計算以下四種類型的串擾延遲影響:
- 正上升延遲(Positive rise delay):上升沿提前到達
- 負上升延遲(Negative rise delay):上升沿滯後到達
- 正下降延遲(Positive fall delay):下降沿提前到達
- 負下降延遲(Negative fall delay):下降沿滯後到達
然後,在時序分析時將串擾延遲影響用於最大和最小路徑的時序檢查(建立時間和保持時間檢查),對資料發起和捕獲觸發器的時鐘路徑處理方式是不同的。本節將介紹建立時間和保持時間檢查時對資料路徑和時鐘路徑的詳細分析。
6.4.1 建立時間分析
帶有串擾分析的STA可以通過最差情況下資料路徑和時鐘路徑的串擾延遲來驗證設計的時序。考慮圖6-19所示的邏輯電路,其中串擾可能會沿著資料路徑和時鐘路徑在各種網路處發生。建立時間檢查的最差條件是發起時鐘(launch clock)路徑和資料路徑都具有正串擾,而捕獲時鐘(capture clock)路徑具有負串擾。發起時鐘路徑和資料路徑上的正串擾影響會延遲資料到達捕獲觸發器的時間。此外,捕獲時鐘路徑上的負串擾影響會導致捕獲觸發器的時鐘有效沿過早地到達。
基於上述介紹,建立時間(或最大路徑)分析將假定:
- 發起時鐘路徑出現正串擾延遲,因此發起資料較遲;
- 資料路徑出現正串擾延遲,因此資料到達目的地需要更長的時間;
- 捕獲時鐘路徑的串擾延遲為負,因此捕獲觸發器會更早捕獲資料。
由於建立時間檢查的發起和捕獲時鐘沿是不同的(通常間隔一個時鐘週期),所以公共時鐘路徑(common clock path)對於發起和捕獲時鐘沿可能具有不同的串擾影響。
6.4.2 保持時間分析
STA的最差情況保持時間(或最小路徑)分析類似於前面小節中介紹的最差情況建立時間分析。根據圖6-19所示的邏輯電路,當發起時鐘路徑和資料路徑均具有負串擾且捕獲時鐘路徑具有正串擾時,會發生最差的保持時間檢查條件。發起時鐘路徑和資料路徑上的負串擾影響導致資料提前到達捕獲觸發器。此外,捕獲時鐘路徑上的正串擾會導致捕獲觸發器的時鐘有效沿延遲到達。
保持時間分析與建立時間分析對公共時鐘路徑上的串擾分析存在一個重要的區別:在保持時間分析中,發起和捕獲時鐘邊沿通常是同一個邊沿,通過公共時鐘路徑部分的時鐘沿不會對發起時鐘路徑和捕獲時鐘路徑具有不同的串擾影響,因此,最差情況的保持時間分析會從公共時鐘路徑中消除串擾影響。
因此,具有串擾的STA最差情況保持時間(或最小路徑)分析將假定:
- 發起時鐘(不包括公共時鐘路徑部分)的串擾延遲影響為負,因此可以較早地發起資料;
- 資料路徑的串擾延遲影響為負,因此資料會較早到達目的地;
- 捕獲時鐘(不包括公共時鐘路徑部分)的串擾延遲影響為正,因此捕獲觸發器會較遲地捕獲資料。
如上所述,在保持時間分析中不考慮對時鐘樹公共路徑部分的串擾影響,僅針對時鐘樹的非公共路徑部分計算髮起時鐘的正串擾影響和捕獲時鐘的負串擾影響。在用於保持時間分析的STA報告中,公共時鐘路徑可能會顯示發起時鐘路徑和捕獲時鐘路徑具有不同的串擾影響。但是,來自公共時鐘路徑的串擾影響會被作為公共路徑悲觀度單獨減去。10.1節中將介紹一個STA報告中常見的減去路徑悲觀度的示例。
如前面小節所述,建立時間分析涉及時鐘的兩個不同邊沿,這些邊沿可能會在時序上受到不同影響。因此,在建立時間分析中,發起和捕獲時鐘路徑均考慮了公共路徑的串擾影響。
時鐘訊號至關重要,因為時鐘樹上的任何串擾都直接轉化為時鐘抖動(jitter)並影響設計的效能。因此,應該採取特殊的方法來減少時鐘訊號上的串擾。常見的避免噪聲的方法是時鐘樹的遮蔽(shield),這將在6.6節中進行詳細討論。
6.5 計算複雜度
大型的奈米級設計通常過於複雜,以至於無法在合理的時間內對每個耦合電容進行分析。典型網路的寄生引數提取包含了許多相鄰訊號的耦合電容。大型設計通常需要對寄生引數提取、串擾延遲分析和串擾毛刺分析進行適當的設定。選擇這些設定可為分析提供可以接受的準確度,同時確保對CPU的要求仍然可行。本節介紹了可用於分析大型奈米級設計的一些技術。
分層設計與分析
4.5節已介紹了可用於驗證大型設計的分層方法(Hierarchical Methodology),類似的方法也可用於降低提取寄生引數和進行分析的複雜性。
對於大型設計,執行(run)一次通常無法實現寄生引數的提取。每個層級模組的寄生引數可以分別提取,這又需要在設計實現的時候使用了分層設計方法。這意味著在分層模組內部的訊號與模組外部的訊號之間不存在耦合,這可以通過不在模組邊界上佈線或通過在模組上新增遮蔽層來實現。另外,訊號網路不應該布在靠近模組邊界的地方,並且任何佈線網路都應在靠近模組邊界的地方進行遮蔽保護,這樣可以避免與其他模組的網路耦合。
耦合電容的過濾
即使對於中等規模的模組,寄生引數通常也會包括大量非常小的耦合電容。小耦合電容可以在提取過程中或在分析過程中過濾掉。
這樣的過濾是基於以下原則的:
- 較小的值:在串擾或噪聲分析中,可以忽略非常小的耦合電容,例如低於1fF。在提取過程中,數值較小的耦合電容可以視為接地電容。
- 耦合比:耦合對受害者網路的影響是基於耦合電容相對於受害者網路總電容的相對值。具有較小耦合比(例如低於0.001)的攻擊者網路可以從串擾延遲分析或串擾毛刺分析中排除。
- 合併小型攻擊者:可以將影響很小的多個攻擊者對映為一個較大的虛擬攻擊者。這可能有點悲觀,但可以簡化分析。可以通過切換攻擊者的子集來緩解一些悲觀度,攻擊者的確切子集可以通過統計方法來確定。
6.6 噪聲避免技術
前面的小節介紹了串擾效應的影響和分析。在本小節中,我們將介紹一些可以在物理設計階段使用的噪聲避免技術。
- 遮蔽(Shielding):此方法要求將遮蔽線放在關鍵訊號的兩側,遮蔽線已連線到了電源或地。關鍵訊號的遮蔽確保了關鍵訊號沒有有效的攻擊者,因為在同一金屬層中最相鄰的走線是處於固定電位的遮蔽走線。儘管在不同的金屬層中可能存在來自佈線的某些耦合,但是大多數耦合電容還是由於同一層中的電容耦合引起的。由於不同金屬層(上方和下方)通常會正交走線,這樣跨層的電容耦合會最小化。因此,將遮蔽線放置在同一金屬層中可確保關鍵訊號的耦合最小。如果由於佈線擁塞而無法使用接地或電源線進行遮蔽,則可以把在功能模式下保持不變、電平切換不頻繁的訊號(如掃描控制訊號)佈線為關鍵訊號的直接相鄰訊號。這些遮蔽方法可確保不會由於相鄰網路的電容耦合而產生串擾。
- 線距(Wire spacing):這減少了與相鄰網路的耦合。
- 快速壓擺(Fast slew rate):網路上的壓擺較快表示該網路不易受到串擾的影響。
- 保持良好的穩定電源(Maintain good stable supply):這對於串擾而言並不重要,但對於最大程度地減少由於電源變化而引起的抖動至關重要。由於電源上的噪聲,可能會在時鐘訊號上引入大量噪聲。應該新增足夠的去耦電容,以最大程度地減少電源上的噪聲。
- 保護環(Guard ring):襯底(substrate)上的保護環(或雙重保護環)有助於將關鍵的類比電路與數字噪聲隔離開來。
- 深n阱(Deep n-well):與上面類似,因為在模擬部分具有深n阱,有助於防止噪聲耦合到數字部分。
- 隔離塊(Isolating a block):在分層設計流程中,可以將佈線暈圈(halos)新增到塊的邊界;此外,還可以將隔離緩衝器(isolation buffers)新增到塊的每個IO中。