Timescale system tasks provide a means of setting and printing timescale information.
$printtimescale [(hierarchical_path)] ;
$timeformat [(unit_number, precision, suffix, min_width )] ;
The $printtimeformat system task is used when information about time units and precision is needed. An argument is optional. When the $printtimescale system task is invoked without an argument, the time unit and precision of the current modules are displayed. If an argument is specified, then the time unit and precision of the module specified is displayed in a hierarchical path. The following format is used to display this information:
Time scale of (module) is unit / precision
The $timeformat system task has double functionality.
First, when any delays are entered interactively, it specifies the time unit. Second, it specifies the %t format specification. These format specifications are used in $display, $fdisplay, $write, $fwrite, $strobe, $fstrobe and $monitor, $fmonitor system tasks.
The first argument of $timeformat system task should be an integer.
Unit |
Time |
Unit |
Time |
0 |
1 s |
-8 |
10 ns |
-1 |
100 ms |
-9 |
1 ns |
-2 |
10 ms |
-10 |
100 ps |
-3 |
1 ms |
-11 |
10 ps |
-4 |
100 us |
-12 |
1 ps |
-5 |
10 us |
-13 |
100 fs |
-6 |
1 us |
-14 |
10 fs |
-7 |
100 ns |
-15 |
1 fs |
Default argument values are given in the following table:
Argument |
Value |
Unit |
The smallest time precision argument of all the `timescale compiler directives in the source description |
Precision |
0 |
Suffix |
Null |
Minimum width |
20 |
Example 1
`timescale 1 ns / 100 ps
module a (y, a, b);
output y;
input a, b;
assign y = a & b;
endmodule
`timescale 1 s / 10 fs
module top;
wire y, a, b;
a u(y, a, b);
initial $printtimescale(top.u);
endmodule
The $timeformat system task specifies the %t format specification until the next `timescale compiler directive occurs.
Powered by IXwebhosting |