2014-01-23 24 views
1

IEEE 1800-2009 Systemverilog LRM在p21上说。大胆的部分似乎矛盾。这是什么?IEEE 1800-2009中的矛盾LRM与时间戳

如果一个模块,程序包内没有指定TIMEUNIT被,或 接口定义,则该时间单元应当使用优先级的 以下规则确定:

a)如果所述模块或接口定义是嵌套的,那么时间单位 应该从封闭模块或接口继承(程序 和包不能嵌套)。

b)中否则,如果一个时间刻度`指令已被预先指定 (编译单元内),则该时间单元应当被设置到 单元的最后一个时间刻度`指令。

C)否则,如果编译单元范围指定时间单位(外侧 所有其他声明),则时间单位应当被设置为时间单位 编译单元。

d)否则,应使用默认时间单位。

编译单元范围的时间单位只能由 timeunit声明来设置,而不是`时间片指令。如果不是指定的 ,则应使用默认时间单位。

+0

IEEE Std 1800-2012是最新版本。 – toolic

回答

1

规则a-d指的是模块,程序,软件包或接口中的范围内的。你引用的最后一句话是指那个范围之外的范围。例如

`timescale 1ms/1 ns 

task delay; 
#1; // default time unit 
endtask 
module top; 

initial #1 delay(); // uses `timescale 

endmodule