CCSN Library
PT-SI在進行噪聲分析前,首先需要確認Library中具備噪聲模型。CCSN噪聲模型建模是基于CCB(Channel Connected Block)。數(shù)字邏輯單元可以認為由一級或多級CCB組成,其中反相器,與非門,或非門只包含一級CCB;與門則包含兩級CCB;而寄存器則包含多級CCB。下面就簡單區(qū)分一下三種情況下噪聲建模的區(qū)別:
單級CCB邏輯單元
對于單級CCB邏輯單元,例如反相器,噪聲建模基于時序狐(Arc Based)。噪聲的傳輸可以基于Timing Arc,模型轉(zhuǎn)換框圖如下:
反相器的噪聲模型在.lib中大致如下:
pin (Z) {
...
timing () {
related_pin: A;
...
ccsn_first_stage() { /*First stage CCB*/
...
}
}
...
}
兩級CCB邏輯單元
對于兩級CCB邏輯單元,例如與門,噪聲建模也是基于時序狐(Arc Based)。分為input stage (ccsn_first_stage)和output stage (ccsn_last_stage),噪聲的傳輸亦可以基于Timing Arc,模型轉(zhuǎn)換框圖如下:
與門的噪聲模型在.lib中大致如下:
pin (Z) {
...
timing () {
related_pin: A;
...
ccsn_first_stage() { /*Input to Internal Node*/
...
}
ccsn_last_stage() { /*Internal Node to Output*/
...
}
}
...
}
多級CCB邏輯單元
對于多級CCB邏輯單元,例如寄存器,噪聲建模是基于Pin的 (Pin Based),對于所有inputs都抽取ccsn_first_stage模型,對于outputs抽取ccsn_last_stage模型。如果這種邏輯單元中存在某些input-output的路徑只有兩級CCB,也可以通過Arc Based方式建模。模型轉(zhuǎn)換框圖如下:
寄存器的噪聲模型在.lib中大致如下:
pin (CDN) {
...
}
pin (CP) {
...
ccsn_first_stage() {
...
}
}
pin (D) {
...
ccsn_first_stage() {
...
}
}
pin (Q) {
...
timing () {
related_pin: CDN;
...
ccsn_first_stage() { /*Input to Internal Node*/
...
}
ccsn_last_stage() { /*Internal Node to Output*/
...
}
}
...
}
需要注意的,對于Arc Based和Pin Based兩種方式,.lib中噪聲相關(guān)的屬性存儲的對象是不同的,Arc Based噪聲屬性是存在對于的Arc中,而Pin Based噪聲屬性則是與Pin關(guān)聯(lián)的,具體的區(qū)別可以參看下面的命令:
#Arc Based Attributes
get_attribute [get_lib_timing_arc -of [get_lib_cell */INV1X]] has_ccs_noise_above_high
#Pin Based Attributes
get_attribute [get_lib_pins -of [get_lib_cell */INV1X]] has_ccs_noise_above_high
噪聲分析實戰(zhàn)
為了進行Noise或者Glitch分析,需要對一個串擾造成的Bump建模,它有寬度和高度,還有面積等屬性概念(如下圖所示),在分析噪聲時可以分別針對height, area, area_percent進行分析,命令如下:
#默認值是height
report_noise -slack_type height
#area=1/2* height * width
report_noise -slack_type area
#area_percent = (constrainted height - actual height) / constrainted height
report_noise -slack_type area_percent
PT-SI在進行update_noise計算時,首先會采用較為悲觀的方式快速計算一個類似于下圖中DC noise margin的閾值,如果計算出的Bump Height遠低于該值,那么就可以斷定沒有noise不會傳播,沒有危害。如果計算出的Bump Height接近這個閾值,那么工具就會啟動更精細的類似SPICE的門級仿真,取得更精確的結(jié)果。通過這種方式,即節(jié)省了時間,又保證了精度。
下圖中的曲線可以看做是Noise Immunity Curve(NIC),在曲線左下角的Glitch都是無害的,而右上角的Glitch都是必須修復(fù)掉的。PT-SI在進行Noise門級仿真時會實時地計算出各個點的NIC,通過PT的GUI界面也可以調(diào)出這類圖片。
最后,簡單聊一聊萬一出現(xiàn)的noise違例,我們怎么去修復(fù)呢?
這個需要結(jié)合受害(victim)和攻擊(aggressor) Net相關(guān)路徑的時序,周圍Net和Cell的密集程度等情況來具體分析,大致上有以下方法:
(1)增加受害Net的驅(qū)動單元驅(qū)動能力
(2)減少受害Net的負載單元驅(qū)動能力
(3)增加受害Net和攻擊Net的間距
(4)降低攻擊Net的驅(qū)動單元驅(qū)動能力
(5)通過加Buffer將受害Net打斷 (工具一般是通過這種方式來修復(fù))
(6)將受害或者攻擊Net的驅(qū)動單元或者負載單元挪開一定距離,并重新ECO繞線
-
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120260 -
反相器
+關(guān)注
關(guān)注
6文章
311瀏覽量
43295 -
CCSN
+關(guān)注
關(guān)注
0文章
3瀏覽量
7083 -
GUI
+關(guān)注
關(guān)注
3文章
659瀏覽量
39658 -
SPICE仿真
+關(guān)注
關(guān)注
1文章
27瀏覽量
6418
發(fā)布評論請先 登錄
相關(guān)推薦
評論