本想在上一小节中写一写,但是这个模块真的太容易出错了。所以就专门把它列了出来,时刻谨记!!!本文分为#200和#200ns两种时间的延迟方式,逐一进行简单的分析。
#200
对于这种时间延迟,正如上一节讲述的那样,没有-unit_timescale选项时,无论是否存在关键字timeunit / timeprecision,都使用最后一个被使用的`timescale指定的时间单位/精度。直接使用默认时间单位/精度也是1ns/1ps。转换过程如下:200x1ns=200000ps.
#200ns
- 对于这种情况的延时,分成两部分进行处理。第一步:它首先根据#200ns之前,离它最近的`timescale进行一次转换(如果在此之前没出现过timescale,则使用-timescale),在本例子中,离它最近的timescale是timescale 100ps/1ps.转换过程如下:200ns/100ps=2000.
- 再使用默认的`timescale进行第二次转换。本例中,默认的timescale 1ns/1ps,转换过程如下:2000x1ns=2000000ps.