为啥这个 Verilog 模块在第 9 行显示“无效模块项”?
Posted
技术标签:
【中文标题】为啥这个 Verilog 模块在第 9 行显示“无效模块项”?【英文标题】:Why does this Verilog module show "invalid module item" on the 9th line?为什么这个 Verilog 模块在第 9 行显示“无效模块项”? 【发布时间】:2021-12-25 19:44:39 【问题描述】:我正在学习 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:错误:无效的模块项。
【问题讨论】:
【参考方案1】:forever
是程序语句;它不会创建像initial
或always
这样的进程。您可以将forever
放在initial
块内,或者直接写
always #10 clk = ! clk;
【讨论】:
【参考方案2】:forever
不能在程序块之外使用。如果您将其放在初始块中,它将起作用:
initial
begin
clock = 1'b0;
forever #10 clock = ~clock;
end
【讨论】:
以上是关于为啥这个 Verilog 模块在第 9 行显示“无效模块项”?的主要内容,如果未能解决你的问题,请参考以下文章