簡體   English   中英

我們可以使用 disable 語句禁用 Always 塊嗎?

[英]Can we disable Always block using disable statement?

module xyz;
  
  always
  begin : b1
    $display("I am executing"); // statement 1
    disable b1;
    $display("I am still executing"); // statement 2    
  end  
  
endmodule  

我無法理解 disable 語句在上述代碼中的實際行為。

我原以為statement 1只會執行一次,然后永遠禁用 always 塊 (b1)。 但實際上statement 1正在無限執行(直到進程被終止)而statement 2被跳過。

I am executing
I am executing
I am executing
      .
      .
      .

我已經嘗試了 EDA Playground 的所有模擬器。

disable name語句本質上是跳轉到命名塊的end 它不會終止任何進程(嵌套的 fork/join 塊除外)

always構造創建了一個永久進程,該進程執行緊隨其后的過程語句。 一旦該語句完成,它就會無限期地重新執行它。 在您的示例中,該程序語句是一個begin/end

暫無
暫無

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

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