1 `timescale
1.1 简介
timescale
指令用于指定编译器在处理仿真时的时间单位和时间精度。这个指令通常在模块的顶层声明中使用,它告诉编译器和仿真器如何解释代码中的时间值。
timescale
指令的语法如下:
`timescale <time_unit> <time_precision>
-
<time_unit>
:这是仿真中使用的时间单位,通常以纳秒(ns)或微秒(us)为单位。例如,如果设置为1ns,那么仿真器会将代码中的1单位时间解释为1纳秒。 -
<time_precision>
:这是仿真器在处理时间值时的精度。它定义了仿真器在计算和比较时间值时使用的小数点后的位数。例如,如果设置为1ps,那么仿真器会将时间值计算到皮秒(ps)的精度。
一个典型的timescale
指令可能如下所示:
`timescale 1ns / 1ps
这表示仿真器将使用1纳秒作为时间单位,并且时间精度为1皮秒。这意味着仿真器在处理时间值时会考虑到1皮秒的精度。
1.2 例子
下面看一个简单的例子来了解下`timescale的使用方法:
`timescale 10ns/1ns //单位10ns,精度1ns
module testbench;
reg set;
localparam d = 1.8;
initial begin
#1 set = 0; //1*10 ns = 10ns
#d set = 1; //1.8*10ns = 18ns
end
endmodule</