Verilog总是在启动期间阻止执行

Verilog总是在启动期间阻止执行,verilog,system-verilog,Verilog,System Verilog,我在verilog中有一个always块,如下所示。在启动时间(比如50ns)之前,always块内的所有输入信号都不稳定。在达到启动时间之前,我不想执行always块。实现此功能的最佳方法是什么?谢谢 always begin //functional code #10 end 使用初始块 initial #50ns forever begin /* functional code */ #10; end 或者对于组合逻辑,使用 initial #50ns forever @* beg

我在verilog中有一个always块,如下所示。在启动时间(比如50ns)之前,always块内的所有输入信号都不稳定。在达到启动时间之前,我不想执行always块。实现此功能的最佳方法是什么?谢谢

always begin
 //functional code
 #10
end

使用
初始

initial #50ns forever begin /* functional code */ #10; end
或者对于组合逻辑,使用

initial #50ns forever @* begin /* functional code */ end

使用
初始

initial #50ns forever begin /* functional code */ #10; end
或者对于组合逻辑,使用

initial #50ns forever @* begin /* functional code */ end

是用于合成代码的吗?如果是,您将需要另一个*通电这只是模拟电路的行为模型。不需要合成。为什么有#10?看来这对你很重要。这总是应该是没有敏感度列表的块吗?我添加了延迟,因为没有指定敏感度列表,但是我可以添加敏感度列表并删除延迟。是用于可合成代码的吗?如果是,您将需要另一个*通电这只是模拟电路的行为模型。不需要合成。为什么有#10?看来这对你很重要。这总是应该是没有敏感度列表的块吗?我添加了延迟,因为没有指定敏感度列表,但我可以添加敏感度列表并删除延迟。谢谢Dave,这将起作用。但是有没有一种方法可以通过使用always block来实现呢?是的,但是要困难得多。您必须在always块中第一次设置一个标志以等待50ns,每次循环时都要检查标志。谢谢Dave,这会起作用的。但是有没有一种方法可以通过使用always block来实现呢?是的,但是要困难得多。您必须在always块中第一次设置一个标志以等待50ns,每次循环都要检查该标志。