鉴于两个属性P1 = (R1 or R2) |-> P
和P2 = (R1 |-> P) or (R2 |-> P)
,其中R1
和R2
是序列而P
是属性,是否正确{ {1}}相当于P1
?
我根据LRM附件F中的紧密和中性可满足性的定义进行了计算,并且它们是等效的。 (我不想排除我在某处犯错的可能性。)
我问,因为我看到模拟工具对两者的处理方式不同。
答案 0 :(得分:1)
我今天再次做了数学计算,两者并不相同。有些情况下属性或形式通过,但序列或形式会失败。
一个简单的例子是属性:
P1 = (1 or (1 ##1 1)) |-> 1
P2 = (1 |-> 1) or (1 ##1 1 |-> 1)
除了⊥之外, P2
对任何一个时钟周期长迹线都非常满意。短于两个时钟周期的走线永远不能满足P1
。 (当将两种形式的财产满意度条件插入到强烈满意的定义中时,就会出现这种情况。)
这意味着用简单的英语表示两个线程都是在P1
(R1
部分的一个和R2
部分的一个)中开始,需要完成,直到断言为止这家酒店被认为是成功的。但是对于P2
,只需要其中一个属性“成熟”,此时,其他属性的尝试将被丢弃。
乍一看似乎有些奇怪而且不那么直观,但它源于SVA的形式语义。我猜,但我不确定,P3 = first_match(R1 or R2) |-> P
是否相当于P2
。人们需要做数学运算。