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 prospereties 在 Converage下面进行设置

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"

最新更新: