[SVA]:有没有办法跳过 SVA 的第一次评估?
[SVA]: Is there a way to skip the first evaluation of an SVA?
我有以下 属性:
property p_0;
$rose(signal_a) |-> $rose(signal_b) ;
endproperty
我的问题是,在 HW RST 之后,signal_b 上升(正常行为)但断言失败,我希望稍后再评估此检查。
我想与 first_match() 一起工作,如下所示:
p_0_a : assert property ( ! first_match(p_0)) else `uvm_fatal(...)
所以我跳过了这个 属性 的第一个匹配项,但是编译器生成了语法错误。
有没有办法在特定的迭代次数后跳过 SVA 的评估?
谢谢
级联蕴涵运算符 可能会帮助您,例如:
assert property (reset |-> p_0);
基本上,|=> 和 |-> 是 right-associative:
A |=> B |=> C
表示
A |=> ( B |=> C )
即如果A
发生,之后立即检查(B |=> C)
。如果 A
没有发生,请不要检查 (B |=> C)
。
我有以下 属性:
property p_0;
$rose(signal_a) |-> $rose(signal_b) ;
endproperty
我的问题是,在 HW RST 之后,signal_b 上升(正常行为)但断言失败,我希望稍后再评估此检查。
我想与 first_match() 一起工作,如下所示:
p_0_a : assert property ( ! first_match(p_0)) else `uvm_fatal(...)
所以我跳过了这个 属性 的第一个匹配项,但是编译器生成了语法错误。
有没有办法在特定的迭代次数后跳过 SVA 的评估?
谢谢
级联蕴涵运算符 可能会帮助您,例如:
assert property (reset |-> p_0);
基本上,|=> 和 |-> 是 right-associative:
A |=> B |=> C
表示
A |=> ( B |=> C )
即如果A
发生,之后立即检查(B |=> C)
。如果 A
没有发生,请不要检查 (B |=> C)
。