3 ModelSim工程實(shí)戰(zhàn)之自動(dòng)仿真說(shuō)完了 ModelSim 的使用流程,接下來(lái)我們將會(huì)對(duì)每個(gè)流程進(jìn)行詳細(xì)的操作演示,一步步、手把手帶領(lǐng)大家學(xué)習(xí)使用 ModelSim 軟件。首先我們講解的 ModelSim 自動(dòng)仿真,所謂自動(dòng)仿真,其實(shí)是在 Quartus II 中調(diào)用 ModelSim 軟件來(lái)進(jìn)行仿真。
在調(diào)用過(guò)程中,Quartus II 會(huì)幫我們完成 ModelSim 中的所有操作,我們只需要分析最后的仿真結(jié)果。下面我們就以上章節(jié)中我們創(chuàng)建的 Quartus II 軟件工程為例,進(jìn)行仿真。3.1 檢查 EDA 路徑首先我們打開(kāi)之前的 Quartus II 工程
在該頁(yè)面中,我們?cè)诓藛螜谥姓业健綯ool】→【Options】按鈕并打開(kāi),在打開(kāi)的頁(yè)面左側(cè),我們找到“EDA Tool Options”點(diǎn)擊,如圖

在該頁(yè)面中,如果你安裝的是 ModelSim 軟件,那么你需要在 ModelSim 路徑中進(jìn)行設(shè)置,這里我們使用的 ModelSim-Altera , 所 以 我 們 將 ModelSim-Altera 路 徑 設(shè) 置 成 了C:altera13.1modelsim_asewin32aloem。這里需要大家注意的是一定要選擇 modelsim_ase文件夾中的 win32aloem。
不要選擇 modelsim_ae 文件夾中的 win32aloem。還記得我們前面說(shuō)的么?ae 是收費(fèi)版本,我們是不能使用的,這里的 ase 免費(fèi)版本也是可以滿足我們的設(shè)計(jì)的。路徑設(shè)置完成以后,我們點(diǎn)擊【OK】返回我們的 Quartus II 軟件界面。3.2 選擇 EDA 工具我們?cè)?Quartus II 軟件頁(yè)面的菜單欄中,我們找到【Assignments】→【Settings】按鈕并打開(kāi),在打開(kāi)的頁(yè)面左側(cè)我們找到“EDA Tool Settings”點(diǎn)擊,如圖

還記得我們之前創(chuàng)建工程的時(shí)候,由于在 Quartus II 軟件中我們沒(méi)有用到仿真,所以我們將這里設(shè)置成了“None”,現(xiàn)在我們需要用到仿真工具了,我們需要在這里將 Simulation 設(shè)置成“ModelSim-Altera、Verilog HDL”。設(shè)置完成之后,我們點(diǎn)擊【OK】返回 Quartus II 軟件頁(yè) 面中。3.3 編寫仿真文件我們?cè)?Quartus II 軟件頁(yè)面的菜單欄中,我們找到【Processing】→【Start】→【Start TestBench Template Writer】按鈕并點(diǎn)擊,這時(shí) Message 窗口中會(huì)顯示,如圖

我們可以從這條信息中知道,Quartus II 軟件自動(dòng)給我們生成了一個(gè) TestBench 模板,我們只需要在這個(gè)模板上稍作修改就能直接使用了。我們?cè)诠こ棠夸浵抡业?Verilog_First.vt 文件,我們可以用記事本打開(kāi)進(jìn)行修改,也可以使用 Quartus II 軟件打開(kāi)它進(jìn)行修改,這里我們建議還在 Quartus II 軟件中進(jìn)行修改。我們?cè)?Quartus II 軟件的菜單欄中找到【File】→【Open】按鈕并打開(kāi),在對(duì)話框中找到我們的 Verilog 文件
打開(kāi)之后,如圖

在該圖中我們可以看到,Quartus II 軟件已經(jīng)為我們完成了一些基本工作,包括端口部分的代碼和接口變量的聲明,我們要做的就是在這個(gè)模板里添加我們需要的測(cè)試代碼(也就是我們常說(shuō)的激勵(lì))。為了讓讀者能夠更好的理解仿真。
這里我們就簡(jiǎn)單介紹一下 TestBench 源代碼:代碼的第 1 行,表示仿真的單位時(shí)間為 1ps,精度為 1ps。想要進(jìn)行仿真首先要規(guī)定時(shí)間單位,我們建議大家最好在 Testbench 里面統(tǒng)一規(guī)定時(shí)間單位,不要在工程代碼里定義,因?yàn)椴煌哪K如果時(shí)間單位不同可能會(huì)為仿真帶來(lái)一些問(wèn)題,timescale 是 Verilog 語(yǔ)法中的不可綜合語(yǔ)法。
代碼的第 2 行就是我們熟悉的部分了,其中第 5 行至第 10 行是我們的數(shù)據(jù)類型定義,這里我們可以看到 reg eachvec 是一個(gè)多余的信號(hào),沒(méi)有任何作用,我們也可以將它刪除,接下來(lái)我們?cè)賮?lái)看第 13 行至第 18 行,這一部分就是一個(gè)模塊調(diào)用,它將我們的 Verilog 模塊中的信號(hào)連接到我們的 TestBench 模塊中。
最后,我們?cè)賮?lái)看下第 20 行至第 32 行代碼,其中第 20 行至第 26 行是信號(hào)的初始化,第 28 行至第 31 行是時(shí)鐘信號(hào)的生成。這里我們主要來(lái)講講#10000,#10000 表示的是延遲 10000ps(即 10ns),具體的延遲單位,還是要看我們的 timescale 是如何設(shè)置的。
至此,整個(gè)代碼都介紹完了。3.4 配置仿真功能編寫完了仿真文件,接下來(lái)我們需要在 Quartus II 軟件中配置仿真功能,我們?cè)?Quartus II軟件界面的菜單欄找到【Assigement】→【Settings】按鈕并打開(kāi),在打開(kāi)的頁(yè)面中,我們找到左側(cè)的 Simulation 點(diǎn)擊,出現(xiàn)如圖

