ModelSim之命令列模擬入門

來源:互聯網
上載者:User

下面是我們的Tcl模擬步驟:
啟動ModelSim SE, 首先看到在在ModelSim SE右邊的視窗有ModelSim> 這樣的提示符。在提示符後,順序運行以下命令:
    vlib work  該命令的作用是在該目錄下建立一個work目錄,請注意不要用作業系統來建立一個work的檔案夾,因為用作業系統建立的work檔案夾並沒有ModelSim SE自動產生的_info檔案。
    vmap work work    該命令的作用是將目前的邏輯工作庫work和實際工作庫work映射對應。
    vlog camera.v  camera_tb.v  該命令的作用是編譯這些檔案,要注意的是檔案可以單獨分開編譯,但是一定要先編譯被調用的檔案。假如是VHDL檔案就可以用vcom file1,file2命令來編譯。
    vsim camera_tb  模擬命令, 注意後面的參數必須為camera_tb.v檔案中的模組名。
    add wave/camera_tb/ * 該命令的作用是將testbench檔案camera_tb.v中模組camera_tb下所有的訊號變數加到波形檔案中去,注意在“*”前要加空格。這時候你也可以看到wave檔案被開啟。當然也可以單個訊號的添加,例如添加時鐘:add wave clk 等等。
    run 2000  該命令的作用是運行2000個單位時間的模擬。也可以用run –all命令來一直模擬下去。
    這時候就可以在wave視窗檔案中看到你的模擬結果。
    當然也可以觀察其它視窗的結果,用view命令顯示    
     view * 觀察包括signals、wave、dataflow等視窗檔案。也可以分別開啟。例如用view signals來觀察訊號變數。

    quit -f/-force/-sim  該命令分別是退出ModelSim(-f/-force)和退出模擬(-sim)。

    ModelSim SE6..2b還有一個很好用的功能。就是可以看整個檔案所形成的資料流程,各個模組之間的邏輯聯絡。具體方法是在模擬後執行命令  view datalflow 就可以開啟dataflow檔案,在dataflow的視窗菜單中點擊add中的view all nets就可以觀察到各個模組之間的邏輯聯絡,模組一般都為initial模組、always模組、assign模組等等。點擊中一個模組,則這個模組變為紅色。這時候在view菜單下點擊show wave就可以在視窗下方彈出wave視窗,不同的是這個wave視窗所顯示的訊號變數僅為點擊中的模組所包括的訊號變數,這時候也可以點擊模擬run –all小表徵圖來模擬有關這個模組的輸入輸出關係。

    以上命令,就是ModelSim SE模擬程式所用到的基本命令。實際上都可以在視窗菜單中找到,效果是一樣的,可能大家覺得每次用滑鼠點擊菜單方式更快一點,但是在ModelSim SE中開可以執行一種批次檔,就是file.do檔案,相當於DOS中的.bat檔案。你可以用批處理方式來使你模擬簡單化,具體做法為,將你所要執行的命令編輯在一起,以上面所講為例,我可以編輯一個camera.do檔案,檔案內容如下:
vlib work                                 // 建庫
vmap work work                      // 映射
vlog camer.v camera_tb.v         // 編譯
vsim camera_tb                      // 模擬(模組名稱)
add wave/camera_tb/ *            // 將camera_tb下的所有訊號變數加入到wave視窗中,注意”*”前必須有空格
run 2000                  // 或者用run –all等。
view  dataflow             // 用navigate  nets觀察dataflow,不想觀察就可以不加這條指令

將上述內容儲存後,每次用命令do  camera.do 就可以自動執行想要的模擬動作。

另外,對tcl命令作一個小小的整理:

1、編譯(它們的效果是等效的):

    vlog div.v div_tb.v

    vlog -work work div.v div_tb.v

   或者將它們分開進行單獨編譯

2、模擬(效果等效):

    vsim div_tb

    vsim -lib work div_tb

    vsim work.div_tb

    sim -L D:/Modelsim/Installfiles/altera/altera_mf work.videoin_tb

3、添加波形

    add wave/div_tb/ *

    add wave sim:/div_tb/*       //*前面沒有空格

也可以單獨添加波形(可以將它們直接寫成一個wave.do檔案,以便直接執行do wave.do就可以完成各種波形的編輯設定):

add wave -divider Input
add wave sim:/divider_tb/rst_n
add wave sim:/divider_tb/clk_in
add wave -divider Ouput
add wave sim:/divider_tb/clk_out
#配置wave相關命令
WaveRestoreCursors {{Cursors 1} {200ns} 0} {{Cursors 2} {400ns} 0}
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -signalnamewidth 0
configure wave -justifyvalue left
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0

update

WaveRestoreZoom {0 ns} {1000 ns}

上面就是一些常用的Modelsim的tcl命令,至於其它的tcl命令有待後續補充。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.