求助,帮忙注释几行sv的代码
时间:10-02
整理:3721RD
点击:
property cmd_onehot;
@(cb) disable iff (sys_reset) (cmd_vect != 0) |-> $onehot(cmd_vect);
endproperty
assert property (cmd_onehot)else $error ("commandoverlaped violation error");
这是用sv写的一个tb里的几行,猜测意思是cmd_onehot不是1的时候就出错,打印$error信息。
但是这几行具体的语法是怎样的,请高手给解释一下吧。O(∩_∩)O谢谢!刚接触sv,看sv的LRM也是一头雾水。
另外,|->和|=>这两个是什么作用,也没看懂。
@(cb) disable iff (sys_reset) (cmd_vect != 0) |-> $onehot(cmd_vect);
endproperty
assert property (cmd_onehot)else $error ("commandoverlaped violation error");
这是用sv写的一个tb里的几行,猜测意思是cmd_onehot不是1的时候就出错,打印$error信息。
但是这几行具体的语法是怎样的,请高手给解释一下吧。O(∩_∩)O谢谢!刚接触sv,看sv的LRM也是一头雾水。
另外,|->和|=>这两个是什么作用,也没看懂。
伪代码如下:
always @(cb) begin
if(sys_reset) begin
断言空成功
end
else begin
if(cmd_vect != 0) begin
if(cmd_vect只有一位为1) begin//独热码状态机
断言成功
end
else begin
断言失败
end
end
else begin
断言空成功
end
end
end
|-> 左边条件成立的情况下,立即判断右边条件是否成立
|=> 左边条件成立的情况下,在下一个采样时钟沿判断右边条件是否成立
O(∩_∩)O谢谢指点!