Skip to content

(实习准备)学习如何使用 Modelsim 进行仿真。

基本仿真流程指令

可以将需要执行的 指令放到一个 *.do文件中就执行后就直接可以进行仿真了。

可以直接拖拽 整个 module到波形窗口

tcl
# 改变工作目录
cd /dir

# 新建仿真库文件
vlib work

# 编译源文件
vlog *.v

# 执行仿真
vsim -novopt work.<testbench>

# 执行仿真
run 100ns

执行一个脚本的命令是

tcl
do test.do

常用的使用 GUI 的仿真流程

  1. 改变工作目录
  2. 新建工程
  3. 添加或者编写文件
  4. 编译文件
  5. 创建 Simulation Configration

modelsim 中不同的符号会有不同的含义(后面补充)

Code Coverage

ModelSim 的这功能可检查 经过仿真过后有多少的 代码是执行过,有多少是没有执行的。

如果需要做代码覆盖度检查,需要在编译的时候的命令需要改为

tcl
vopt +cover=becsxf test_sm -o test_sm_opt
vsim -coverage test_sm_opt
run 1 ms

可以选择 compile prosperetiesConverage下面进行设置

Data Flow

Debug 完成后通过右键选择信号添加到 Data Flow 窗口就可以看到

暂时不知道有什么用

波形对比

可以对比输出的波形是否符合测试条件

  1. 生成基准波形的示例代码
tcl
vlib work
vlog *.v
vopt +acc test_sm -o opt_test_gold
# 生成基准波形
vsim -wlf gold.wlf opt_test_gold
add wave *
run 750 ns
quit -sim

在需要对比波形的 仿真结束后选择 tools -> Waveform Compare-> Start Comprison 选择完基准波形后就可以显示不一样的模型了。

原理图生成

tcl
vsim -debugdb work.<test_bench>

执行完成会自动进入 仿真界面,选择view->schematic

image-20230331221928539

选择后点击展开视图就可以查看原理图了

image-20230331222205738

设置VSCode 为默认编辑器

新建一个$HOME/.mentor/perf.tcl文件,然后添加下面的内容

tcl
proc external_editor {filename linenumber} { exec "code" -g $filename:$linenumber}
set PrefSource(altEditor) external_editor

~/.zshrc或者 ~/.bashrc里面添加环境变量,这样就可以在开启软件的时候自动更换外部编辑器了。

shell
export MODELSIM_TCL="$HOME/.mentor/perf.tcl"

最新更新: