一、do腳本實現自動化仿真
Modelsim是支持命令的,我們可以用 .do 文件將這些命令先寫好然后在Modelsim上調用。因為我的編輯器不支持.do的語法,所以這里改用 .tcl文件,它和 .do 的使用是沒有任何區別的。
1. 我習慣設置一個test文件夾,里面放着仿真文件 XX_tb.v,然后在這test文件夾里放一個sim文件夾,在此文件夾內新建一個sim.tcl文件,這樣后面的工程和亂七八糟的文件都在內部的sim文件夾里。
2. 在sim .tcl文件里寫好以下代碼,這些代碼建議保存或制作成代碼片段,以后只需要稍微改一改就能用。
1 # ========================< 清空軟件殘留信息 >============================== 2 3 # 退出之前仿真 4 quit -sim 5 6 # 清空信息 7 .main clear 8 9 # =========================< 建立工程並仿真 >=============================== 10 11 # 建立新的工程庫 12 vlib work 13 14 # 映射邏輯庫到物理目錄 15 vmap work work 16 17 # 編譯仿真文件 18 vlog ./../*.v 19 20 # 編譯設計文件 21 vlog ./../../rtl/*.v 22 23 # 無優化simulation *** 請修改文件名 *** 24 vsim -novopt work.fsm_tb 25 26 # =====================< 狀態機名稱,不用請刪除 >============================= 27 28 # 結構體設置 29 virtual type { 30 {4'b0001 S0} 31 {4'b0010 S1} 32 {4'b0100 S2} 33 {4'b1000 S3} 34 } fsm_type; 35 36 # 結構體和信號名關聯,命名為state_name 37 virtual function {(fsm_type)/fsm_tb/u_fsm/state} state_name 38 39 # ============================< 加載波形 >================================= 40 41 # 添加波形,高度30,以unsigned格式顯示 *** 請修改路徑名 *** 42 add wave -height 30 -radix unsigned /fsm_tb/u_fsm/* 43 44 # 清空信息 45 .main clear 46 47 # 跑完 48 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一下重跑就行了。
二、利用do文件保存波形
變好顏色,設置顯示格式,定位時間點,終於看到想要的漂亮波形啦!這時按Crtl + S 保存當前狀態為wave.do,路徑為默認路徑。關閉軟件,走人!下次想再看到之前的費了半天調好的漂亮波形,只需要這樣做:
1.在你剛剛那個工程的文件夾,出現一個vsim.wlf文件和剛剛保存的wave.do文件。我們雙擊vsim.wlf,Modelsim就打開了,並且定位到了之前的文件夾,也打開了sim區域,但是沒有波形。
2.如果你在sim區域選中模塊右鍵點擊add wave,那么波形出現了,卻不是你之前的那個漂亮波形,所以我不建議這么做。你應該在做完上面第1步后直接在Transcript輸入:do wave.do,按Enter回車鍵。噔噔噔噔,原來的波形回來了!
三、用bat命令直接運行Modelsim
如果你懶得連Modelsim都不想打開,那可以試試 .bat文件的操作。
1.在 sim.tcl文件邊上新建一個 <新建文本文檔.txt> 文件,里面寫好下面的的代碼然后保存。注意第4行需要和你的 .tcl 文件名稱保持一致。
::請按任意鍵繼續... pause ::打開Modelsim並執行do sim.tcl vsim -do sim.tcl
2.將剛剛那個 <新建文本文檔.txt> 文件重命名為 <點我仿真.bat> 文件
3.打開這個bat文件,按任意鍵,電腦自動打開Modelsim自動仿真出波形了!
