ModelSim 使用筆記1


 ModelSim提供了簡單仿真方式,還有一種要建立project,目前這種方式暫時夠我用了。

總結了以下,做了一個簡單的《modelsim quick start》。 

 

簡單方針模式下面,操作步驟如下(黃色字符部分為每個操作對應的script指令,打開modelsim軟件,在script窗口輸入這些指令即可):

1.新建library。“file->new->library"。選擇library種類為“Create: a new library and a logical mapping to it”。

vlib newlib

vmap newlib newlib 

2.compile所有的源程序。"compile->compile"在彈出對話框選擇要編譯的源文件即可。compile所有的源程序之后,會將這些編譯后的文件全部添加到新建的Library中去。

VHDL程序使用:vcom -work newlib sourcecode.vdl

Verilog程序使用:vlog -work newlib sourcecode.v  

(A:源文件編譯的前后順序,對結果沒有影響. B:如果前面使用的newlib名字是work,則不許要在這里指定工作lib。) 

3.loading module到simulator里面。點擊work左側“+”號,展開lib,雙擊我們要觀察的module。此時,會有signal窗口彈出(窗口標題是vsim)。

vsim  lib_name.module_name

(ATT:可能會因為vopt的緣故使得一些不重要signal被modelsim自動忽略,需添加選項 -novopt,即,vsim -novopt module_name)

4.調整窗口,准備調試。“view->..."來打開想要觀察的window。(如果wave,signals等窗口都在,就不用執行這一步了)

view signals source wave

5.添加要觀察的signal到wave viewer里面。在對應的信號上右鍵“Add -> to wave -> all items in region"。

add wave -r /* 

add signal_name 添加單個信號到wave窗口

6.點擊run快捷按鈕或者是,simulate->run,開始仿真

 

run 500(運行500單位時間)

run @ 3000(特定時刻觀察)

run -all (運行,直到testbench定義的stop時間)

7.可以使用breakbutton來終止run,“simulate->break”

break

8.設置斷點,直接單擊要設置斷點行的左側 (不是所有行都可以設置斷點,不同版本軟件下自行實驗)。

當程序停止在設置的斷點上時,通過以下方法查看變量值:

1)在signal window里面直接看變量的值

2)在source window里面,鼠標指針停留在變量上面時,會自動顯示該變量的值(不確定是否全部版本都有)。

3)在source window里面,右鍵examine。

4)使用examine命令。在script窗口輸入“examine var”

9.wave觀察

觀察一個數組時,可以選擇用二進制,十進制,十六進制,還可以設置有符號無符號。

還可以把它轉化為analog方式,如調試一個供da使用sine輸出,可以選擇用analog方式來查看dout。

 

Extra topic:compile the ISE standard lib for modelsim SE:


1. use the ISE native tools.(Preferred)
$ise_install_path/ise/bin/lin64/compxlibgui(compxlib is available for cmdline only)
ATT: u'd better run it as root.

 

2. Copy compiled libs from modelsim XE.

 

3. compile the library in modelsim.
cd $modelsim_install_path/
mkdir ise_lib
cd ise_lib
mkdir unisim_ver
vlib unisim_ver
vmap unisim_ver unisim_ver
vlog -work unisim_ver $ise_install_path/ise/verilog/src/unisim/*.v
(source code for VHDL is in another dir)

Do such for all libs.

 

u need to modify the modelsim.ini before using the lib:

 

$ise_install_path/ise/modelsim.ini
add the flowing context(before[vcom]):

 

 

 

unisim = $MODEL_TECH/../ise/unisim
simprim = $MODEL_TECH/../ise/simprim
xilinxcorelib = $MODEL_TECH/../ise/xilinxcorelib
cpld = $MODEL_TECH/../ise/cpld
secureip = $MODEL_TECH/../ise/secureip
unimacro = $MODEL_TECH/../ise/unimacro
cpld_ver = $MODEL_TECH/../ise/cpld_ver
simprims_ver = $MODEL_TECH/../ise/simprims_ver
uni9000_ver = $MODEL_TECH/../ise/uni9000_ver
unimacro_ver = $MODEL_TECH/../ise/unimacro_ver
unisims_ver = $MODEL_TECH/../ise/unisims_ver
xilinxcorelib_ver = $MODEL_TECH/../ise/xilinxcorelib_ver

 

 

=========================分割線=================================

其他一些零碎:

1.在當前工作目錄下,會產生一個名為transcript的文本文件,里面記錄了你在modelsim中的所有操作。 


免責聲明!

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



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