这两个断言有什么区别?

时间:2018-03-29 00:15:59

标签: system-verilog-assertions

让我们说我有两个属性;

property p1;
sig_a ##1 sig_b;
endproperty

property p2;
sig_a |=> sig_b;
endproperty

现在,如果我做这样的断言:

a1: assert property (p1);
a2: assert property (p2);

a1和a2有什么不同吗?

1 个答案:

答案 0 :(得分:0)

system_verilog propertysequence语法之间有区别。 property p1没有触发条件。换句话说,它将始终在计时事件中被检查。它仅提及要检查的操作顺序。即sequence在sv断言中。您可以按照以下方式假设property p1

property p1;
  1'b1 |-> sig_a ##1 sig_b;
endproperty

如果sig_a为零值,它将始终失败。

现在property p2的触发条件为sig_a == non_zero值。如果此条件为真,则它将在1个时钟事件后评估sig_b值。