門(mén)級(jí)仿真(gate levelsimulation)也稱(chēng)之為后仿真,是數(shù)字IC設(shè)計(jì)流程中的一個(gè)重要步驟。
在講解門(mén)級(jí)仿真作用之前,我們先簡(jiǎn)單來(lái)看一下數(shù)字后端的流程:
在步驟1中,會(huì)插入DFT,生成post_DFT的網(wǎng)表netlist;在步驟2中會(huì)根據(jù)CPF/UPF插入isolation,生成post_ISO的網(wǎng)表;步驟3進(jìn)行后端PR,會(huì)插入clock tree以及power switch等,生成最終的post_PR的網(wǎng)表。
理論上每次生成新的netlist都需要重新跑門(mén)級(jí)仿真,保證功能級(jí)仿真的正確。門(mén)級(jí)仿真的時(shí)間開(kāi)銷(xiāo)很大,尤其對(duì)于規(guī)模稍大的芯片,跑完一個(gè)case經(jīng)常需要幾天的時(shí)間。
有人會(huì)問(wèn),綜合之后都會(huì)做formal和STA,來(lái)保證網(wǎng)表的一致性和timing沒(méi)有violation。那為什么還要做如此耗時(shí)耗力的門(mén)級(jí)仿真的。下面我們就來(lái)羅列一下門(mén)級(jí)仿真的主要作用和重點(diǎn)。
1 雙重保險(xiǎn)
不論是在步驟1,2,3中,插入不同的東西之后,都會(huì)改變?cè)瓉?lái)的netlist,雖然會(huì)做一致性檢查,但是還是需要進(jìn)行功能性的門(mén)級(jí)仿真,以保證網(wǎng)表的正確性。
2 STA檢查不到的timing問(wèn)題
STA可以檢查大多數(shù)的timing violation,但是也有力所不及的地方。比如:
(1)異步模塊和端口的timingcheck,這一塊,有很多公司其實(shí)是會(huì)做類(lèi)似CDC的flow來(lái)保證異步timing的,但是在門(mén)級(jí)仿真中能更直觀直接的反映出來(lái)。
(2)STA中constraint加的不足,這類(lèi)情況,在analog model的情況中體現(xiàn)的非常明顯。
比如下圖的這個(gè)情況,信號(hào)ABC是analogmode的三根輸入信號(hào),因?yàn)樵赗TL仿真中,A/B/C三根信號(hào)都是同時(shí)toggle的,信號(hào)進(jìn)入analog的mode之后,不會(huì)出現(xiàn)仿真的問(wèn)題。但是在后仿中,A/B/C三根信號(hào)必然不是同時(shí)toggle的,這樣的信號(hào),傳入ananlogmode中就可能出現(xiàn)仿真的錯(cuò)誤。
上面這種問(wèn)題的解決方案是:
詳細(xì)了解analogmode的需求,然后寫(xiě)出完善的constraints給做綜合和STA。但是這些constraint總歸不是100%完善的,很多時(shí)候就需要后仿來(lái)報(bào)錯(cuò)發(fā)現(xiàn)。
3 X態(tài)傳播的debug
這個(gè)是門(mén)級(jí)仿真中最重要的工作之一,就是排除芯片中所有X態(tài)傳播而造成的功能問(wèn)題。
有人不是很理解X態(tài)的傳播,我們先簡(jiǎn)單解釋一下:
if(a==1) b=1;
else b=0;
如上面這段簡(jiǎn)單的代碼,如果a=X態(tài),在RTL仿真中,是不會(huì)傳播出去的,因?yàn)闀?huì)走else這條通路,從而b=0;但是在門(mén)級(jí)仿真中,當(dāng)a=X時(shí),b就會(huì)=X,從而X態(tài)會(huì)一級(jí)一級(jí)傳播下去。
X態(tài)的傳播,有些是無(wú)所謂的,有些就會(huì)影響到芯片的正常工作,尤其是在controlpath上的X態(tài)傳播。而這些都只能依靠門(mén)級(jí)仿真來(lái)發(fā)現(xiàn)了。
當(dāng)然,有很多大公司,在RTL仿真的時(shí)候,就會(huì)加入X態(tài)的模擬仿真,能提前盡早的發(fā)現(xiàn)這類(lèi)問(wèn)題。
4 驗(yàn)證初始化reset流程的正確性
實(shí)際芯片在剛上電的時(shí)候,理論上大多數(shù)信號(hào)都是在不確定態(tài)X態(tài)的,需要經(jīng)過(guò)reset流程來(lái)進(jìn)行初始化。而只有在門(mén)級(jí)仿真中,才能更加真實(shí)充分的反應(yīng)reset流程的正確性。
5 power評(píng)估
門(mén)級(jí)仿真中還有一個(gè)重要作用就是用來(lái)進(jìn)行power估計(jì),因?yàn)閚etlist尤其是post_PR的網(wǎng)表能更加真實(shí)的接近實(shí)際的芯片,提供的power評(píng)估值就越有參考價(jià)值。
一般會(huì)創(chuàng)建一個(gè)toggle rate最高的case來(lái)跑門(mén)級(jí)仿真,從而生成IR-DROP需要的VCD文件。
6 ISO值的驗(yàn)證
低功耗設(shè)計(jì)在芯片設(shè)計(jì)中越來(lái)越重要,大多數(shù)芯片都會(huì)采取低功耗設(shè)計(jì),在后端的實(shí)現(xiàn)中就需要插入isolation來(lái)保持一些信號(hào)在掉電狀態(tài)下的值。而ISO值為0還是為1,是直接參考CPF/UPF文件來(lái)實(shí)現(xiàn)的。而CPF/UPF文件很多時(shí)候是直接通過(guò)review得到的。
萬(wàn)一在CPF/UPF中寫(xiě)錯(cuò)了,在門(mén)級(jí)仿真中就可以抓出類(lèi)似的bug。
7 Power switch的驗(yàn)證
同樣在low power設(shè)計(jì)中,powerswitchchain也是很重要的一環(huán),而這個(gè)只有在post_PR的網(wǎng)表中才會(huì)真正插入。
以上只是簡(jiǎn)單羅列了一下門(mén)級(jí)仿真的作用,具體的門(mén)級(jí)仿真的操作細(xì)節(jié)和注意事項(xiàng)會(huì)在后續(xù)的文章中慢慢道來(lái)。這篇文章比較適合有一定工作經(jīng)驗(yàn)但剛開(kāi)始做門(mén)級(jí)仿真的朋友們,有什么問(wèn)題,歡迎大家留言一起交流~
審核編輯:湯梓紅
-
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1296瀏覽量
103957 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
1019瀏覽量
54897 -
仿真
+關(guān)注
關(guān)注
50文章
4082瀏覽量
133613 -
DFT
+關(guān)注
關(guān)注
2文章
231瀏覽量
22729 -
數(shù)字IC
+關(guān)注
關(guān)注
1文章
38瀏覽量
12554
原文標(biāo)題:數(shù)字IC設(shè)計(jì)流程中為什么要做門(mén)級(jí)仿真?
文章出處:【微信號(hào):芯司機(jī),微信公眾號(hào):芯司機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論