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
posted @ 2024-07-04 10:36  自然史  阅读(548)  评论(0)    收藏  举报