3 ModelSim工程實戰(zhàn)之自動仿真說完了 ModelSim 的使用流程,接下來我們將會對每個流程進行詳細的操作演示,一步步、手把手帶領(lǐng)大家學(xué)習(xí)使用 ModelSim 軟件。首先我們講解的 ModelSim 自動仿真,所謂自動仿真,其實是在 Quartus II 中調(diào)用 ModelSim 軟件來進行仿真,在調(diào)用過程中,Quartus II 會幫我們完成 ModelSim 中的所有操作,我們只需要分析最后的仿真結(jié)果。下面我們就以上章節(jié)中我們創(chuàng)建的 Quartus II 軟件工程為例,進行仿真。3.1 檢查 EDA 路徑首先我們打開之前的 Quartus II 工程,如圖
在該頁面中,我們在菜單欄中找到【Tool】→【Options】按鈕并打開,在打開的頁面左側(cè),我們找到“EDA Tool Options”點擊,如圖
在該頁面中,如果你安裝的是 ModelSim 軟件,那么你需要在 ModelSim 路徑中進行設(shè)置,這里我們使用的 ModelSim-Altera , 所 以 我 們 將 ModelSim-Altera 路 徑 設(shè) 置 成 了C:altera13.1modelsim_asewin32aloem。這里需要大家注意的是一定要選擇 modelsim_ase文件夾中的 win32aloem,不要選擇 modelsim_ae 文件夾中的 win32aloem。還記得我們前面說的么?ae 是收費版本,我們是不能使用的,這里的 ase 免費版本也是可以滿足我們的設(shè)計的。路徑設(shè)置完成以后,我們點擊【OK】返回我們的 Quartus II 軟件界面。3.2 選擇 EDA 工具我們在 Quartus II 軟件頁面的菜單欄中,我們找到【Assignments】→【Settings】按鈕并打開,在打開的頁面左側(cè)我們找到“EDA Tool Settings”點擊,如圖
還記得我們之前創(chuàng)建工程的時候,由于在 Quartus II 軟件中我們沒有用到仿真,所以我們將這里設(shè)置成了“None”,現(xiàn)在我們需要用到仿真工具了,我們需要在這里將 Simulation 設(shè)置成“ModelSim-Altera、Verilog HDL”。設(shè)置完成之后,我們點擊【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 軟件已經(jīng)為我們完成了一些基本工作,包括端口部分的代碼和接口變量的聲明,我們要做的就是在這個模板里添加我們需要的測試代碼(也就是我們常說的激勵)。為了讓讀者能夠更好的理解仿真,這里我們就簡單介紹一下 TestBench 源代碼:代碼的第 1 行,表示仿真的單位時間為 1ps,精度為 1ps。想要進行仿真首先要規(guī)定時間單位,我們建議大家最好在 Testbench 里面統(tǒng)一規(guī)定時間單位,不要在工程代碼里定義,因為不同的模塊如果時間單位不同可能會為仿真帶來一些問題,timescale 是 Verilog 語法中的不可綜合語法。代碼的第 2 行就是我們熟悉的部分了,其中第 5 行至第 10 行是我們的數(shù)據(jù)類型定義,這里我們可以看到 reg eachvec 是一個多余的信號,沒有任何作用,我們也可以將它刪除,接下來我們再來看第 13 行至第 18 行,這一部分就是一個模塊調(diào)用,它將我們的 Verilog 模塊中的信號連接到我們的 TestBench 模塊中。最后,我們再來看下第 20 行至第 32 行代碼,其中第 20 行至第 26 行是信號的初始化,第 28 行至第 31 行是時鐘信號的生成。這里我們主要來講講#10000,#10000 表示的是延遲 10000ps(即 10ns),具體的延遲單位,還是要看我們的 timescale 是如何設(shè)置的。至此,整個代碼都介紹完了。3.4 配置仿真功能編寫完了仿真文件,接下來我們需要在 Quartus II 軟件中配置仿真功能,我們在 Quartus II軟件界面的菜單欄找到【Assigement】→【Settings】按鈕并打開,在打開的頁面中,我們找到左側(cè)的 Simulation 點擊,出現(xiàn)如圖
我們選中“Compile Test bench”,然后單擊后面的【Test Benches】按鈕,則出現(xiàn)如圖 2.9所示的“Test Benches”窗口(也就是圖中上面的窗口),接著我們單擊【New】按鈕,則會出現(xiàn)如圖所示的“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”窗口的列表中出現(xiàn)了剛才添加的仿真文件相關(guān)信息,至此,我們仿真文件添加完成了,接著我們單擊【OK】按鈕,返回我們的 Quartus II 軟件界面。
3.5 開始功能仿真萬事俱備只欠東風,經(jīng)過上面這么多的操作步驟,我們終于完成了所有設(shè)置,接下來我們就可以進行仿真了,在開始仿真之前,我們這里有一點要需要注意,我們在 Quartus II 軟件中實現(xiàn)的功能是 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】按鈕并點擊,則會出現(xiàn)如圖 2.13 所示界面。
看到這里,也許有的朋友點擊【RTL Simulation】并沒有出現(xiàn) Modelsim 仿真窗口界面,而是出現(xiàn)了如圖 2.14 所示界面。
出現(xiàn)這種錯誤主要是因為我們前面設(shè)置的 Modelsim 路徑不對造成的,如何解決這個問題呢?我們嘗試將 ModelSim-Altera 路徑設(shè)置成了 C:altera13.1modelsim_asewin32aloem。這和我們剛剛設(shè)置不同的是,我們在路徑的最后面添加了一個反斜杠。這時,我們再點擊【RTL Simulation】按鈕就會出現(xiàn) Modelsim 仿真窗口界面了,這里我們需要說明的是:有的電腦不添加反斜杠是可以運行的,有的電腦不添加反斜杠是不能運行。在 Modelsim 軟件啟動過程中,我 們不需要任何操作,它會自動完成仿真,并給出我們所需要的波形,當波形圖出現(xiàn)之后,我們就可以查看波形來判斷設(shè)計功能是否正常了。













