本篇文章爲轉載,寫的不錯,最近在學modelsim仿真,網上的教程很亂,把本身認爲不錯的整理貼出來,後面有機會會寫個詳細點的。html
Quartus 中調用modelsim的流程工具
1. 設定仿真工具
assignmentèsettingèEDA tool settingèsimulation 選擇你須要的工具。 post
2. 自動產生測試激勵文件模板:
processingèstartèStart test bench template writer
咱們點擊以後系統會自動在目錄:當前文件夾è simulation è modelsim (這個文件夾名字跟你選的仿真工具備關) 中產生一個測試激勵文件 xxx.vt(Verilog test bench) 或者 xxx.vht(VHDL test bench), 文件名跟你工程中的Top module 的名字同樣, 後綴爲.vt或者.vht。 測試
3. 編輯走動生成的test bench文件
咱們加入本身須要的激勵以及初始化語句,這裏咱們還要修改test bench的模塊名字爲tb(咱們會看到這個名字和後面的設定有聯繫)。 url
4. 鏈接test bench,咱們須要從Quartus中自動調用仿真工具,因此須要設定Native Link選項。命令行
a) 仍是在simulation的設置頁面裏,設定 Native Link對話框中的設定。咱們這裏由於須要工具自動調用激勵因此選中 設計
b) 點擊右邊的Test Benches, 咱們須要在這裏設定一個相關聯的test bench.
這裏會彈出一個讓你指定test bench的對話框,由於咱們以前沒有指定任何的test bench,因此這裏是空白的。3d
c) 指定test bench
由於咱們是第一次產生test bench,點擊new.
點擊New以後會產生一個New Test bench setting的對話框,在這裏你將test bench和你的相應的test bench file進行綁定。
咱們這裏在Test bench name的對話框中輸入一個名字」my_1st_tb」, 咱們將看到,在下面的Top level module in test bench對話框中也自動顯示」my_1st_tb」. 注意這個名字應該和你的test bench 中的module name一直,咱們以前在第3步的時候將test bench的module name已經改爲了tb,因此咱們這裏應該把對話框中的名字改爲tb。 調試
5. 進行仿真
當這些設定都完成了以後, 選擇菜單
toolèRun EDA Simulation toolèEDA RTL simulation
就能夠直接調用modelsim進行仿真。
6. 小技巧:
咱們這樣調用仿真,若是是Modelsim AE每次不會編譯lib文件,但若是咱們使用的是Modelsim SE版本,每次調用都須要從新編譯庫,很是不爽,在這裏咱們建議本身修改腳本文件,進行仿真.
a) 當咱們按照以前的描述,運行完仿真以後,停留在Modelsim的界面。
b) 在Modelsim界面的命令行上,咱們點向上的方向鍵,就會出現咱們上一條指令, 咱們能夠看到是
do xxxx.do 這說明工具執行的上一個命令式 xxxx.do這個腳本文件,咱們這裏的例子是
do oversampling_core_run_msim_rtl_verilog.do
i. 咱們知道了工具執行的腳本,咱們就能夠按照本身的想法去改變這個腳本了。使用
edit oversampling_core_run_msim_rtl_verilog.do命令,能夠看到這個腳本的內容(固然咱們也可使用Ultra Edit或者VIM等文本編輯軟件去打開這個腳本文件)。這個腳本一般分紅3部分 庫文件編譯部分,設計文件編譯,運行參數設定和開始執行部分
ii. 一般來講庫文件只在第一次編譯的時候,須要編譯,後面咱們只須要在仿真的時候指定庫文件的位置就行了,不須要每次都編譯。所以咱們能夠註釋掉「庫文件編譯部分」。下面圖中紅色框中的部分就是被註釋掉的庫編譯部分,這樣會節省咱們的仿真時間,注意在腳本語言中#是註釋符。
iii. 咱們將編輯過的腳本文件另存爲sim.do, 在之後的仿真中咱們能夠在Modelsim命令行中,直接在腳本中運行do sim.do(固然是先須要將Modelsim的工做目錄改到 工程所在文件夾/simulation/modelsim/)。
c) 另外腳本生成的波形文件一般是將test bench的頂層加入到圖形畫面中咱們能夠看到在腳本的第3部分(運行參數和開始執行)部分,默認命令式
add wave *, 這條命令就是講 test bench頂層的全部信好加入到wave窗口中。
對咱們來講,在調試階段,有不少底層信號都是想觀測的,因此須要再手動修改一下命令
i. 在modelsim的窗口中,選中本身想要關心的模塊,右鍵能夠將本身關心的信號加入wave波形中
ii. 此時咱們在wave 窗口中能夠將這個波形的格式存下來,在wave窗口中點菜單fileèsave… 選擇文件名爲wave.do.
iii. 在咱們執行的腳本中將add wave *,這個命令替換成do wave .do, 就能夠在每次執行仿真的時候自動添加想要觀測的波形了。
7. 接下來最後一個問題,怎樣才能一次性的編譯好庫文件,讓軟件再也不每次編譯。其實altera已經爲客戶準備了相應的選項,只不過藏得比較深,很差找。
a) 一次性編譯庫:
i. 點擊toolè launch EDA simulation Library Compiler
ii. 咱們會看到一個讓咱們選擇器件的頁面。根據你的實際狀況選擇下面的設定。點擊start compile,軟件會自動幫你完成編譯,而後關掉就好,至此你應該已經完成了庫的編譯。
iii. 接下來咱們須要在QII的仿真設定頁面作一些修改。
咱們須要回到設定界面
Assignmentèsettingèsimulationèmore Nativelink setting
好了,從新run仿真,就發現不會再編譯咱們的庫文件了。