蕴含(Implication):等效于一个if—then结构,蕴含的左边叫做“先行算子”,右边叫做“后续算子”,先行算子是约束条件,当先行算子成功时后续算子才会被计算,如果先行算子不成功,那么整个属性就默认为成功,叫做“空成功”,蕴含结构只能在属性(property)定义中,不能在序列(sequence)中使用
1. 交叠蕴含,符号“|->”,表示如果先行算子匹配,在同一个时钟周期计算后续算子表达式。
property p1;
@(posedge clk) a |-> b;
endproperty
a8:assert property(p1);
属性p1检查信号"a"在给定的时钟上升沿是否为高电平,如果a为高,信号“b”在相同的时钟沿也必须为高;
2. 非交叠蕴含,符号"|=>",表示如果先行算子匹配,在下一个时钟周期计算后续算子表达式。
property p2;
@(posedge clk) a |=> b;
endproperty
a9: asseert property(p2);
<