Modelsim——工程建立和常用設置


  Modelsim是一款優秀的FPGA仿真軟件,這里記錄一下Modelsim的基本使用。

  一、聯合仿真

  聯合仿真,即Quartus ii自己調用Modelsim,Modelsim自動出現仿真波形。

  1.Modelsim軟件的路徑設置,一次設置好,以后就不用重復設置了。打開Quartus ii,點擊Tools --- Options --- EDA Tool Optinons,將modelsim的安裝路徑填寫進去。我這用的是QuestaSim,和Modelsim是完全沒有區別的。為了防止遺漏,我把下面三個位置都填上:

  2.Quartus ii關聯Modelsim,一開始建立工程時就可以設置,如果忘記了或者設置錯了也可以再次更改。點擊Assignments --- Setings --- Eda Tool Setings,將仿真工具選擇好即可。(我的是QuastaSim,就填的QuastaSim)

  3.仿真的前提是你的模塊文件和testbench文件都寫好了,那么我們需要把模塊文件和testbench相關聯。點擊Assignments --- Setings --- Eda Tool Setings下的simulation,將Tool name選擇好,然后點擊Compile testbench,之后點擊Test Benches

  進去后,點擊New,進入另一個小頁面,然后點擊 。。。選擇要的testbench文件,再點擊Add,並且記得在上面把該testbench名字寫上,然后一路ok就行了。

  4.現在,各種設置都完成了,可以開始仿真了。這里記錄一個小知識點:前仿真和后仿真。前仿真又稱為功能仿真,即綜合編譯前理想狀態下的仿真;后仿真又稱為時序仿真,即綜合編譯后考慮惡劣情況下的仿真,會將一些線路延時等考慮進去,具體考慮了多少因素我還不是很懂,希望以后能學會。那么現在我們點擊Quartus ii界面的Tools --- Run Simulation Tool,需要前仿真就點RTL Simulation,需要后仿真就點擊Gate Level Simulation,仿真就自動出現了。當然Quartus ii界面也有這兩項的小圖標,點小圖標是一樣的。

  5.現在Modelsim已經打開了,並且呈現出了波形,注意一點的是只有鼠標靠近該信號線的邊沿,標桿就會吸附在邊沿上,對手抖的人很友好。這里對Modelsim的界面簡單記錄一下:

  6.注意一點,如果對代碼進行了修改,那么需要關閉Modelsim並且重新點擊打開才行。

 

  二、獨立仿真

  聯合仿真雖然很方便,一點擊就自動出波形,但是一共工程模塊很多的話還是不太方便,那么就要學會直接使用Modelsim進行仿真。

  1.打開Modelsim,點擊File --- New --- Project,出現以下界面,第一行是工程名稱,第二行是工作路徑,我們按需要填寫以下就行。第三行第四行默認即可。完了點擊OK

  2.這里是添加文件,點擊第一排第二個,Add Existing File,將模塊文件和testbench都添加進來(可以跨文件夾一個個添加),如果使用了ip核,那么ip核和仿真庫文件altera_mf.v也需要添加進去(該文件在Quartus ii安裝路徑下可找到)

  3.添加好了后頁面如下所示,文件出現了,但是有個問號,這說明我們需要編譯一下,鼠標右鍵選擇Compile All即可。我們發現很快就編譯好了,問號變成了 √ 號。這比Quartus ii快多了,那么以后我們寫代碼需要檢查語法錯誤時,其實可以用Modelsim來檢查了,真方便。

  4.之后我們點擊Library ---- work --- tb文件,右鍵選擇Simulation without Optimization

  5.接着出現以下界面,我們關注信號就行了。選擇好要呈現波形的信號,鼠標右鍵點擊Add wava。

  6.波形界面出現了,但是沒有波形,我們手動點擊頂上的按鈕即可,上文已經介紹過了。

  7.注意,如果對代碼進行了改動,那么需要進行重新編譯,並且波形窗口重置一下再跑即可。此外,獨立仿真適合於前仿真,需要后仿真的話得添加很多由Quartus ii產生的相關文件,很是麻煩。所以后仿真還是直接用聯合仿真方式吧。

 

三、界面調整

1.隱藏信號名的路徑,波形窗口中,信號名的默認顯示方式是包含路徑名的,點擊該頁面左下角的灰色原點即可隱藏路徑名。但這樣每次打開都得點,軟件不會記憶住。可以點擊Tools --- Window preference --- display signal path,數值改寫成1,ok。這樣每次加載信號時,信號名都不包含路徑了。

2.更改界面顏色,點擊Tools --- Edit preferences,這里可以修改你的界面顏色。如果想單獨改變某個波形的顏色,可以直接選擇該信號右鍵點最后一項,里面也有color的設置。

