仿真是我們?cè)隍?yàn)證邏輯功能的常用手段。通過仿真,我們可以提早發(fā)現(xiàn)一些隱含的邏輯Bug。仿真一般分為功能仿真和時(shí)序仿真,有的時(shí)候也稱作前仿真和后仿真。這兩者的主要區(qū)別是在功能仿真里暫時(shí)忽略了邏輯延時(shí)和布局布線延時(shí),仿真的模型相對(duì)簡(jiǎn)單,仿真的運(yùn)行速度更快。
可以用來驗(yàn)證功能的正確性。時(shí)序仿真通過反標(biāo)的方式將加入延時(shí)信息,這樣仿真的結(jié)果更接近實(shí)際芯片的工作情況。但正因?yàn)槿绱耍瑫r(shí)序仿真的模型更為復(fù)雜,需要計(jì)算的信息更多,運(yùn)行的時(shí)間更長(zhǎng)。一般情況下,我們首先通過邏輯仿真驗(yàn)證功能,然后再運(yùn)行時(shí)序仿真驗(yàn)證時(shí)序的正確性。
當(dāng)然現(xiàn)在也有一些做法是在做功能仿真的時(shí)候,人為的設(shè)定一些延時(shí),雖然不能百分之百的擬合實(shí)際的芯片運(yùn)行情況,但可以覆蓋大多數(shù)的應(yīng)用場(chǎng)景。帶來的好處是仿真的運(yùn)行比時(shí)序仿真要快很多。
各個(gè)EDA公司都有自己的仿真工具,針對(duì)FPGA/CPLD來說,用的比較多的是Modelsim和Aldec。無(wú)論用哪個(gè)仿真工具,有一個(gè)細(xì)節(jié)經(jīng)常會(huì)被初學(xué)者會(huì)忽略。在設(shè)計(jì)好testbench后,編譯都沒有問題,但在開始仿真的時(shí)候,軟件會(huì)報(bào)類似這樣的錯(cuò)誤:
Fatal Error: ELAB2_0036 Unresolved hierarchical reference to“PUR_INST.PURNET” from module“tb_cdr_tb.UUT.top_cdr_u.receive_top_u.serial_data_in.FF_3” (modulenot found)。
Fatal Error: ELAB2_0036 Unresolved hierarchical reference to“GSR_INST.GSRNET” from module “tb_cdr_tb.UUT.top_cdr_u.receive_top_u.serial_data_in.FF_3”(module not found)。
這是因?yàn)樵谛酒ぷ鞯臅r(shí)候,內(nèi)部有PUR(Power Up Reset)和GSR(Global Set/Reset)模塊產(chǎn)生上電復(fù)位信號(hào)和接入全局復(fù)位/置位信號(hào)。這個(gè)信號(hào)在做綜合的時(shí)候是自動(dòng)生成并加入的設(shè)計(jì)中的,但在仿真的時(shí)候編譯并不會(huì)加入這兩個(gè)模塊。所以如果要做仿真,一定要在你的testbench中加入這樣一段描述:
PUR PUR_INST(.PUR(1‘b1));
GSRGSR_INST(.GSR(1’b1));
本站資訊文章系編輯轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與本站聯(lián)系,我們將在第一時(shí)間刪除內(nèi)容!
[聲明]本站文章版權(quán)歸原作者所有 內(nèi)容為作者個(gè)人觀點(diǎn) 本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。
本站擁有對(duì)此聲明的最終解釋權(quán)。
編輯;jq
-
FPGA
+關(guān)注
關(guān)注
1625文章
21628瀏覽量
601260 -
芯片
+關(guān)注
關(guān)注
452文章
50224瀏覽量
420996 -
cpld
+關(guān)注
關(guān)注
32文章
1246瀏覽量
169153 -
仿真
+關(guān)注
關(guān)注
50文章
4023瀏覽量
133341
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論