3 ModelSim工程實(shí)戰(zhàn)之自動(dòng)仿真說完了 ModelSim 的使用流程,接下來我們將會(huì)對每個(gè)流程進(jìn)行詳細(xì)的操作演示,一步步、手把手帶領(lǐng)大家學(xué)習(xí)使用 ModelSim 軟件。首先我們講解的 ModelSim 自動(dòng)仿真,所謂自動(dòng)仿真,其實(shí)是在 Quartus II 中調(diào)用 ModelSim 軟件來進(jìn)行仿真。
在調(diào)用過程中,Quartus II 會(huì)幫我們完成 ModelSim 中的所有操作,我們只需要分析最后的仿真結(jié)果。下面我們就以上章節(jié)中我們創(chuàng)建的 Quartus II 軟件工程為例,進(jìn)行仿真。3.1 檢查 EDA 路徑首先我們打開之前的 Quartus II 工程
在該頁面中,我們在菜單欄中找到【Tool】→【Options】按鈕并打開,在打開的頁面左側(cè),我們找到“EDA Tool Options”點(diǎn)擊,如圖
在該頁面中,如果你安裝的是 ModelSim 軟件,那么你需要在 ModelSim 路徑中進(jìn)行設(shè)置,這里我們使用的 ModelSim-Altera , 所 以 我 們 將 ModelSim-Altera 路 徑 設(shè) 置 成 了C:altera13.1modelsim_asewin32aloem。這里需要大家注意的是一定要選擇 modelsim_ase文件夾中的 win32aloem。
不要選擇 modelsim_ae 文件夾中的 win32aloem。還記得我們前面說的么?ae 是收費(fèi)版本,我們是不能使用的,這里的 ase 免費(fèi)版本也是可以滿足我們的設(shè)計(jì)的。路徑設(shè)置完成以后,我們點(diǎn)擊【OK】返回我們的 Quartus II 軟件界面。3.2 選擇 EDA 工具我們在 Quartus II 軟件頁面的菜單欄中,我們找到【Assignments】→【Settings】按鈕并打開,在打開的頁面左側(cè)我們找到“EDA Tool Settings”點(diǎn)擊,如圖
還記得我們之前創(chuàng)建工程的時(shí)候,由于在 Quartus II 軟件中我們沒有用到仿真,所以我們將這里設(shè)置成了“None”,現(xiàn)在我們需要用到仿真工具了,我們需要在這里將 Simulation 設(shè)置成“ModelSim-Altera、Verilog HDL”。設(shè)置完成之后,我們點(diǎn)擊【OK】返回 Quartus II 軟件頁 面中。3.3 編寫仿真文件我們在 Quartus II 軟件頁面的菜單欄中,我們找到【Processing】→【Start】→【Start TestBench Template Writer】按鈕并點(diǎn)擊,這時(shí) Message 窗口中會(huì)顯示,如圖
我們可以從這條信息中知道,Quartus II 軟件自動(dòng)給我們生成了一個(gè) TestBench 模板,我們只需要在這個(gè)模板上稍作修改就能直接使用了。我們在工程目錄下找到 Verilog_First.vt 文件,我們可以用記事本打開進(jìn)行修改,也可以使用 Quartus II 軟件打開它進(jìn)行修改,這里我們建議還在 Quartus II 軟件中進(jìn)行修改。我們在 Quartus II 軟件的菜單欄中找到【File】→【Open】按鈕并打開,在對話框中找到我們的 Verilog 文件
打開之后,如圖
在該圖中我們可以看到,Quartus II 軟件已經(jīng)為我們完成了一些基本工作,包括端口部分的代碼和接口變量的聲明,我們要做的就是在這個(gè)模板里添加我們需要的測試代碼(也就是我們常說的激勵(lì))。為了讓讀者能夠更好的理解仿真。
這里我們就簡單介紹一下 TestBench 源代碼:代碼的第 1 行,表示仿真的單位時(shí)間為 1ps,精度為 1ps。想要進(jìn)行仿真首先要規(guī)定時(shí)間單位,我們建議大家最好在 Testbench 里面統(tǒng)一規(guī)定時(shí)間單位,不要在工程代碼里定義,因?yàn)椴煌哪K如果時(shí)間單位不同可能會(huì)為仿真帶來一些問題,timescale 是 Verilog 語法中的不可綜合語法。
代碼的第 2 行就是我們熟悉的部分了,其中第 5 行至第 10 行是我們的數(shù)據(jù)類型定義,這里我們可以看到 reg eachvec 是一個(gè)多余的信號,沒有任何作用,我們也可以將它刪除,接下來我們再來看第 13 行至第 18 行,這一部分就是一個(gè)模塊調(diào)用,它將我們的 Verilog 模塊中的信號連接到我們的 TestBench 模塊中。
最后,我們再來看下第 20 行至第 32 行代碼,其中第 20 行至第 26 行是信號的初始化,第 28 行至第 31 行是時(shí)鐘信號的生成。這里我們主要來講講#10000,#10000 表示的是延遲 10000ps(即 10ns),具體的延遲單位,還是要看我們的 timescale 是如何設(shè)置的。
至此,整個(gè)代碼都介紹完了。3.4 配置仿真功能編寫完了仿真文件,接下來我們需要在 Quartus II 軟件中配置仿真功能,我們在 Quartus II軟件界面的菜單欄找到【Assigement】→【Settings】按鈕并打開,在打開的頁面中,我們找到左側(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”窗口(也就是圖中下面的窗口)。
在該頁面中,我們將 TestBench 模塊名輸入到“Test bench name”和 “Top level module in test bench”的編輯欄中。接著我們在“Test bench and simulation files”下拉列表框中添加仿真文件,如圖 所示,點(diǎn)擊【Open】即可。
然后單擊【Add】 按鈕添加到最下面的列表中如圖
完成后我們單擊【OK】按鈕,便可看到如圖 2.12 所示的“Test benches”窗口的列表中出現(xiàn)了剛才添加的仿真文件相關(guān)信息,至此,我們仿真文件添加完成了,接著我們單擊【OK】按鈕,返回我們的 Quartus II 軟件界面。
3.5 開始功能仿真
萬事俱備只欠東風(fēng),經(jīng)過上面這么多的操作步驟,我們終于完成了所有設(shè)置,接下來我們就可以進(jìn)行仿真了,在開始仿真之前,我們這里有一點(diǎn)要需要注意,我們在 Quartus II 軟件中實(shí)現(xiàn)的功能是 LED 閃爍,它的間隔時(shí)間是 1s,如果我們想要仿真這個(gè)功能,那么我們仿真軟件運(yùn)行時(shí)間最低就是 1s。這 1s 鐘在我們看來是很短很短的,不過在仿真軟件看來是很長很長的,我們的仿真軟件單位可是 ps。
為了便于我們仿真,這里我們需要稍微改動(dòng)一下 Verilog 代碼,我們需要將 parameter SET_TIME_1S = 27‘d50_000_000;修改為 parameter SET_TIME_1S = 27’d50; 也就是將我們原來的 1s 鐘修改成了 1us。修改完畢后,我們在 Quartus II 軟件界面中的菜單欄中找到【Tools】→【Run Simulation Tool】→【RTL Simulation】按鈕并點(diǎn)擊,則會(huì)出現(xiàn)如圖 2.13 所示界面。
看到這里,也許有的朋友點(diǎn)擊【RTL Simulation】并沒有出現(xiàn) Modelsim 仿真窗口界面,而是出現(xiàn)了如圖 2.14 所示界面。
出現(xiàn)這種錯(cuò)誤主要是因?yàn)槲覀兦懊嬖O(shè)置的 Modelsim 路徑不對造成的,如何解決這個(gè)問題呢?我們嘗試將 ModelSim-Altera 路徑設(shè)置成了 C:altera13.1modelsim_asewin32aloem。這和我們剛剛設(shè)置不同的是,我們在路徑的最后面添加了一個(gè)反斜杠。
這時(shí),我們再點(diǎn)擊【RTL Simulation】按鈕就會(huì)出現(xiàn) Modelsim 仿真窗口界面了,這里我們需要說明的是:有的電腦不添加反斜杠是可以運(yùn)行的,有的電腦不添加反斜杠是不能運(yùn)行。在 Modelsim 軟件啟動(dòng)過程中,我 們不需要任何操作,它會(huì)自動(dòng)完成仿真,并給出我們所需要的波形,當(dāng)波形圖出現(xiàn)之后,我們就可以查看波形來判斷設(shè)計(jì)功能是否正常了。
編輯:jq
-
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
47919
原文標(biāo)題:ModelSim 使用【二】聯(lián)合Quarus自動(dòng)仿真
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
開關(guān)電源仿真
【紫光同創(chuàng)盤古100Pro+開發(fā)板,MES2L676-100HP教程】盤古676系列——Modelsim的使用和do文件編寫
spectre和hpeesofsim仿真直流電壓結(jié)果不同
智能座艙HIL仿真測試解決方案

OptiSystem與OptiSPICE的聯(lián)合使用:收發(fā)機(jī)電路的眼圖分析
使用modelsim時(shí)的問題分析

Efinity FIFO IP仿真問題 -v1

智駕仿真測試實(shí)戰(zhàn)之自動(dòng)泊車HiL仿真測試

自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(終)

康謀分享 | 自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(四)

康謀分享 | 自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(三)

如何在ModelSim中添加Xilinx仿真庫
康謀分享 | 自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(二)

自動(dòng)駕駛仿真測試實(shí)踐:高精地圖仿真

康謀分享 | 自動(dòng)駕駛聯(lián)合仿真——功能模型接口FMI(一)

評論