我們選中“Compile Test bench”,然后單擊后面的【Test Benches】按鈕,則出現(xiàn)如圖 2.9所示的“Test Benches”窗口(也就是圖中上面的窗口),接著我們單擊【New】按鈕,則會(huì)出現(xiàn)如圖 所示的“New Test Bench Settings”窗口(也就是圖中下面的窗口)。

在該頁(yè)面中,我們將 TestBench 模塊名輸入到“Test bench name”和 “Top level module in test bench”的編輯欄中。接著我們?cè)凇癟est bench and simulation files”下拉列表框中添加仿真文件,如圖 所示,點(diǎn)擊【Open】即可。

然后單擊【Add】 按鈕添加到最下面的列表中如圖

完成后我們單擊【OK】按鈕,便可看到如圖 2.12 所示的“Test benches”窗口的列表中出現(xiàn)了剛才添加的仿真文件相關(guān)信息,至此,我們仿真文件添加完成了,接著我們單擊【OK】按鈕,返回我們的 Quartus II 軟件界面。

3.5 開(kāi)始功能仿真
萬(wàn)事俱備只欠東風(fēng),經(jīng)過(guò)上面這么多的操作步驟,我們終于完成了所有設(shè)置,接下來(lái)我們就可以進(jìn)行仿真了,在開(kāi)始仿真之前,我們這里有一點(diǎn)要需要注意,我們?cè)?Quartus II 軟件中實(shí)現(xiàn)的功能是 LED 閃爍,它的間隔時(shí)間是 1s,如果我們想要仿真這個(gè)功能,那么我們仿真軟件運(yùn)行時(shí)間最低就是 1s。這 1s 鐘在我們看來(lái)是很短很短的,不過(guò)在仿真軟件看來(lái)是很長(zhǎng)很長(zhǎng)的,我們的仿真軟件單位可是 ps。
為了便于我們仿真,這里我們需要稍微改動(dòng)一下 Verilog 代碼,我們需要將 parameter SET_TIME_1S = 27‘d50_000_000;修改為 parameter SET_TIME_1S = 27’d50; 也就是將我們?cè)瓉?lái)的 1s 鐘修改成了 1us。修改完畢后,我們?cè)?Quartus II 軟件界面中的菜單欄中找到【Tools】→【Run Simulation Tool】→【RTL Simulation】按鈕并點(diǎn)擊,則會(huì)出現(xiàn)如圖 2.13 所示界面。

看到這里,也許有的朋友點(diǎn)擊【RTL Simulation】并沒(méi)有出現(xiàn) Modelsim 仿真窗口界面,而是出現(xiàn)了如圖 2.14 所示界面。

出現(xiàn)這種錯(cuò)誤主要是因?yàn)槲覀兦懊嬖O(shè)置的 Modelsim 路徑不對(duì)造成的,如何解決這個(gè)問(wèn)題呢?我們嘗試將 ModelSim-Altera 路徑設(shè)置成了 C:altera13.1modelsim_asewin32aloem。這和我們剛剛設(shè)置不同的是,我們?cè)诼窂降淖詈竺嫣砑恿艘粋€(gè)反斜杠。
這時(shí),我們?cè)冱c(diǎn)擊【RTL Simulation】按鈕就會(huì)出現(xiàn) Modelsim 仿真窗口界面了,這里我們需要說(shuō)明的是:有的電腦不添加反斜杠是可以運(yùn)行的,有的電腦不添加反斜杠是不能運(yùn)行。在 Modelsim 軟件啟動(dòng)過(guò)程中,我 們不需要任何操作,它會(huì)自動(dòng)完成仿真,并給出我們所需要的波形,當(dāng)波形圖出現(xiàn)之后,我們就可以查看波形來(lái)判斷設(shè)計(jì)功能是否正常了。
編輯:jq
-
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
48762
原文標(biāo)題:ModelSim 使用【二】聯(lián)合Quarus自動(dòng)仿真
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
利用 NucleiStudio IDE 和 vivado 進(jìn)行軟硬件聯(lián)合仿真
自動(dòng)駕駛中端到端仿真與基于規(guī)則的仿真有什么區(qū)別?
ModelSim仿真蜂鳥(niǎo)E203 / 200 教程【功能驗(yàn)證】
語(yǔ)法糾錯(cuò)和testbench的自動(dòng)生成
vcs和vivado聯(lián)合仿真
IMU+多相機(jī)高速聯(lián)合自動(dòng)標(biāo)定方案
vivado仿真時(shí)GSR信號(hào)的影響
TSMaster x dSPACE:聯(lián)合仿真助力汽車測(cè)試效率再升級(jí)
【RK3568+PG2L50H開(kāi)發(fā)板實(shí)驗(yàn)例程】FPGA部分 | Pango 的時(shí)鐘資源——鎖相環(huán)
干貨分享 | 手把手教學(xué):TSMasterAPI插件導(dǎo)入與ECUTEST聯(lián)合仿真指南
開(kāi)關(guān)電源仿真
【紫光同創(chuàng)盤古100Pro+開(kāi)發(fā)板,MES2L676-100HP教程】盤古676系列——Modelsim的使用和do文件編寫
spectre和hpeesofsim仿真直流電壓結(jié)果不同
智能座艙HIL仿真測(cè)試解決方案

基于ModelSim使用二聯(lián)合Quarus自動(dòng)仿真教程
評(píng)論