ModelSim的tcl最大的优势就在于它可以让整个仿真自动运行,(方便快捷)
免除每次进行各种用户界面控制操作的麻烦。用tcl就可以
1.自动完成建库
2.映射库到物理目录
3.编译源代码
4.启动仿真器
5.运行仿真
结合实例简要说明操作步骤:
#此处是注释
quit -sim #退出当前仿真功能
.main clear #清楚命令行显示信息
1、编写好源文件。包括 file1.v 和它的 Testbench文件 tb.v
2、编写.do文件(run.do),内容如下:
vlib work // 建立一个 work库文件
vmap work work //将work库映射到work上面
未完待续。。。。。。。。。。。。。。
接下来是实例:
vlib ./lib
vlib ./lib/work
vmap work ./lib/work
vlog -work work ./tb_ex_shift_reg.v
vlog -work work ./…/design/*.v
vsim -voptargs=+acc work.tb_ex_shift_reg
add wave -divider {tb_1111}
add wave tb_ex_shift_reg/lvds_d
add wave tb_ex_shift_reg/o_lvds_d
add wave tb_ex_shift_reg/i_30
add wave tb_ex_shift_reg/lvds_clock
add wave tb_ex_shift_reg/rst_n
#是通配符匹配所有的信号
add wave -divider {ex_shift_reg_instaa}
add wave tb_ex_shift_reg/ex_shift_reg_inst/
run 100us
**
else person
**
Modelsim中常用的Tcl命令:
一.执行tcl
do ./work/run.tcl
二.编译
- vlog vlog testbench.v vlog –work work testbench.v
三.启动仿真 - vsim vsim work.testbench
vsim –work work testbench
四.将信号加入波形 add wave *
view wave
五.执行仿真
run run 1000
run –all //run to finish
run // 默认run 100ns
六.退出仿真
quit -sim
#vmap work work # map the library
vlog testbench.v # Compile the verilog
Start Simulation
vsim work.testbench
add wave -binary clk rst
add wave -unsigned random c_count
run 990
为方便工程管理,我建了三个文件夹来存放工程。
sim:存放批处理文件
modelsim的do文件和存相对路径的文件 core:存放源代码
data:产生仿真的数据
下面开始写批处理文件与do文件
1:新建文件,改名为sim.bat
在这个文件里输入代码:vsim -do sim.do
2.新建文件,改名为path.f
在这个文件中输入要仿真的源代码的相对路径:
…/core/test.v
…/core/tb.v
2.新建sim.do文件,tcl脚本文件,用于控制modelsim仿真 输入代码:
#带#号为注释部分
#建立工作库并映射工作库
vlib work
vmap work work
#编译verilog源代码
vlog -f path.f
#编译systemc代码
vccom -f path.f
#连接systemc代码
vccom -link
#生成波形文件wlf
vsim -wlf test.wlf tb
#添加信号波形
add wave *
#开始仿真
run 200 ms
#结束仿真
quit -sim
操作流程:
直接进入sim文件夹下运行sim.bat文件即可按照上述代码流程控制modelsim。
下面就结合实例简要说明操作步骤:
1、编写好源文件。包括camera.v和它的Testbench文件camera_tb.v
2、编写.do文件(camera_tb.do),内容如下:
Create the work library
vlib work
vmap work work
vlog -work work camera_tb.v # Compile the verilog files
vsim -lib work camera_tb # Run simulation
view wave
add wave sim:/camera_tb/* run 55ms