專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

芯片設(shè)計(jì):modelsim do腳本

作者:白櫟旸   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年04月30日   【字體:

 

 
作者:白櫟旸
以下其實(shí)是一個(gè)tcl語法的腳本,使用了modelsim的命令。
提供4個(gè)命令:sim, re, q, clear.功能如下:
        sim: 剛開始仿真時(shí),建立庫、映射庫、編譯、仿真。
        asim: 和sim功能基本一致,但假如了SVA斷言選項(xiàng)。
        re:  用于重復(fù)調(diào)試,前提是你已經(jīng)將波形文件wave.do存好,re會自動(dòng)調(diào)用,自動(dòng)重啟仿真。
        q :  推出仿真。
        clear: 清屏。
 
proc sim {} {
    #如果目錄中已經(jīng)存在work文件夾,就不再新建庫文件夾。
    if {![file isdirectory work]} {
        vlib work 
    } 
    #將邏輯庫映射到實(shí)際庫文件夾work下。
    vmap work work
    #編譯文件,abc.f是文件列表,-incr是增量編譯。
    vlog -incr -f abc.f
    #仿真,-novopt是禁止優(yōu)化,不能使用modelsim的優(yōu)化,會將testbench的信號優(yōu)化掉。
    vsim -novopt abc_tb
}
 
proc asim {} {
    if {![file isdirectory work]} {
        vlib work 
    } 
 
    vmap work work
    # -sv是用system verilog語法進(jìn)行編譯,增加一個(gè)宏SVA_TEST,當(dāng)使用斷言時(shí)開啟
    vlog -sv -incr +define+SVA_TEST -f abc.f 
    # -assertdebug加入對斷言的支持
    vsim -assertdebug -novopt abc_tb
    # 打開斷言報(bào)告窗口,斷言結(jié)果一般顯示在命令行,斷言報(bào)告窗口顯示斷言的統(tǒng)計(jì)結(jié)果。
    view assertions
}
 
proc re {} {
    restart -f
    do wave.do
    run -all
}
 
proc q {} {quit -sim}
 
proc clear {} {.main clear}
 
(1) +incdir+:
如:vlog +incdir+YOUR_SOURCE_PATH  foo.v
  +incdir+YOUR_SOURCE_PATH 選項(xiàng)是指在verilog文件中出現(xiàn)`include "xxx.v" 時(shí),包含文件的搜索路徑。
缺省是搜索當(dāng)前路徑,然后是 YOUR_SOURCE_PATH 指定的路徑。
 
(1) +define+: 
+define+[=]
  允許用戶在命令行中定義宏定義,等效于編譯器指令:
`define
  用戶可以指定多個(gè)宏定義,如下:
vlog +define+one=r1 +two=r2 +three=r3 test.v
  命令行的宏定義會覆蓋在源文件中用`define定義的相同名字的宏定義
 
 
如:vsim -c -l vsim.log -do ./YourDo.do -L ./work work.foo
   開始仿真:
-c 選項(xiàng)讓vsim工作在commandline模式;
-l 選項(xiàng)是輸出log文件到vsim.log;
-do 選項(xiàng)是開始仿真后運(yùn)行tcl腳本文件;
-L 選項(xiàng)是指定工作邏輯庫;
work.foo是仿真的top level module。
 
關(guān)閉窗口

相關(guān)文章