tcl脚本(二)- 实际用于仿真


声明:以下代码均出自《路科验证》。仅以学习参考为目的,不可作为其他商业用途。


tcl的语法基础请看:tcl入门基础


以下是使用tcl编写的回归测试脚本,逐行解析此脚本。
注:
1.因为CSDN没有tcl语法高亮的,我就以截屏图片作为解析了:
2.无注释版代码放在文末。
在这里插入图片描述
PS:啰嗦一句,如果是初学,要注意以下这里相对路径的写法。不用看的可以直接往下拉。
在这里插入图片描述
在这里插入图片描述
所以脚本中setenv DUT_SRC …/mcdf/v0 路径就是:

  • 当前 lab5 目录下,
  • …/ 向上一级,到 SVlab 目录,
  • 然后 SVlab 目录目录下的mcdf/v0 文件夹就是设计文件所在处。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


无注释版代码:

#======================================#
# TCL script for a mini regression     #
#======================================#

onbreak resume
onerror resume

# set environment variables
setenv DUT_SRC ../mcdf/v0
setenv TB_SRC .

# clean the environment and remove trash files
set delfiles [glob work *.log *.ucdb sim.list]

file delete -force {*}$delfiles

# compile the design and dut with a filelist
vlib work
vlog -sv -cover bst -timescale=1ps/1ps -l comp.log +incdir+$env(DUT_SRC) -f complist.f

# prepare simrun folder
set timetag [clock format [clock seconds] -format "%Y%b%d-%H_%M"]
file mkdir regr_ucdb_${timetag}

# simulate with specific testname sequentially
set TestSets { {mcdf_data_consistence_basic_test 1} \
                {mcdf_full_random_test 3} \
                {mcdf_reg_read_write_test 1} \
                {mcdf_reg_stability_test 1} \ 
                {mcdf_down_stream_low_bandwidth_test 3} \
              }

foreach testset $TestSets {
  set testname [lindex $testset 0]
  set LoopNum [lindex $testset 1]
  for {set loop 0} {$loop < $LoopNum} {incr loop} {
    set seed [expr int(rand() * 100)]
    echo simulating $testname
    echo $seed +TESTNAME=$testname -l regr_ucdb_${timetag}/run_${testname}_${seed}.log
    vsim -onfinish stop -cover -cvgperinstance -cvgmergeinstances -sv_seed $seed \
         +TESTNAME=$testname -l regr_ucdb_${timetag}/run_${testname}_${seed}.log work.tb
    run -all
    coverage save regr_ucdb_${timetag}/${testname}_${seed}.ucdb
    quit -sim
  }
}

# merge the ucdb per test
vcover merge -testassociated regr_ucdb_${timetag}/regr_${timetag}.ucdb testplan.ucdb {*}[glob regr_ucdb_${timetag}/*.ucdb]

quit -f
  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值