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