为什么这个 Verilog 模块在第 9 行显示 "invalid module item"?

Why does this Verilog module show "invalid module item" on the 9th line?

我正在学习 Verilog 中的循环,想创建一个时间周期为 20ns 的简单时钟。每当我尝试 运行 EDA Playground 中的代码时,我都会收到以下错误。

module Pulse(clock);
  output reg clock;
  
  initial
    begin
      clock = 1'b0;
    end
  
  forever #10 clock = ~clock;      //Error is here
endmodule

design.sv:9: 语法错误 design.sv:9: 错误:模块项目无效。

forever是程序语句;它不会创建像 initialalways 这样的进程。您可以将 forever 放在 initial 块内或只写

 always #10 clk = ! clk;

forever 不能在程序块之外使用。如果你把它放在初始块,它将起作用:

initial
   begin
      clock = 1'b0;
      forever #10 clock = ~clock;  
   end