在VCS(Synopsys的Verilog编译模拟器)中,收集覆盖率信息通常需要在编译和仿真命令中添加特定的选项。以下是与VCS覆盖率收集相关的编译命令参数的详细解释和示例: 1. VCS覆盖率收集的基本编译选项 -cm:用于指定要收集的覆盖率类型。常见的覆盖率类型包括line(行覆盖率)、cond(条件覆盖率)、fsm(状态机覆盖率)、tgl(翻...
简单说,就是如果要在同一个case跑不同seed且要区分每次不同seed仿真的覆盖率信息的话,需要使用到编译选项-cm_name和-cm_test。 合并覆盖率 接着上面,如果要合并一次回归仿真的覆盖率,需要使用如下命令进行合并: urg -dir xxx_compile_path/xxx.vdb \ -dir xxx_compile_path/xxx_testcase_path1/xxx.vdb \ ...
比如-cm_name load_test,那么coverage数据,就会生成在simv.vdb/snps/coverage/db/testdata/load_test目录下。 3. -cm_hier选项 该选项,在coverage technology reference manual手册上有介绍。 官方解释该选项: The-cm_hieroption is a compile-time option to specify module definitions, instances and sub-hierarc...
The -cm_hier option is a compile-time option to specify module definitions, instances and sub-hierarchies, and source files that you want VCS to either exclude from coverage or exclusively compile for coverage. 在收集code coverage的时候,工具默认会收集所有模块的coverage。但是有时候,我们只关心某一...
如下的makefile,就生成上述四个的覆盖率报告。注意,编译和仿真,都要加上-cm这个选项。 执行make vcs , make sim后,会生成simv.vdb文件夹,该文件夹下包含了覆盖率的内容,但是我们需要将内容生成报告,这样,才方便我们查看。 生成报告,使用的是 urg命令,该命令也是属于vcs工具里面的。
-cm line+fsm code coverage选项,在编译和仿真的时候,都必须要有,否则不能正常的生成coverage。 编译如果带有coverage coverage选项,会在编译目录下,生成simv.vdb目录,里面包含了coverage model。 二、function coverage function coverage,没有选项控制,因...
cm_hier指定覆盖率收集层级 假设有如下三个rtl文件,名字分别为a.sv, b.sv, c.sv其层级结构如下: 图片.png 相关命令如下: begin cond+line+tgl+fsm-moduletree a lvl_num end// a模块不收集,其例化的模块根据lvl_num决定begin cond+line+tgl+fsm-tree tb_top.U_A_TOP.U_B end//a模块下例化的b模块...
-cm line+fsm code coverage选项,在编译和仿真的时候,都必须要有,否则不能正常的生成coverage。 编译如果带有coverage coverage选项,会在编译目录下,生成simv.vdb目录,里面包含了coverage model。 二、function coverage function coverage,没有选项控制,因为是在代码中指定的。
仿真命令 仿真命令中加入-cm_name可以将覆盖率数据信息放在独立的文件夹中。仿真选项里加上-ucli -do xxx/wave.do wave.do wave.tcl
仿真命令中加入-cm_name可以将覆盖率数据信息放在独立的文件夹中。 仿真选项里加上-ucli -do xxx/wave.do wave.do call \$fsdbAutoSwitchDumpfile 1024 \"tc_sanity.fsdb\" 1 call \$fsdbDumpvars 0 top run quit +fsdb_autoflush -ucli -do xxx/wave.tcl ...