systemverilog代码中的多个#Delay

时间:2016-12-22 17:22:58

标签: system-verilog

我刚开始学习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

1 个答案:

答案 0 :(得分:0)

请参阅IEEE Std 1800-2012,第11.12节最小,典型和最大延迟表达式

min:typ:max

在给定仿真期间,将使用3个值之一作为延迟。根据我的经验,模拟器默认情况下使用中间值(typ)。在这种情况下,“输出”信号将保持高电平20ns。

我使用的模拟器提供了运行时命令行选项,用于选择3种延迟之一,例如:

+mindelays
+typdelays
+maxdelays

如果使用+maxdelays运行模拟,则“输出”信号将持续40ns高电平。


请注意,output是Verilog中的保留关键字,不能用作信号名称。像out这样的名称将是合法的信号名称。