審核編輯 :李倩
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
仿真
+關(guān)注
關(guān)注
51文章
4250瀏覽量
135454 -
eda
+關(guān)注
關(guān)注
71文章
2904瀏覽量
176798 -
ModelSim
+關(guān)注
關(guān)注
5文章
174瀏覽量
47996 -
Quarus
+關(guān)注
關(guān)注
0文章
4瀏覽量
6479
原文標題:ModelSim 使用【二】聯(lián)合Quarus自動仿真
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
《聊一聊ZXDoc》之CAN總線仿真、面板仿真
ZXDoc支持CAN總線仿真、面板仿真功能,通過虛擬化通信環(huán)境,提前驗證、優(yōu)化和保障系統(tǒng)可靠性,降低開發(fā)成本與風險,面板仿真還使其畫面實物化,便于操作和理解,仿真功能已成為ECU研發(fā)和

CANoe仿真HTTP節(jié)點的實戰(zhàn)秘籍大公開
在汽車電子系統(tǒng)測試中,CANoe作為主流的仿真測試工具,常需與云端服務(wù)器、第三方軟件或物聯(lián)網(wǎng)設(shè)備進行交互。隨著CANoe與外部軟件、服務(wù)器或設(shè)備交互越來越多,直接使用Socket進行通信往往不能滿足

國際汽車零部件巨頭質(zhì)量工程部實戰(zhàn)報告
國際汽車零部件巨頭質(zhì)量工程部實戰(zhàn)報告 ? (2024年度嵌入式軟件測試效能評估) ? 一、效率提升:從58天到6.5天的技術(shù)躍遷 1.??測試流程重構(gòu)? ‖?傳統(tǒng)測試流程
【紫光同創(chuàng)盤古100Pro+開發(fā)板,MES2L676-100HP教程】盤古676系列——Modelsim的使用和do文件編寫
的使用
該部分主要介紹Modelsim的基本使用方法。
當我們的設(shè)計文件沒有使用到任何平臺的IP核時,我們可以直接打開Modelsim新建工程,然后進行仿真,具體步驟如下所示:
點擊
發(fā)表于 02-25 18:36
LwIP應(yīng)用開發(fā)實戰(zhàn)指南—基于野火STM32
LwIP應(yīng)用開發(fā)實戰(zhàn)指南—基于野火STM32—20210122
發(fā)表于 01-17 14:34
?8次下載
LuatOS開發(fā)之4G模組隨機數(shù)(random)|實戰(zhàn)指南
本次學(xué)習(xí)的實戰(zhàn)是關(guān)于4G模組LuatOS開發(fā)的隨機數(shù)示例指南,希望大家有所收獲。

STM32項目實戰(zhàn):基于STM32U5的火災(zāi)報警系統(tǒng)(LVGL),附項目教程/源碼
《火災(zāi)報警系統(tǒng)_STM32U5》項目完整文檔、項目源碼,點擊下方鏈接免費領(lǐng)取。項目資料領(lǐng)取https://s.c1ns.cn/F5XyUSTM32項目實戰(zhàn)之“火災(zāi)報警系統(tǒng)”(基于STM32U5)今天

使用modelsim時的問題分析
仿真對于FPGA設(shè)計來說至關(guān)重要,我們經(jīng)常使用modelsim來進行功能仿真或者時序仿真,這樣就需要將modelsim和設(shè)計軟件(quart

Efinity FIFO IP仿真問題 -v1
幾個文件? 我們來看下modelsim.do文件,里面vlog了fifo_tb.sv文件,另外還調(diào)用了flist文件里的文件,flist只有一個文件那就是fifo_sim.v。所以這個仿真只使用了兩個

智駕仿真測試實戰(zhàn)之自動泊車HiL仿真測試
汽車進入智能化時代,自動泊車功能已成為標配。在研發(fā)測試階段,實車測試面臨測試場景覆蓋度不足、效率低下和成本高昂等挑戰(zhàn)。為解決這些問題,本文提出一種自動泊車HiL仿真測試系統(tǒng)方案,可大幅度提升測試效率


【全新課程資料】正點原子《ESP32物聯(lián)網(wǎng)項目實戰(zhàn)》培訓(xùn)課程資料上線!
正點原子《ESP32物聯(lián)網(wǎng)項目實戰(zhàn)》全新培訓(xùn)課程上線啦!正點原子工程師手把手教你學(xué)!通過多個項目實戰(zhàn),掌握ESP32物聯(lián)網(wǎng)項目的開發(fā)!
一、課程介紹本課程圍繞物聯(lián)網(wǎng)實戰(zhàn)項目展開教學(xué),內(nèi)
發(fā)表于 09-24 17:05
如何在ModelSim中添加Xilinx仿真庫
今天給大俠帶來在FPGA設(shè)計應(yīng)用中如何在ModelSim中添加Xilinx仿真庫,話不多說,上貨。
注意:ModelSim一定要安裝在不帶空格的目錄下,即不要安裝在“Program
發(fā)表于 07-03 18:16
評論