Quartus II調用modelsim無縫仿真

本篇文章爲轉載,寫的不錯,最近在學modelsim仿真,網上的教程很亂,把自己認爲不錯的整理貼出來,後面有機會會寫個詳細點的。

Quartus 中調用modelsim的流程

1. 設定仿真工具 
assignmentèsettingèEDA tool settingèsimulation 選擇你需要的工具。 
clip_p_w_picpath001

2. 自動產生測試激勵文件模板: 
processingèstartèStart test bench template writer 
clip_p_w_picpath003
我們點擊之後系統會自動在目錄:當前文件夾è simulation è modelsim (這個文件夾名字跟你選的仿真工具有關中產生一個測試激勵文件 xxx.vt(Verilog test bench) 或者 xxx.vht(VHDL test bench), 文件名跟你工程中的Top module 的名字一樣, 後綴爲.vt或者.vht。 
clip_p_w_picpath004

3. 編輯走動生成的test bench文件 
我們加入自己需要的激勵以及初始化語句,這裏我們還要修改test bench的模塊名字爲tb(我們會看到這個名字和後面的設定有聯繫)。 
clip_p_w_picpath005

4. 連接test bench,我們需要從Quartus中自動調用仿真工具,所以需要設定Native Link選項。

a) 還是在simulation的設置頁面裏,設定 Native Link對話框中的設定。我們這裏因爲需要工具自動調用激勵所以選中 
clip_p_w_picpath007

b) 點擊右邊的Test Benches, 我們需要在這裏設定一個相關聯的test bench. 
clip_p_w_picpath009
這裏會彈出一個讓你指定test bench的對話框,因爲我們之前沒有指定任何的test bench,所以這裏是空白的。

c) 指定test bench 
因爲我們是第一次產生test bench,點擊new. 
clip_p_w_picpath011
點擊New之後會產生一個New Test bench setting的對話框,在這裏你將test bench和你的相應的test bench file進行綁定。 
clip_p_w_picpath013
我們這裏在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。 
clip_p_w_picpath014

d) 加入test bench文件 
clip_p_w_picpath016

5. 進行仿真 
當這些設定都完成了之後, 選擇菜單 
toolèRun EDA Simulation toolèEDA RTL simulation 
clip_p_w_picpath017
就可以直接調用modelsim進行仿真。

6. 小技巧: 
我們這樣調用仿真,如果是Modelsim AE每次不會編譯lib文件,但如果我們使用的是Modelsim SE版本,每次調用都需要重新編譯庫,非常不爽,在這裏我們建議自己修改腳本文件,進行仿真.

a) 當我們按照之前的描述,運行完仿真之後,停留在Modelsim的界面。

b) 在Modelsim界面的命令行上,我們點向上的方向鍵,就會出現我們上一條指令, 我們可以看到是 
do xxxx.do 這說明工具執行的上一個命令式 xxxx.do這個腳本文件,我們這裏的例子是 
do oversampling_core_run_msim_rtl_verilog.do 
clip_p_w_picpath019

i. 我們知道了工具執行的腳本,我們就可以按照自己的想法去改變這個腳本了。使用 
edit oversampling_core_run_msim_rtl_verilog.do命令,可以看到這個腳本的內容(當然我們也可以使用Ultra Edit或者VIM等文本編輯軟件去打開這個腳本文件)。這個腳本通常分成3部分 庫文件編譯部分,設計文件編譯,運行參數設定和開始執行部分 
clip_p_w_picpath021

ii. 通常來說庫文件只在第一次編譯的時候,需要編譯,後面我們只需要在仿真的時候指定庫文件的位置就好了,不需要每次都編譯。因此我們可以註釋掉“庫文件編譯部分”。下面圖中紅色框中的部分就是被註釋掉的庫編譯部分,這樣會節省我們的仿真時間,注意在腳本語言中#是註釋符。 
clip_p_w_picpath023

iii. 我們將編輯過的腳本文件另存爲sim.do, 在以後的仿真中我們可以在Modelsim命令行中,直接在腳本中運行do sim.do(當然是先需要將Modelsim的工作目錄改到 工程所在文件夾/simulation/modelsim/)。

c) 另外腳本生成的波形文件通常是將test bench的頂層加入到圖形畫面中我們可以看到在腳本的第3部分(運行參數和開始執行)部分,默認命令式 
add wave *, 這條命令就是講 test bench頂層的所有信好加入到wave窗口中。 
clip_p_w_picpath024
對我們來說,在調試階段,有很多底層信號都是想觀測的,所以需要再手動修改一下命令

i. 在modelsim的窗口中,選中自己想要關心的模塊,右鍵可以將自己關心的信號加入wave波形中 
clip_p_w_picpath026clip_p_w_picpath028

ii. 此時我們在wave 窗口中可以將這個波形的格式存下來,在wave窗口中點菜單fileèsave… 選擇文件名爲wave.do. 
clip_p_w_picpath030

iii. 在我們執行的腳本中將add wave *,這個命令替換成do wave .do, 就可以在每次執行仿真的時候自動添加想要觀測的波形了。 
clip_p_w_picpath024[1]clip_p_w_picpath031

7. 接下來最後一個問題,怎樣才能一次性的編譯好庫文件,讓軟件不再每次編譯。其實altera已經爲客戶準備了相應的選項,只不過藏得比較深,不好找。

a) 一次性編譯庫:

i. 點擊toolè launch EDA simulation Library Compiler 
clip_p_w_picpath033

ii. 我們會看到一個讓我們選擇器件的頁面。根據你的實際情況選擇下面的設定。點擊start compile,軟件會自動幫你完成編譯,然後關掉就好,至此你應該已經完成了庫的編譯。 
clip_p_w_picpath035

iii. 接下來我們需要在QII的仿真設定頁面做一些修改。 
我們需要回到設定界面 
Assignmentèsettingèsimulationèmore Nativelink setting 
clip_p_w_picpath037

設定好相應的路徑。 
clip_p_w_picpath039

好了,重新run仿真,就發現不會再編譯我們的庫文件了。

★emouse 思·睿博客文章★ 原創文章轉載請註明:http://emouse.cnblogs.com


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章