当前位置: 代码迷 >> 综合 >> modelsim tcl 自动化仿真
  详细解决方案

modelsim tcl 自动化仿真

热度:102   发布时间:2023-11-08 21:23:58.0

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
二.编译

  1. vlog vlog testbench.v vlog –work work testbench.v
    三.启动仿真
  2. 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