modelsim(1)

最近一段时间使用modelsim,

一,安装

使用的时候,出现license验证不对。

由于经常换虚拟机,要注意首先MAC地址是否换了,如果换了,license要重新做!

其次/etc/hosts的IP地址要和ifconfig的IP地址一致,这个估计是在license file中,会去通过机器名寻找IP地址。

如果仍然不行,就重启linux。

quartus破解在不同的linux操作系统处理不一样,centos是最稳定的操作系统,it can be installed correctly.

however ubuntu,fedora有些不一样,这个花了我不少时间,need to change the file vco in the questa directory. vco is the tcl script ,it will call the vsim

afte 里面设置了LD_LIBRARY_PATH, run vco!

二)仿真工具使用

1)如何查看已经仿真的波形

vsim -view xx.wlf -do wave.do

2)后仿如何将顶层文件和sdf文件关联,见下

vsim -L SmartFusion2 -L postlayout  -t 1ps -novopt -sdfmax /top_0=${PROJECT_DIR}/designer/top/top_ba.sdf postlayout.tb
add wave /tb/*
add log -r /*
vcd file power.vcd
vcd add -r /tb/top_0/*
run 500ns
vcd flush
echo "VCD file power.vcd was successfully exported under the project simulation/ directory"

3)后仿,带优化,但是要保留信号,以及生成database (shannon,但是似乎不成功!!!,只能供参考

 vsim -postsimdataflow -debugDB=test.dbg -wlf test.wlf
         -L Smartfusion2 -L work -t ns -voptargs=+acc -c -pli ./pslse-master/pslse/afu_driver/src/afu_driver.sl +nowarnTSCALE work.top

add log -r /*

 Recall the post-simulation debug database with the following:
dataset open <db_pathname.wlf>

 shannon注:

vsim -postsimdataflow -debugdb=<db_pathname> -wlf <db_pathname>  -voptargs=+acc

By default, the Dataflow window is not available for post simulation debug operations.
You must use the -postsimdataflow to make Dataflow window available during post-sim
debug.
Specify the post-simulation database file name with the -debugdb=<db_pathname>
argument to the vsim command. If a database pathname is not specified, ModelSim
creates a database with the file name vsim.dbg in the current working directory. This
database contains dataflow connectivity information.
Specify the dataset that will contain the database with -wlf <db_pathname>. If a dataset
name is not specified, the default name will be vsim.wlf.
The debug database and the dataset that contains it should have the same base name
(db_pathname).
The add log -r /* command instructs ModelSim to save all signal values generated when
the simulation is run.
3. Run the simulation.

3)在modelsim的仿真中,反标的verilog文件中信号名不仅仅是verilog的定义的标识符(有任意字母,数字,$和_),还包括空格(是否因为信号命名是开头?)

   所以出现仿真中找不到信号名,注意空格,如果修改verilog文件则也应包括空格  .

比如:

信号定义

wire  wqueue_i/WRITE_QUEUE/mem_mem_0_4/A_ADDR_net[13]空格 ,....空格,

add wave -noupdate {/top/a0/wqueue_i/WRITE_QUEUE/mem_mem_0_4/A_ADDR_net[13]空格}可以找到信号

add wave -noupdate {/top/a0/wqueue_i/WRITE_QUEUE/mem_mem_0_4/A_ADDR_net[13]}就不能找到信号

4)在modelsim的object name中找信号(ctrl+F),对于数组的符号[],需要用正则表达[, ]来表示

 比如在反标文件中查找arrayA[1],需要输入arrayA[1]

5) 仿真的时候,memory can not show in the wave

6)function of add flow is usefull

三)Q&A

1)每次仿真会在仿真当前目录产生modelsim.ini,里面会调用系统的modelsim.ini.

如果出现如下错误,std库找不到

删除modlesim.ini,让其自动再产生一次

四,样本

原文地址:https://www.cnblogs.com/e-shannon/p/5801715.html