1

我想验证总线在断言中是否稳定。例如,如果在下降沿data之后时钟发生变化,我希望以下断言标记错误。re

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 上运行,还是支持任何宽度的信号?

4

1 回答 1

4

根据spec$stable对整个表达式进行操作。而对表达式的 LSB 进行操作$rose$fell

IEEE 1800-2012的第 16.9.3 节:

$rose如果表达式的 LSB 更改为 1,则返回 true。否则,它返回 false。
$fell如果表达式的 LSB 更改为 0,则返回 true。否则,它返回 false。
$stable如果表达式的值没有改变,则返回 true。否则,它返回 false。
$changed如果表达式的值发生更改,则返回 true。否则,它返回 false。

于 2015-02-02T17:46:50.507 回答