Coverage--增加或者排除特定信号的toggle覆盖率
Coverage -- 收集或者不收集特定信号的toggle
编译时排除切换覆盖率是通过 -cm_hier 文件中的 +/-node 选项指定的。
这些条目与配置文件中的其他条目配合使用,用于排除或包含切换和其他类型的覆盖,例如下面的内容:
+file -file
+filel -
ist fileli
st
+libra -
ry librar
+module -
e module
+tree -tree
"-node" 和 "+node" 条目适用于 Verilog 和 VHDL 中的信号、网络和变量。
Toggle coverage中排除特定信号
要排除一个信号,在 -cm_hier 文件中输入 -node 条目,然后跟上信号的层次名称。例如:
+module dev
-node top.dev1.w2
在这个例子中,所有名为module dev的模块都进行了覆盖率编译。其中,在top.dev1的实例中,信号w2被排除在切换覆盖率之外。
包含特定信号在toggle coverage 中
要在 -cm_hier 文件中包含一个信号,请输入 +node 条目,然后跟上信号的层次名称。例如:
-module dev
+node top.dev1.w2
在这个例子中,所有模块dev的实例都被排除在各种覆盖范围之外,只有一个例外。实例top.dev1被编译用于切换覆盖范围,但仅用于信号w2。
包括部分选择和位选择
可以对网络(nets)和变量(variables)进行部分选择(part-select)或位选择(bit-select)。例如:
-module test
+node test.w1[2:1]
+node test.w2[1]
+node test.l1[2:1]
+node test.l2[1]
- 请注意:
确保信号名称与位选择或部分选择之间没有空格
使用通配符字符
你可以在这些-node和+node条目中使用星号(*)和问号(?)通配符。
-module test
+node test.w*
+node test.logic?
星号(*)可以代表多个字符,而问号(?)代表单个字符。
指定SystemVerilog中的结构体和联合体
你可以指定一个结构体或联合体的实例,但不能直接指定结构体或联合体中的成员。例如,请参考以下源代码:
module test;
typedef struct {
logic log1;
bit bit1;
} control;
control ctl1;
endmodule
The following configuration file entry is valid:
-module test
+node test.ctl1
The following configuration file entry is not valid:
-module test
+node test.ctl1.log1
浙公网安备 33010602011771号