Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Verilog

Verilog Tijdnotatie

De tijdschaalrichtlijn van Verilog specificeert tijdseenheid en precisie voor simulaties.

Verilog $timeformat systeemfunctie specificeert %t formaatspecificatie rapportagestijl in weergave-instructies zoals $display en $strobe .

Syntaxis

  
  
$timeformat(<unit_number>, <precision>, <suffix_string>, <minimum field width>);

  

  • eenheidsnummer is de kleinste tijdsprecisie van alle `timescale richtlijnen gebruikt in broncode
  • precisie staat voor het aantal fractionele cijfers voor de huidige tijdschaal
  • suffix_string is een optie om de schaal naast de realtime waarden weer te geven

Eenheidsnummer Tijdseenheid
-3 1ms
-6 1us
-9 1ns
-12 1ps
-15 1fs

Voorbeeld #1:1ns/1ps

Hier is een voorbeeld van hoe $timeformat beïnvloedt het formaat van de weergave van tijdseenheden.

  
  
`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

  
Simulatielogboek
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.

Voorbeeld #2:1ns/100ps

Hier is hetzelfde voorbeeld van hierboven met een andere tijdschaal.

  
  
`timescale 1ns/100ps

  
Simulatielogboek
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.

Voorbeeld #3:100ns/1ns

  
  
`timescale 100ns/1ns

  

#1 staat voor 100ns en dus #10 levert 1000ns op

Simulatielogboek
xcelium> 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

  1. Verilog-zelfstudie
  2. Verilog-aaneenschakeling
  3. Verilog-opdrachten
  4. Verilog blokkeren en niet-blokkeren
  5. Verilog-functies
  6. Verilog-taak
  7. Voorbeelden van Verilog Gate-niveaus
  8. Verilog-klokgenerator
  9. Verilog wiskundige functies
  10. Verilog Tijdschaalbereik
  11. Verilog File IO-bewerkingen