引言
modelsim do文件的仿真,熟练掌握的化可以加快仿真速度,并且这也是对以后工作有帮助的事情,这里重新走一下流程,并在以后,经常使用这种方式,方可熟练掌握。
步骤
1、建立库
2、映射库到物理目录
3、编译源代码
4、启动仿真器
5、执行仿真
1、Tcl语言的语法
- vlib: 创建库。格式 vlib ,默认库的名字为work
example: vlib work - vmap:映射逻辑库名,将逻辑库名映射库路径。语法格式vmap work < library name >
vmap work work - vdir:显示指定库的内容。语法格式vdir -lib < library name >
- vlog :编译Verilog源代码,库名缺省编译到work本地库,文件按照顺序编译。语法格式vlog -work < library name>
< file1 >.v < file2 >.v
vlog -work lpm 20model.v
2、例子
#此处是注释
quit -sim #退出工程,因为打开软件时候,可能停留在上一个工程
.main clear #清除命令行显示信息
vlib ./lib #创建一个lib库
vlib ./lib/work #创建一个work库
#需要先创建lib,在创建work库
系统默认的逻辑库的名字为work,现在需要将逻辑库名字映射库路径
vmap work ./lib/work #将默认逻辑库的名字映射到路径中
vlog -work work ./*.v 编译当前目录下所有的.v文件,到work逻辑库里面
启动仿真,启动work里面的顶层文件
vsim -voptargs=+acc work.Ad9910_pro_vlg_tst
#添加顶层文件中的信号
add wave Ad9910_pro_vlg_tst/rst
add wave Ad9910_pro_vlg_tst/start
add wave Ad9910_pro_vlg_tst/sys_clk
add wave Ad9910_pro_vlg_tst/master_reset_key
add wave Ad9910_pro_vlg_tst/cs
add wave Ad9910_pro_vlg_tst/io_reset
add wave Ad9910_pro_vlg_tst/io_update
#添加顶层文件里面的例化模块 *是通配符,匹配所有的信号
add wave Ad9910_pro_vlg_tst/i1/*
run 100us
3、模型
注意:注释需要单行#,否则会不识别报错
#此处是注释
#退出工程,因为打开软件时候,可能停留在上一个工程
quit -sim
#清除命令行显示信息
.main clear
#创建一个lib库
vlib ./lib
#创建一个work库
vlib ./lib/work
#需要先创建lib,在创建work库
vmap work ./lib/work
#将默认逻辑库的名字映射到路径中
#编译当前目录下所有的.v文件,到work逻辑库里面
vlog -work work ./*.v
#启动仿真
vsim -voptargs=+acc work.Ad9910_pro_vlg_tst
#添加顶层文件中的信号
add wave Ad9910_pro_vlg_tst/rst
add wave Ad9910_pro_vlg_tst/start
add wave Ad9910_pro_vlg_tst/sys_clk
add wave Ad9910_pro_vlg_tst/master_reset_key
add wave Ad9910_pro_vlg_tst/cs
add wave Ad9910_pro_vlg_tst/io_reset
add wave Ad9910_pro_vlg_tst/io_update
#添加顶层文件里面的例化模块 *是通配符,匹配所有的信号
add wave Ad9910_pro_vlg_tst/i1/*
run 100us