perl 脚本跑回归测试【IC】

参考狗蛋大佬。

目录

1.脚本文件说明

2.命令行传参 use Getopt::Long

3.case : 跑case。脚本:

        3.1 生成编译命令

        3.2 生成仿真命令

        3.3 生成终端命令

        3.4 运行


1.脚本文件说明

本质上是生成shell命令。

共包含两个文件,一个是脚本主体文件,一个是包含文件,用来初始化proj的信息,比如文件路径循环次数一些配置等信息。

使用包含文件的方法,在主体文件中,require 包含文件,引用定义在包含文件的sub函数

require(文件名);

包含文件的定义:

正常函数写法,但最后一行需要有个"1;

关于require的详细用法:

perl--require(@INC)_奔跑的羚羊的技术博客_51CTO博客

2.命令行传参 use Getopt::Long

Getopt::Long::GetOptions(
	'help|h' => \$cmd_help,
	'case|c' => \$cmd_case,
	'analyse|ana' => \$cmd_analyse,
) or usage();

3.case : 跑case。脚本:

  1. 在终端显式testcase目录下的所有"*test.sv",并创建testname的仿真文件夹。
  2. 输入testcase number;
  3. run_tc:  

             对输入的test序号(类似all、1-2,3-5 、7、1-5)进行调整,将序号计入数组tc_num中。

        3.1 生成编译命令

-o path/simv //生成可执行文件simv 和simv_daidir
-l path/testname_sim_dir/comp_testname_seed.log
-f filelist

-sverilog -ntb_opts uvm-1.2 -debug_access+all
+nospecify +notimingcheck
-timescale=1ns/1ns +vcs+lic+wait -full64
+vcsd +memcbk +vpi -kdb
+fsdb+region //查看delta

在config文件中有 是否有覆盖率的设置选项,如果有则有命令:
-cm line+cond+fsm+branch+tgl+assert 
-cm_dir /cov_dir/simv_seed.vdb //指定vdb路径
-cm_hier ./file //一个文件,指明统计覆盖率的层次 module tree

vcs ...

        3.2 生成仿真命令

+ntb_random_seed=seed 
-l path/testname_sim_dir/sim_testname_seed.log
+UVM_TESTNAME=testname
+fsdb+delta +UVM_VERBOSITY=UVM_MEDIUM 
+fsdb+sva_success //verdi中查看sva tb中也要dump

如果收集覆盖率,则有
-cm +...
-cm_dir cov_dir/sim_testname_seed.vdb
-cm_name testname_seed

./simv 上述

        3.3 生成终端命令

         将上两个命令的字符串内容存放至终端$terminal_cmd数组中。

         如果在一次以上生成连续运行,那就不必生成编译指令。

        3.4 运行

        system("gnome-terminal --window --$terminal_cmd[x] ")

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值