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