在第 3 篇中講到了如何使用圖形進行仿真激勵輸入,圖形輸入法盡管簡單易學,但如若要求復雜的仿真輸入激勵、較長的仿真時間或是要求打印輸出信息乃至輸出文件日志則顯得不夠用了。
本篇以上一篇的 3-8 譯碼器為基礎,講一下 Modelsim 仿真工具的使用方法。在 Modelsim 中不再提供圖形的激勵輸入方法,取而代之的testbench 測試腳本。testbench 簡稱 tb,雖然名字聽起來很專業,但掌握卻沒什么難度。tb 的語法與 verilog 高度類似;但由於 tb 腳本是在 PC 上運行,語法上顯得更加輕松自由。我們在初學 C 語言時會用到一個 printf 函數,同樣在 testbench 中也存在對應的功能,這里有一個簡單的例子,熟悉使用 $dispalay() 輸出打印信息。
打開上一篇的工程,按照如圖所示的按鈕自動生成 testbench 模版。
這里生成的 testbench 腳本模版被存放在 D:\Quartus\my38decode\simulation\modelsim\my38decode.vt,注意擴展名是 .vt。vt 文件是供 Modelsim 軟件使用的,自身並不屬於 Quartus 工程;生成之后也不會出現在 Quartus 工程導航欄里;用戶也不需要手動添加它到工程里。
關於 Modelsim-Altera:
Modelsim-Altera 是 Modelsim 的一個 OEM 版本,它集成了一些 Altera 的專有庫文件,例如你在 verilog 里使用了乘法,FPGA 內部綜合器會調用內嵌的嵌入式乘法器硬核來完成乘法操作,但在仿真的時候為了使結果與綜合結果一致,需要手動添加 Altera 的庫文件到 Modelsim 工程里。而 Modelsim-Altera 默認包含了所有的 Altera 專有器件庫,從而使用戶不需要手動添加任何 Altera 的庫文件。當然這對初學者幾乎沒什么意義,但伴隨者學習的深入和接觸器件的增加,初學者則不得不重新審視這個問題。
由於 Modelsim 的文件編輯器功能十分的簡陋,像我機器上的版本 10.1d (集成在 Quartus 13.0SP1)只有簡單語法高亮功能;作為代替這里我們使用 Quartus 的文本編輯器來修改 vt 文件;您也可以選擇自己喜好的文本編輯器來編輯這個文件。下圖顯示的是通過 Quartus 打開這個測試腳本文件。
使用 Quartus 的編輯器來修改 my38decode.vt:
在仿真器前需要設定仿真工具路徑:
好需要設定仿真環境:
添加測試文件腳本到仿真設置中:
運行仿真工具:
Modelsim 的返回信息:
下圖為彈出的仿真波形,可以看到,波形驗證了我們的設計是正確的:
至此,使用 Quartus 調用 Modelsim 進行仿真就告一段落了,讀者可以感覺到 Modelsim 的功能的強大,我會在后面的章節會詳細討論 Modelsim 的使用方法。










