System verilog SystemVerilog中的$stable是否在公交车上运行?
我想验证总线在断言中是否稳定。例如,如果在重新下降沿之后时钟中的数据发生变化,我希望下面的断言标记错误System verilog SystemVerilog中的$stable是否在公交车上运行?,system-verilog,assertions,system-verilog-assertions,System Verilog,Assertions,System Verilog Assertions,我想验证总线在断言中是否稳定。例如,如果在重新下降沿之后时钟中的数据发生变化,我希望下面的断言标记错误 wire clk, rst_n, re; wire [15:0] data; a_chk_stable_data: assert property (@(posedge clk) disable iff(!rst_n) ($fell(re) |=> $stable(data[15:0]))) else begin $display("ERROR: one or
wire clk, rst_n, re;
wire [15:0] data;
a_chk_stable_data:
assert property (@(posedge clk) disable iff(!rst_n)
($fell(re) |=> $stable(data[15:0])))
else begin
$display("ERROR: one or more bits of data not stable");
end
我相信$rose只在公共汽车的LSB上运行。$stable是否也只在LSB上运行,或者它是否支持任何宽度的信号?根据,$stable对整个表达式运行。而$rose和$Fall操作表达式的LSB
根据第16.9.3节:
-如果表达式的LSB更改为1,$rose返回true。否则,它将返回false。
-如果表达式的LSB更改为0,$fell返回true。否则,它将返回false。
-如果表达式的值没有更改,$stable返回true。否则,它将返回false。
-如果表达式的值更改,$changed返回true。否则,它将返回false
根据我们的研究,$stable对整个表达式进行操作。而$rose和$Fall操作表达式的LSB
根据第16.9.3节:
-如果表达式的LSB更改为1,$rose返回true。否则,它将返回false。
-如果表达式的LSB更改为0,$fell返回true。否则,它将返回false。
-如果表达式的值没有更改,$stable返回true。否则,它将返回false。
-如果表达式的值更改,$changed返回true。否则,它将返回false