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
- The $timeformat system task specifies the %t format specification until the next `timescale compiler directive occurs.
initial $timeformat(-9, 5, " ns", 10);
/* $timeformat [ ( n, p, suffix , min_field_width ) ] ;
units = 1 second ** (-n), n = 0->15, e.g. for n = 9, units = ns
p = digits after decimal point for %t e.g. p = 5 gives 0.00000
suffix for %t (despite timescale directive)
min_field_width is number of character positions for %t */
No comments:
Post a Comment
Please provide valuable comments and suggestions for our motivation. Feel free to write down any query if you have regarding this post.