Formato de hora de Verilog
La directiva de escala de tiempo de Verilog especifica la unidad de tiempo y la precisión para las simulaciones.
Verilog $timeformat
función del sistema especifica %t
estilo de informe del especificador de formato en declaraciones de visualización como $display
y $strobe
.
Sintaxis
$timeformat(<unit_number>, <precision>, <suffix_string>, <minimum field width>);
- número_unidad es la precisión de tiempo más pequeña de todas las
`timescale
directivas utilizadas en el código fuente - precisión representa el número de dígitos fraccionarios para la escala de tiempo actual
- cadena_sufijo es una opción para mostrar la escala junto con los valores en tiempo real
Número de unidad | Unidad de tiempo |
---|---|
-3 | 1ms |
-6 | 1us |
-9 | 1ns |
-12 | 1ps |
-15 | 1fs |
Ejemplo #1:1ns/1ps
Este es un ejemplo de cómo $timeformat
afecta el formato de visualización de la unidad de tiempo.
`timescale 1ns/1ps
module tb;
bit a;
initial begin
// Wait for some time - note that because precision is 1/1000 of
// the main scale (1ns), this delay will be truncated by the 3rd
// position
#10.512351;
// Display current time with default timeformat parameters
$display("[T=%0t] a=%0b", $realtime, a);
// Change timeformat parameters and display again
$timeformat(-9, 2, " ns");
$display("[T=%0t] a=%0b", $realtime, a);
// Remove the space in suffix, and extend fractional digits to 5
$timeformat(-9, 5, "ns");
$display("[T=%0t] a=%0b", $realtime, a);
// Here suffix is wrong, it should not be "ns" because we are
// setting display in "ps" (-12)
$timeformat(-12, 3, " ns");
$display("[T=%0t] a=%0b", $realtime, a);
// Correct the suffix to ps
$timeformat(-12, 2, " ps");
$display("[T=%0t] a=%0b", $realtime, a);
end
endmodule
Registro de simulación xcelium> run [T=10512] a=0 [T=10.51 ns] a=0 [T=10.51200ns] a=0 [T=10512.000 ns] a=0 [T=10512.00 ps] a=0 xmsim: *W,RNQUIE: Simulation is complete.
Ejemplo #2:1ns/100ps
Aquí está el mismo ejemplo de arriba con una escala de tiempo diferente.
`timescale 1ns/100ps
Registro de simulación xcelium> run [T=105] a=0 [T=10.50 ns] a=0 [T=10.50000ns] a=0 [T=10500.000 ns] a=0 [T=10500.00 ps] a=0 xmsim: *W,RNQUIE: Simulation is complete.
Ejemplo #3:100ns/1ns
`timescale 100ns/1ns
#1 representa 100ns y por lo tanto #10 produce 1000ns
Registro de simulaciónxcelium> run [T=1051] a=0 [T=1051.00 ns] a=0 [T=1051.00000ns] a=0 [T=1051000.000 ns] a=0 [T=1051000.00 ps] a=0 xmsim: *W,RNQUIE: Simulation is complete.
Verilog
- Tutorial de Verilog
- Concatenación Verilog
- Asignaciones de Verilog
- Bloqueo y no bloqueo de Verilog
- Funciones de Verilog
- Tarea Verilog
- Ejemplos de nivel de puerta de Verilog
- Generador de reloj Verilog
- Funciones matemáticas de Verilog
- Alcance de la escala de tiempo de Verilog
- Operaciones de E/S de archivos de Verilog