Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Verilog SVA语法:#1a |->;b对a |->$过去(b)_Verilog_System Verilog_System Verilog Assertions - Fatal编程技术网

Verilog SVA语法:#1a |->;b对a |->$过去(b)

Verilog SVA语法:#1a |->;b对a |->$过去(b),verilog,system-verilog,system-verilog-assertions,Verilog,System Verilog,System Verilog Assertions,这两种表达方式有什么区别: ##1 a |-> b 对 a |-> $past(b) 在第一个循环中,将使用当前循环或下一个循环中的b 由于在这两种情况下都使用重叠蕴涵运算符,因此LHS(先行项)变为真的周期与RHS(后续项)开始的周期相同。因此,在第一条语句中,a和b必须在同一周期内为真。##1仅将整个操作延迟一个周期 您可能正在考虑重叠和非重叠之间的区别。对于这些简单属性,以下是等效的: a |-> b; a |=> $past(b); 由于在这两种情况下都使

这两种表达方式有什么区别:

##1 a |-> b 

a |-> $past(b)
在第一个循环中,将使用当前循环或下一个循环中的
b

由于在这两种情况下都使用重叠蕴涵运算符,因此LHS(先行项)变为真的周期与RHS(后续项)开始的周期相同。因此,在第一条语句中,
a
b
必须在同一周期内为真。
##1
仅将整个操作延迟一个周期

您可能正在考虑重叠和非重叠之间的区别。对于这些简单属性,以下是等效的:

a |-> b;
a |=> $past(b);
由于在这两种情况下都使用重叠蕴涵运算符,因此LHS(先行项)变为真的周期与RHS(后续项)开始的周期相同。因此,在第一条语句中,
a
b
必须在同一周期内为真。
##1
仅将整个操作延迟一个周期

您可能正在考虑重叠和非重叠之间的区别。对于这些简单属性,以下是等效的:

a |-> b;
a |=> $past(b);

好的,谢谢。根据您的解释提出后续问题:这些是等效的吗?a->过去(b)v/s->过去。。。我不这么认为,因为我看到他们在我的工具中给出了不同的结果。但后来我想,这些必须是等价的:#a |->过去(b)v/s a |->过去(b,2)。。但是这些也给出了不同的结果还记得我说过的重叠含义吗?是的,根据你的解释,我希望a |->$pass(b)v/s |->$pass在并发断言中使用时给出相同的结果(因为其中一个应该只是另一个的延迟版本,但本质上执行相同的检查)。但这不是我在正式工具中看到的。它们给出不同的结果,“##1”传球,而另一个犯规。当我要求该工具向我展示一个违规示例时,它只显示了1个时钟周期的值信息,这似乎告诉我它没有将断言视为基于2个周期的断言。可能该工具在“a |->$pass(b)”方面有问题,因为“a”可能在第一个周期中为真,此时$pass(b)未定义。那么为什么“##1a |->$pass(b)”可以很好地工作是有道理的。好的,谢谢。根据您的解释提出后续问题:这些是等效的吗?a->过去(b)v/s->过去。。。我不这么认为,因为我看到他们在我的工具中给出了不同的结果。但后来我想,这些必须是等价的:#a |->过去(b)v/s a |->过去(b,2)。。但是这些也给出了不同的结果还记得我说过的重叠含义吗?是的,根据你的解释,我希望a |->$pass(b)v/s |->$pass在并发断言中使用时给出相同的结果(因为其中一个应该只是另一个的延迟版本,但本质上执行相同的检查)。但这不是我在正式工具中看到的。它们给出不同的结果,“##1”传球,而另一个犯规。当我要求该工具向我展示一个违规示例时,它只显示了1个时钟周期的值信息,这似乎告诉我它没有将断言视为基于2个周期的断言。可能该工具在“a |->$pass(b)”方面有问题,因为“a”可能在第一个周期中为真,此时$pass(b)未定义。那么,为什么“##1a |->$pass(b)”可以很好地工作是有道理的。