我刚开始学习sv编码。在我正在研究的systemverilog代码之一中,我有1ns的timeunit和10ps的timeprecision。 我将输出定义为逻辑。
always@(condition)
begin
#2 output = 1'b1; // I know this makes output high after 2nS.
#(10:20:40) output = 1'b0; // What does this statement do ?
end
end
答案 0 :(得分:0)
请参阅IEEE Std 1800-2012,第11.12节最小,典型和最大延迟表达式:
min:typ:max
在给定仿真期间,将使用3个值之一作为延迟。根据我的经验,模拟器默认情况下使用中间值(typ
)。在这种情况下,“输出”信号将保持高电平20ns。
我使用的模拟器提供了运行时命令行选项,用于选择3种延迟之一,例如:
+mindelays
+typdelays
+maxdelays
如果使用+maxdelays
运行模拟,则“输出”信号将持续40ns高电平。
请注意,output
是Verilog中的保留关键字,不能用作信号名称。像out
这样的名称将是合法的信号名称。