`timescale是Verilog HDL
`timescale编译器指令格式为:
注意:用于说明仿真时间单位和时间精度的 数字只能是1、10、100,不能为其它的数字。而且,时间精度不能比时间单位还要大。最多两则一样大。比如:下面定义都是对的:
`timescale
`timescale
下面的定义是错的:
`timescale
时间精度就是模块仿真时间和延时的精确程序,比如:定义时间精度为10ns, 那么时序中所有的延时至多能精确到10ns,而8ns或者18ns是不可能做到的。
下面举个简单的例子说明一下:
`timescale 100ns / 10ns
module muti_delay(
Endmodule
它的仿真波形如下:
我们可以看到,本意是 要延时100*3.14=314ns后将din
如果没有指定timescale,或者 timeunit 那么整个环境会用default的值,(VCS 好像是秒 s), 如果你在code中使用了
- ......
- #1ns;
- ......
对不起,这一纳秒的delay被完全忽略了。 因为1ns小于timescale的精度, 所以被忽略为零。
因此个人以为应该
1) 指定timescale
2) 尽量用不带单位的delay