在HDL simulator中,Modelsim是少數有免費開放使用的(此外還有開源的Icarus Verilog),雖然Modelsim starter edition有執行行數,不能大於10000行的限制,但對於一般學生做做課堂上的專案是綽綽有餘了
以下簡介如何使用Modelsim的指令,進行模擬
首先開啟終端機,在win10工作列中,搜尋cmd 或是 powershell,即可開啟
vlib work
開啟後,進入你專案所在的目錄下,使用vlib
指令創建Modelsim的工作目錄
vlog <xxx.v> <yyy.v> +define+macro=value
使用vlog
指令,進行編譯
可以使用define+macro=value
對巨集進行指定
vsim work.<top module>
使用vsim
指令進行模擬,會跳出modelsim的視窗
<top module>
為設計中,最上層的模組,通常為測試檔的模組名
當彈跳出modelsim的視窗後,記得先將想要觀察的訊號,加入波形中(如下圖),因為modelsim完成模擬後,想要增加訊號,必須再重新跑一次模擬
將訊號加入後,透過上方的工具列點選或是於下方的transcript命令列輸入run -all
,即可開始模擬
下圖為進行一次模擬的示範
首先使用指令,vlib
,vlog
,vsim
執行完vsim後,modelsim視窗會開啟
將欲觀察的訊號加入waveform中,並於transcript中輸入run -all
開始模擬
模擬完成
剛剛有提及,Modelsim的完成模擬後,想要新增新的訊號,需要重新進行模擬,這可以透過將模擬結果dump成vcd檔案,來解決
首先於測試檔中,加入$dumpfile(wave.vcd)
,來將模擬結果輸出成vcd波形檔,再透過GTKwave(一套開源的waveform viewer)來開啟即可
vsim -c work.<top module>
有時進行模擬,只需要查看測試檔的除錯訊息或是dump vcd波形檔,並不需要modelsim的gui視窗時,可以透過在vsim
加上-c
選項,進入command模式,不開啟modelsim視窗,然後輸入run -all
,即可開始模擬
在microsemi的官網中,有Modelsim的User manual,對於想更仔細了解modelsim功能,很有幫助
連結如下(不知以後,是否會失效):
https://www.microsemi.com/document-portal/doc_view/131619-modelsim-user