最近一段时间使用modelsim,
一,安装
使用的时候,出现license验证不对。
由于经常换虚拟机,要注意首先MAC地址是否换了,如果换了,license要重新做!
其次/etc/hosts的IP地址要和ifconfig的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,让其自动再产生一次
四,样本