門級(jí)仿真(gate levelsimulation)也稱之為后仿真,是數(shù)字IC設(shè)計(jì)流程中的一個(gè)重要步驟。
在講解門級(jí)仿真作用之前,我們先簡(jiǎn)單來看一下數(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都需要重新跑門級(jí)仿真,保證功能級(jí)仿真的正確。門級(jí)仿真的時(shí)間開銷很大,尤其對(duì)于規(guī)模稍大的芯片,跑完一個(gè)case經(jīng)常需要幾天的時(shí)間。
有人會(huì)問,綜合之后都會(huì)做formal和STA,來保證網(wǎng)表的一致性和timing沒有violation。那為什么還要做如此耗時(shí)耗力的門級(jí)仿真的。下面我們就來羅列一下門級(jí)仿真的主要作用和重點(diǎn)。
1 雙重保險(xiǎn)
不論是在步驟1,2,3中,插入不同的東西之后,都會(huì)改變?cè)瓉淼膎etlist,雖然會(huì)做一致性檢查,但是還是需要進(jìn)行功能性的門級(jí)仿真,以保證網(wǎng)表的正確性。
2 STA檢查不到的timing問題
STA可以檢查大多數(shù)的timing violation,但是也有力所不及的地方。比如:
(1)異步模塊和端口的timingcheck,這一塊,有很多公司其實(shí)是會(huì)做類似CDC的flow來保證異步timing的,但是在門級(jí)仿真中能更直觀直接的反映出來。
(2)STA中constraint加的不足,這類情況,在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)仿真的問題。但是在后仿中,A/B/C三根信號(hào)必然不是同時(shí)toggle的,這樣的信號(hào),傳入ananlogmode中就可能出現(xiàn)仿真的錯(cuò)誤。

上面這種問題的解決方案是:
詳細(xì)了解analogmode的需求,然后寫出完善的constraints給做綜合和STA。但是這些constraint總歸不是100%完善的,很多時(shí)候就需要后仿來報(bào)錯(cuò)發(fā)現(xiàn)。
3 X態(tài)傳播的debug
這個(gè)是門級(jí)仿真中最重要的工作之一,就是排除芯片中所有X態(tài)傳播而造成的功能問題。
有人不是很理解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;但是在門級(jí)仿真中,當(dāng)a=X時(shí),b就會(huì)=X,從而X態(tài)會(huì)一級(jí)一級(jí)傳播下去。
X態(tài)的傳播,有些是無所謂的,有些就會(huì)影響到芯片的正常工作,尤其是在controlpath上的X態(tài)傳播。而這些都只能依靠門級(jí)仿真來發(fā)現(xiàn)了。
當(dāng)然,有很多大公司,在RTL仿真的時(shí)候,就會(huì)加入X態(tài)的模擬仿真,能提前盡早的發(fā)現(xiàn)這類問題。
4 驗(yàn)證初始化reset流程的正確性
實(shí)際芯片在剛上電的時(shí)候,理論上大多數(shù)信號(hào)都是在不確定態(tài)X態(tài)的,需要經(jīng)過reset流程來進(jìn)行初始化。而只有在門級(jí)仿真中,才能更加真實(shí)充分的反應(yīng)reset流程的正確性。
5 power評(píng)估
門級(jí)仿真中還有一個(gè)重要作用就是用來進(jìn)行power估計(jì),因?yàn)閚etlist尤其是post_PR的網(wǎng)表能更加真實(shí)的接近實(shí)際的芯片,提供的power評(píng)估值就越有參考價(jià)值。
一般會(huì)創(chuàng)建一個(gè)toggle rate最高的case來跑門級(jí)仿真,從而生成IR-DROP需要的VCD文件。
6 ISO值的驗(yàn)證
低功耗設(shè)計(jì)在芯片設(shè)計(jì)中越來越重要,大多數(shù)芯片都會(huì)采取低功耗設(shè)計(jì),在后端的實(shí)現(xiàn)中就需要插入isolation來保持一些信號(hào)在掉電狀態(tài)下的值。而ISO值為0還是為1,是直接參考CPF/UPF文件來實(shí)現(xiàn)的。而CPF/UPF文件很多時(shí)候是直接通過review得到的。
萬一在CPF/UPF中寫錯(cuò)了,在門級(jí)仿真中就可以抓出類似的bug。
7 Power switch的驗(yàn)證
同樣在low power設(shè)計(jì)中,powerswitchchain也是很重要的一環(huán),而這個(gè)只有在post_PR的網(wǎng)表中才會(huì)真正插入。
以上只是簡(jiǎn)單羅列了一下門級(jí)仿真的作用,具體的門級(jí)仿真的操作細(xì)節(jié)和注意事項(xiàng)會(huì)在后續(xù)的文章中慢慢道來。這篇文章比較適合有一定工作經(jīng)驗(yàn)但剛開始做門級(jí)仿真的朋友們,有什么問題,歡迎大家留言一起交流~
審核編輯:湯梓紅
-
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1373瀏覽量
108323 -
芯片設(shè)計(jì)
+關(guān)注
關(guān)注
15文章
1155瀏覽量
56680 -
仿真
+關(guān)注
關(guān)注
54文章
4486瀏覽量
138315 -
DFT
+關(guān)注
關(guān)注
2文章
237瀏覽量
24049 -
數(shù)字IC
+關(guān)注
關(guān)注
2文章
40瀏覽量
13390
原文標(biāo)題:數(shù)字IC設(shè)計(jì)流程中為什么要做門級(jí)仿真?
文章出處:【微信號(hào):芯司機(jī),微信公眾號(hào):芯司機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【「數(shù)字IC設(shè)計(jì)入門」閱讀體驗(yàn)】+ 數(shù)字IC設(shè)計(jì)流程
IC設(shè)計(jì)流程
我對(duì)IC設(shè)計(jì)流程的一些理解
RTL級(jí)仿真與門級(jí)仿真
關(guān)于RTL仿真和門級(jí)仿真求助~
一個(gè)關(guān)于quartus ii 中仿真的問題,功能仿真準(zhǔn)確,為什么門級(jí)仿真就爛的一塌糊涂
IC設(shè)計(jì)流程介紹
今天為什么仍必須進(jìn)行門級(jí)仿真(GLS)精選資料分享
數(shù)字IC設(shè)計(jì)流程
數(shù)字IC前端后端的區(qū)別,數(shù)字IC設(shè)計(jì)流程與設(shè)計(jì)工具
芯片設(shè)計(jì)之門級(jí)仿真
芯華章發(fā)布國內(nèi)首臺(tái)超百億門大容量硬件仿真系統(tǒng) 完備數(shù)字驗(yàn)證全流程工具平臺(tái)
簡(jiǎn)述進(jìn)行?IC設(shè)計(jì)的方法和設(shè)計(jì)流程
數(shù)字IC設(shè)計(jì)流程中為什么要做門級(jí)仿真?
評(píng)論