以下两个代码都会生成一个时钟。我需要知道除了时钟生成之外,永远循环是否还有其他用途?我只在时钟一代中遇到过永远。如果只是为了这个目的,那岂不是毫无用处?
initial begin
clk = 0;
forever begin
#5 clk = ~clk;
end
end
initial begin
clk = 0 ;
always begin
# 5 clk = ~clk;
end
end
你的第二个代码片段实际上是一个语法错误。和...之间的不同forever
and always
就是它always
可以作为“模块项”存在,这是 Verilog 规范为可以直接编写在模块内而不包含在某些其他构造中的构造提供的名称。initial
也是一个模块项。always
块被重复,而initial
块在模拟开始时运行一次。
forever
是一个只能在程序上下文中使用的程序语句。所以这样写是合法的initial forever
or always forever
,但不仅仅是forever
.
情况在哪里forever
在任务中变得非常重要,任务是程序上下文,因此使用always
不允许。 (函数也是程序上下文,但可能不包含延迟,这使得不太可能forever
会派上用场的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)