關(guān)于modelsim仿真時(shí)出現(xiàn) No objects found matching ‘/*’ 問題在Modelsim6.2系列版本中仿真時(shí),點(diǎn)擊start simulateion后,出現(xiàn)Objects空白的問題,導(dǎo)致執(zhí)行 add wave al l時(shí)出現(xiàn)“# (vish-4014) No objects found matching ‘/top_tb/*’。“的報(bào)錯(cuò)選項(xiàng)。盡管輸入run后,可以運(yùn)行仿真,但卻無法察看wave窗口的波形。
這是優(yōu)化的問題。
解決方法:
1. 點(diǎn)擊工具欄中的“simulate”按鈕,調(diào)出start smulation窗口,把窗口中最下邊optimization欄中的Enable optimization項(xiàng)目前的鉤鉤去掉,然后選擇仿真的文件,點(diǎn)擊OK,就一切正常了,能看到objects了。
Quatus ii聯(lián)合modelsim仿真無法產(chǎn)生波形或波形一直為Hiz狀態(tài)原因分析
最近用用modelsim仿真Quatus寫的testbench,遇到了波形無法產(chǎn)生的問題,一直卡在這里很久都沒找到原因,經(jīng)過一番分析和各種亂試,終于找到原因了。
在設(shè)置編譯的test bench的時(shí)候,一定要把頂層模塊設(shè)置為xx_vlg_tst(),就是啟動(dòng)test bench template writer的時(shí)候,軟件給你自動(dòng)產(chǎn)生的那個(gè)test bench的模塊名。因?yàn)樵诜抡娴臅r(shí)候,這個(gè)模塊才是真正的頂層模塊,是它實(shí)例化測(cè)試模塊,并給與測(cè)試模塊激勵(lì)信號(hào)的。設(shè)置方法如下:
點(diǎn)擊主界面菜單欄的Assignment——》Settings,出現(xiàn)Settings對(duì)話框,然后在Category欄選擇EDA Tool Settings——》Simulation,出現(xiàn)以下界面,
點(diǎn)擊3右邊的Test Benches按鍵,出現(xiàn)Test Benches對(duì)話框,然后點(diǎn)擊該對(duì)話框右邊的New按鍵,出現(xiàn)了Edit Test Bench Settings對(duì)話框,如下,
在Test Bench name一欄中,輸入test bench文件的名字,就是在simulation/modelsim文件夾中那個(gè)后綴為.vt的文件的名稱,而Top level module in test bench一欄則要輸入test bench文件中那個(gè)模塊的名稱,這個(gè)是自動(dòng)產(chǎn)生的,名字都是xx_vlg_tst,xx為test bench文件的名稱,記住,這里一定要設(shè)置好頂層模塊是xx_vlg_tst,因?yàn)槟J(rèn)情況下它是和test bench name是一樣的,如果這樣設(shè)置,是無法產(chǎn)生波形的。
之前一直用ise聯(lián)合modelsim仿真,ise里面就沒有這些繁瑣的步驟,在寫test bench的時(shí)候,軟件自動(dòng)把test bench設(shè)置為了頂層模塊,如圖:
仿真的時(shí)候只需要點(diǎn)擊vtf_xx.v文件,然后雙擊Simulate Behavioral Model就會(huì)調(diào)用modelsim,仿真test bench文件了。
modelsim仿真波形窗口小技巧
在編寫verilog模塊后,很重要的一部分就是對(duì)所編寫的模塊進(jìn)行仿真。而在仿真過程中,很重要的一部分就是觀察波形。這里所談的技巧其實(shí)是對(duì)于我個(gè)人而言,可能大部分人都已經(jīng)知道。但還是記錄下來,算是對(duì)我自己的提醒吧。
現(xiàn)在想想還是覺得好笑,以前每次打開波形窗口的時(shí)候,都是點(diǎn)擊下圖的Simulate Behavioral Model.每次修改了代碼,都是關(guān)掉原來的波形窗口,然后再重新點(diǎn)擊打開,麻煩程度不言而喻(好吧,當(dāng)初因?yàn)槌绦蚝?jiǎn)單,其實(shí)還不覺得很麻煩。)
現(xiàn)在明白了,對(duì)于這種情況,肯定是會(huì)有簡(jiǎn)單的操作的,否則這用戶體驗(yàn)也太差了。
當(dāng)然,第一次仿真打開波形窗口時(shí),還是老方法,點(diǎn)擊上圖的Simulate Behavioral Model。添加內(nèi)部信號(hào)以及修改數(shù)值進(jìn)制后結(jié)果如下圖(這里采用的是一個(gè)FIFO讀寫程序,程序不是這里需要在意的問題,我們只關(guān)心軟件的操作)。
下面我們通過修改din[3:0]的初始值來反映這個(gè)過程,由上圖可知,din[3:0]的初始值為6.接下來我把代碼中din[3:0]的初始值改為0后重新觀察波形,那該如何操作呢?千萬不要像我以前那么傻的關(guān)掉現(xiàn)有窗口然后重新仿真打開了。這樣我們又要重新添加內(nèi)部信號(hào)以及修改數(shù)值顯示了。
方便的步驟應(yīng)該是,首先,將該波形保存,這部很簡(jiǎn)單就不貼圖了,保存的其實(shí)就是你對(duì)該窗口的各種配置,哪怕以后你重新打開軟件,也可以通過打開之前保存的波形配置來查看仿真波形,而不用重新配置了。
保存后,修改完代碼(這里我把din[3:0]的初始值改為0,另外,代碼要記得保存,保存后代碼才能生效),然后點(diǎn)擊波形窗口的re-launch(如果之前沒進(jìn)行保存操作的話,點(diǎn)擊re-launch后軟件也會(huì)提示你保存的)。就可以看到仿真波形發(fā)生了變化,din[3:0]的初始值由之前的6變成了0.
另外,關(guān)于re-launch邊上的那幾個(gè)按鈕,也都是很有用處的,尤其仿真時(shí)間設(shè)置的,甚至有的時(shí)候還會(huì)因?yàn)檫@些設(shè)置的問題導(dǎo)致老是不能出現(xiàn)預(yù)期結(jié)果,這些操作很簡(jiǎn)單,就不一一解釋了,大家稍微用用就知道了。
上面提到的是采用ISE自帶的ISim進(jìn)行仿真,但大多數(shù)時(shí)候我們還是采用modelsim來進(jìn)行仿真,因?yàn)樗δ芨鼜?qiáng)大,速度也更快。但兩者操作其實(shí)是有很多類似的地方的,不過通過ise啟動(dòng)modelsim再修改程序再仿真的操作還是挺麻煩的(可能還有更簡(jiǎn)便的方法我不知道吧,知道可以通過腳本的方法,把命令編成程序,然后自動(dòng)執(zhí)行操作,但此方法還不太會(huì)。)。還是以上面的程序?yàn)槔?。用ise啟動(dòng)modelsim,設(shè)置好參數(shù)后如圖
可以看到din初始值為6。當(dāng)我們修改代碼并保存后,在modelsim中要重新編譯,點(diǎn)擊compile,出現(xiàn)下面的對(duì)話框:
由于修改的是FIFO.v文件,因此重新編譯該文件就好。
之后來到波形窗口,點(diǎn)擊restart,
再點(diǎn)擊OK,此時(shí)波形窗口無信號(hào)
此時(shí)只需要再點(diǎn)擊一下run就好了
此時(shí)可以看到din的初始值已經(jīng)變成0了。
其實(shí)這個(gè)過程還是有點(diǎn)麻煩,這就需要通過腳本操作了。或者我們不要通過ISE調(diào)用modelsim,而是直接使用modelsim,這樣會(huì)方便并且快速許多。
評(píng)論
查看更多