[英]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.