verilog始终为空敏感度列表 总是clk

verilog始终为空敏感度列表 总是clk,verilog,Verilog,我在VCS和Incisive中都会出现“内存不足”错误 LHS上的延迟更为传统: always clk <= #5 !clk; reg clk=0; 始终#5 clk您会收到一个“内存不足”错误,因为它是一个非阻塞无限循环,将未来事件添加到调度程序 始终在功能上等同于初始值,而(1)(无限循环)

我在VCS和Incisive中都会出现“内存不足”错误

LHS上的延迟更为传统:

always clk <= #5 !clk;
reg clk=0;
始终#5 clk您会收到一个“内存不足”错误,因为它是一个非阻塞无限循环,将未来事件添加到调度程序


始终
在功能上等同于
初始值,而(1)
(无限循环)<这就是我遇到的。这让我对为什么要在LHS上延迟感兴趣?我的理解是LHS上的延迟是惯性延迟,RHS上用于非阻塞的延迟是传输延迟。这是有效的verilog吗?@Will,这是合法的语法。不需要Verilog模拟器来保护代理无限循环。
reg clk = 0;
always #5 clk <= !clk;
reg clk = 1'b1; // or 1'b0
always #5 clk = !clk;
reg clk;
initial begin
  clk = 1'b1; // or 1'b0
  forever #5 clk = !clk;
end