簡體   English   中英

在時鍾門中使用 System Verilog $past

[英]use System Verilog $past in clocking gate

在此處輸入圖像描述

p1: assert property (@(posedge clk) ($past(b, 2, c)) === 0);

當我在 VCS 中運行斷言時,它在 13 秒、15 秒、17 秒時失敗...

我不知道為什么它在 13 秒時失敗。

在 11 秒內, $past(b, 2, c)為 0(在 7 秒采樣)

但是在 13 秒內, c = 0,為什么$past(b, 2, c)在 9 秒內得到采樣值?

使用帶有 enable 的$past很復雜,因為它將采樣和歷史記錄在一起。 它的運行方式如下:

  always @(posedge clk) begin
    if(c) begin
      past1 <=b;
      past2 <= past1;
    end
    $display ("%t b:%0d b1:%0d b2:%0d", $time,b,past1,past2);
  end

順便說一句,在示例代碼中提供確切的刺激確實會有所幫助。 圖片很好,但是嘗試重新創建它需要很多人的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM