Verilog HDL门时延

时间:2007-04-29
可以使用门时延定义门从任何输入到其输出的信号传输时延。门时延可以在门自身实例语句中定义。带有时延定义的门实例语句的语法如下:

gate_type [delay][instance_name](terminal_list);

时延规定了门时延,即从门的任意输入到输出的传输时延。当没有强调门时延时,缺省的时延值为0。
  门时延由三类时延值组成:
  1) 上升时延
  2) 下降时延
  3) 截止时延
  门时延定义可以包含0个、1个、2个或3个时延值。下表为不同个数时延值说明条件下,各种具体的时延取值情形。

无时延 1个时延(d) 2个时延(d1, d2) 3个时延 (dA, dB, dC)
上升 0 d d1 dA
下降 0 d d2 dB
to_x 0 d min① (d1, d2) min (dA, dB, dC)
截止 0 d min (d1, d2) dC
① min 是minimum 的缩写词。
  注意转换到x的时延(to_x)不但被显式地定义,还可以通过其它定义的值决定。
  下面是一些具体实例。注意Verilog HDL模型中的所有时延都以单位时间表示。单位时间与实际时间的关联可以通过`timescale编译器指令实现。在下面的实例中,

not N1 (Qbar, Q);

因为没有定义时延,门时延为0。下面的门实例中,

nand #6 (Out, In1, In2);

所有时延均为6,即上升时延和下降时延都是6。因为输出决不会是高阻态,截止时延不适用于与非门。转换到x的时延也是6。

and #(3,5) (Out, In1, In2, In3);

在这个实例中,上升时延被定义为3,下降时延为5,转换到x的时延是3和5中间的值,即3。在下面的实例中,

notif1 #(2,8,6) (Dout, Din1, Din2);

上升时延为2,下降时延为8,截止时延为6,转换到x的时延是2、8和6中的值,即2。
  对多输入门(例如与门和非门)和多输出门(缓冲门和非门)总共只能够定义2个时延(因为输出决不会是z)。三态门共有3个时延,并且上拉、下拉电阻实例门不能有任何时延。

min:typ:max时延形式

门延迟也可采用min:typ:max形式定义。形式如下:

minimum: typical: maximum

  值、典型值和值必须是常数表达式。下面是在实例中使用这种形式的实例。

nand #(2:3:4, 5:6:7) (Pout, Pin1, Pin2);

选择使用哪种时延通常作为模拟运行中的一个选项。例如,如果执行时延模拟,与非门单元使用上升时延4和下降时延7。
  程序块也能够定义门时延。


  
上一篇:Verilog HDL实例数组
下一篇:Verilog HDL双向开关

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料