標籤:
本篇文章為轉載,寫的不錯,最近在學modelsim模擬,網上的教程很亂,把自己認為不錯的整理貼出來,後面有機會會寫個詳細點的。
Quartus 中調用modelsim的流程
1. 設定模擬工具
assignmentèsettingèEDA tool settingèsimulation 選擇你需要的工具。
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(我們會看到這個名字和後面的設定有聯絡)。
4. 串連test bench,我們需要從Quartus中自動調用模擬工具,所以需要設定Native Link選項。
a) 還是在simulation的設定頁面裡,設定 Native Link對話方塊中的設定。我們這裡因為需要工具自動調用激勵所以選中
b) 點擊右邊的Test Benches, 我們需要在這裡設定一個相關聯的test bench.
這裡會彈出一個讓你指定test bench的對話方塊,因為我們之前沒有指定任何的test bench,所以這裡是空白的。
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。
d) 加入test bench檔案
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模擬,就發現不會再編譯我們的庫檔案了。
【轉】Quartus II調用modelsim無縫模擬