使用bat+do+Tcl脚本自动执行Modelsim前仿真

在使用modelsim进行前仿真时,为了便于操作和节省时间,可以使用脚本的方式自动执行整个仿真过程,并自动生成覆盖率报告文件等。

需要几个文件:

1.源文件(设计文件,design under test/DUT)

2.testbench文件(激励文件,产生一系列激励用于测试源文件)

3.*.do文件 (用于执行仿真过程、指定生成报告的存放路径等)

4.*.tcl文件(用于设置仿真相关的设置)

举例如下:

1. dut.do文件:

do dut_tb_logic.tcl
vcover merge ../testbench/dut_ucdb dut_tb_ucdb
vcover report -output ../testbench/dut_report ../testbench/dut_ucdb
write transcript ../testbench/dut_transcript.txt

解释:dut_tb_logic.tcl为需要执行的tcl语言文件;‘/testbench’表示存放报告等文件的路径名

2. dut_tb.tcl文件举例:

# Modelsim-Tcl script to run the DUT

#------------------------------------------------------------------------

# Make work directory

#------------------------------------------------------------------------

if {[file exists work]} {

    file delete -force work

    vlib work

    puts "SuccessfullyCreated work directory"

} else {

    vlib work

    puts "SuccessfullyCreated work directory"

}

#------------------------------------------------------------------------

# Local RTL files

#------------------------------------------------------------------------

vcom -work work -93 ../RTL/dut1.vhd -coverbcesxf

vcom -work work -93 ../RTL/dut2.vhd -coverbcesxf

vcom -work work -93 ../RTL/dut3.vhd -coverbcesxf

vcom -work work -93 ../RTL/dut4.vhd -coverbcesxf

vcom -work work -93 ../RTL/dut.vhd -coverbcesxf

#------------------------------------------------------------------------

# Local Testbench Components and stimuli

#------------------------------------------------------------------------

vcom -work work -93 ../testbench/dut_tb.vhd-cover bcesxf

# echo '*********** Set Test CaseParameters: *********************'

# echo '*********** $1<rtl|gate>                    *************'

# echo '*********** $2<$RANDOM>                     *************'

#------------------------------------------------------------------------

# Load and Simulate the testbench

# The following Libraries are precompiledlibraries provided in

# Modelsim Xilinx Edition

#------------------------------------------------------------------------

vsim -t ps -coverage work.dut_tb

log -r /*

#------------------------------------------------------------------------

# Add Waves

#------------------------------------------------------------------------

add wave -r sim:/dut_tb/uut/*

add wave -r sim:/dut_tb/*

#------------------------------------------------------------------------

# Perform Simulation

#------------------------------------------------------------------------

run -all

 

coverage report -file../testbench/dut_tb_report.txt

coverage save ../testbench/dut_tb_ucdb

注解:

1.  带#的行为注释行。

2.  vcom -work work -93 ../RTL/dut1.vhd -cover bcesxf此行中的/RTL与do文件中的/testbench都处于同一目录下,其中/RTL用于存放源文件,文件夹的名字自定义即可。

-cover bcesxf字段表示覆盖率统计的几项指标,其具体解释如下

Each character in bcesxf identifiesa type of coverage statistic: "b" indicates branch, "c"indicates condition, "e" indicates expression, "s"indicates statement, "t" indicates 2-transition toggle, "x"indicates extended 6-transition toggle coverage (t and x are mutuallyexclusive), and “f” indicates Finite State Machine coverage.

-93字段的含义是:

Because accelerated subprograms requireattributes that are available only under the 1993 standard, many of thelibraries are built using vcom with the -93 option.

3.  vcom -work work -93 ../testbench/dut_tb.vhd -cover bcesxf 此行是对testbench进行覆盖率统计,统计指标为bcesxf

4.  vsim -t ps -coverage work.dut_tb 此行是指定仿真精度,此处为ps级,也可以定义为100ps或者ns等,详细可以见modelsim中下拉菜单选择,其中default表示ns级精度。

5.  add wave -r sim:/dut_tb/uut/*

   add wave -rsim:/dut_tb/*

     这两行是表示将uut及testbench中的所有信号全部加入波形,以便查看。其中uut是在testbench中实例化dut.vhd端口时的名字。

6.  run -all 表示一直跑仿真,此处也可以指定自定义的仿真时间长度。

7.  coverage report -file ../testbench/dut_tb_report.txt

   coveragesave  ../testbench/dut_tb_ucdb

   此处两行是指生产报告文件及库文件,其存放目录为/testbench

  当设计好testbench并建好相应的do文件和Tcl文件之后,就可以在modelsim中跑仿真了。方法是打开modelsim-file-change directory,然后指定至存放do文件和Tcl文件的文件夹,即本例中的/testbench,然后在Transcript中键入 do dut.do即可自动执行仿真过程。

  另外一个偷懒的办法是自己建一个*.bat批处理文件,这样就不用打开modelsim,直接双击这个批处理文件就可以自动化执行前仿真了。

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
搭建ModelSim的sim_model自动仿真环境需要以下步骤: 1. 编写仿真脚本ModelSim中,可以使用Tcl脚本编写仿真脚本仿真脚本可以自动执行各种仿真任务,例如编译、仿真、波形查看等。仿真脚本的文件扩展名通常为.do。下面是一个简单的例子: ```tcl # 编译源文件 vlog -work work ./src/*.v # 运行仿真 vsim -c -do "do simulation.do; run -all" top_module # 退出ModelSim quit -sim ``` 在这个例子中,我们首先使用`vlog`命令编译所有的Verilog源文件。然后,使用`vsim`命令运行仿真,并通过`-do`选项指定执行一个名为"simulation.do"的仿真脚本。最后,使用`quit`命令退出ModelSim仿真环境。 2. 创建sim_model工程 在ModelSim中创建sim_model工程的步骤如下: - 打开ModelSim软件 - 点击File -> New -> Project,弹出New Project对话框 - 在对话框中输入工程名称和文件夹路径,选择工程类型为"VHDL/Verilog",然后点击OK - 在弹出的对话框中选择要仿真的源文件,然后点击OK 3. 添加仿真脚本 在sim_model工程中添加仿真脚本的步骤如下: - 在ModelSim软件中打开sim_model工程 - 点击Simulate -> Start Simulation,弹出Transcript窗口 - 在Transcript窗口中输入`do simulation.do`命令执行仿真脚本 4. 执行仿真ModelSim执行仿真的步骤如下: - 在Transcript窗口中输入`run -all`命令运行仿真 - 在Wave窗口中查看仿真波形 总的来说,搭建ModelSim的sim_model自动仿真环境需要编写仿真脚本、创建sim_model工程、添加仿真脚本执行仿真等步骤。需要注意的是,在实际应用中,还需要根据具体的仿真需求编写和调试仿真脚本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值