3.Modelsim上面很多快捷按鈕供我們使用,但是它經常跑偏而且太雜了。鼠標停在按鈕那,點鼠標右鍵,將Standard、Compile、Simulate、Zoom保留打鈎,其他項都不打鈎。這樣快捷按鈕欄就變得簡潔了。留下的這四個快捷按鈕基本夠我們用了,以后還要用到哪個快捷按鈕再鼠標右鍵打鈎就行。

 

四、保存波形

  變好顏色,設置顯示格式,定位時間點,終於看到想要的漂亮波形啦!這時按Crtl + S 保存當前狀態為wave.do,路徑為默認路徑。關閉軟件,走人!下次想再看到之前的費了半天調好的漂亮波形,只需要這樣做:

1.在你剛剛那個工程的文件夾,出現一個vsim.wlf文件和剛剛保存的wave.do文件。我們雙擊vsim.wlf,Modelsim就打開了,並且定位到了之前的文件夾,也打開了sim區域,但是沒有波形。

2.如果你在sim區域選中模塊右鍵點擊add wave,那么波形出現了,卻不是你之前的那個漂亮波形,所以我不建議這么做。你應該在做完上面第1步后直接在Transcript輸入:do wave.do,按Enter回車鍵。噔噔噔噔,原來的波形回來了!

 

五、腳本自動化仿真

  Modelsim是支持命令的,我們可以用 .do 文件將這些命令先寫好然后在Modelsim上調用。因為我的編輯器不支持.do的語法,所以這里改用 .tcl文件,它和 .do 的使用是沒有任何區別的。

1. 我習慣設置一個test文件夾,里面放着仿真文件 XX_tb.v,然后在這test文件夾里放一個sim文件夾,在此文件夾內新建一個sim.tcl文件,這樣后面的工程和亂七八糟的文件都在內部的sim文件夾里。

2. 在sim .tcl文件里寫好以下代碼,這些代碼建議保存或制作成代碼片段,以后只需要稍微改一改就能用。

 1 # ==========================================================================
 2 # ==   清空軟件殘留信息
 3 # ==========================================================================
 4 
 5 # 退出之前仿真
 6 quit -sim
 7 
 8 # 清空信息
 9 .main clear
10 
11 # ==========================================================================
12 # ==   建立工程並仿真
13 # ==========================================================================
14 
15 # 建立新的工程庫
16 vlib work
17 
18 # 映射邏輯庫到物理目錄
19 vmap work work
20 
21 # 編譯仿真文件
22 vlog ./../*.v
23 
24 # 編譯設計文件
25 vlog ./../../rtl/*.v
26 
27 # 無優化simulation                                        *** 請修改文件名 ***
28 vsim -novopt work.fsm_tb
29 
30 # ==========================================================================
31 # ==   狀態機名稱查看器,如若不用請刪除!!!
32 # ==========================================================================
33 
34 # 結構體設置
35 virtual type {
36     {4'b0001 S0}
37     {4'b0010 S1}
38     {4'b0100 S2}
39     {4'b1000 S3}
40 } fsm_type;
41 
42 # 結構體和信號名關聯,命名為state_name
43 virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name
44 
45 # ==========================================================================
46 # ==   加載波形
47 # ==========================================================================
48 
49 # 添加波形,高度30,以unsigned格式顯示                        *** 請修改路徑名 ***
50 add wave -height 30 -radix unsigned /fsm_tb/u_fsm/*
51 
52 # 跑完
53 run -all

3.打開Modelsim,點擊 Files --- Change Directory ,找到剛剛那個 tcl 文件所在的文件夾。

4.在Transcript窗口輸入 do sim.tcl,敲擊Enter回車鍵。現在Modelsim就會自動幫你工作啦!

 

ps: 

1.如果你的文件夾結構設置的和我一樣,而且testbench文件命名為:XX_tb.v,里面例化的名稱為 u_XX ,那么以后只需要將上述代碼的 fsm 以"不匹配全詞"方式替換成XX即可,當然手動修改也是很方便的,畢竟只要改2處地方即可。

2.這樣操作在Project區域是空白的,那我們改了代碼后怎么編譯調試呢?在Library里找到模塊用鼠標右鍵選擇編譯即可,和在Project里編譯是一樣的效果。然后在波形那restart一下重跑就行了。

 

六、用bat命令直接運行Modelsim

  如果你懶得連Modelsim都不想打開,那可以試試 .bat文件的操作。

1.在 sim.tcl文件邊上新建一個txt文件,里面寫好下面的的代碼然后保存。注意第4行需要和你的 .tcl 文件名稱保持一致。

::請按任意鍵繼續...
pause

::打開Modelsim並執行do sim.tcl
vsim -do sim.tcl

2.將剛剛那個 .txt 文件重命名為 .bat 文件

3.打開這個bat文件,敲Enter回車鍵,OK,電腦自動打開Modelsim自動仿真出波形了!

 

Modelsim的記錄就到這了,這個工具很強大,很多功能我還不懂,以后再添加吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM