如下图所示,这组脚本总共包含了3个文件。
shell脚本runbb,实现基本的vcs analysis/elaboration/run sim/coverage collect/waveform&log dump操作。是可单独执行的文件。
python脚本bunnyrun,实现sim目录的自动定位和自动创建、测试用例名称的模糊匹配、随机测试用例指定次数的多次仿真、log自动备份。bunnyrun通过os库调用了runbb。使用bunnyrun和shell格式的caselist,可实现串行回归测试。
python脚本bunnyfly,支持多条caselist输入和自动处理;通过multiprocessing库实现多进程并行仿真。通过os库调用了bunnyrun。当回归测试规模较大时,可以显著加快仿真时间。

p.s.当小规模回归测试时,可以用shell脚本做简单的并行回归。参考下面的例子,用&连接起来的3条命令会同时启动。在bunnyrun脚本里面识别:为指定sim目录,当:pid时创建独立的仿真目录simbunny_datetime_pidxxxx,每条case在自己单独的目录下面编译仿真。
( ./bunnyrun :pid ::tc001 ) &
( ./bunnyrun :pid ::tc002 ) &
( ./bunnyrun :pid ::tc003 )