1.在sim文件中有makefile脚本、有filelist.f 测试文件。首先使用如下脚本编译,生成如下目录。
①波形文件vpd生成
#7 VPD = +vpdfile+$(TEST_LOG)/${TB_TEST_ID}.vpd
指定生成的vpd波形文件的存放位置。这种方式生成的vpd波形文件,在仿真simulate阶段生成。同时需要在comp 编译阶段 加入+vcs+vcdpluson指令如#35,才可在对应文件夹下生成波形文件。以下方法也可以生成vpd波形文件。
#53 当用53行代码 ./simv -gui 去跑波形图时,可生成inter.vpb文件夹。存放波形文件。
② 覆盖率收集
#9 COV_OPTS = -cm line+fsm+tgl+cond+branch -cm_dir ${OUTPUT_DIR}/COV
-cm 收集指定某种或多种覆盖率;
-cm_dir 指定覆盖率文件存放文件夹 #9在logs文件夹下生成COV.vdb 文件夹存放覆盖率文件
-cm_name 在simulate仿真阶段生成,修改默认的test目录。对于每一个test,生成的coverage数据,默认是在simv.vdb/snps/coverage/db/testdata/test目录下。比如-cm_name load_test,那么coverage数据,就会生成在simv.vdb/snps/coverage/db/testdata/load_test目录下。
注意:在编译和仿真阶段都需要加入 -cm指令。
#56 dve -full64 -covdir ... .vbd dve图形界面打开对应路径下覆盖率。覆盖率为合并覆盖率,当vdb文件下有多种测试用例的覆盖率文件时,dve打开合并覆盖率。
当只使用-cm line+cond.....等时 用#57代码打开。
#urg合并代码覆盖率 指定存储路径,并重命名,为total_cov.vdp文件,并生成urgReport文件夹,以网页的形式可打开。
③ucli debug
#29 -debug_all 开启ucli调试波形。若在编译阶段使用 -debug_all -ucli -R 则立即开启ucli仿真阶段,关于后面在仿真阶段出现的参数设置均无效。
在#43仿真阶段进入ucli 可完成参数设置,进入ucli模式调试。
④ .fsdb文件(verdi打开波形)
#31首先 编译阶段通过 vcs -kdb -lca
生成kdb.elab++,位于simv.daidir目录下。 verdi加载的是Knowledge Database (KDB),这是一个 Elaboration Database elabDB。
在tb_top.v中 加入代码 配合 #30 +define FSDB -fsdb 生成top_tb.fsdb波形文件 供verdi打开,启动打开代码如#63 verdi -ssf top_db.fsdb
`ifdef FSDB
initial begin
$fsdbDumpfile("tb_top.fsdb");
$fsdbDumpvars;
end
`endif
2.再使用make simulate仿真运行