Timescale System Tasks
Formal Definition
Timescale system tasks provide a means of setting and printing
timescale information.
Simplified Syntax
$printtimescale
[(hierarchical_path)] ;
$timeformat [(unit_number,
precision, suffix, min_width )] ;
Description
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 |
Examples
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
Important Notes
|