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