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 Gate-vertraging

Digitale elementen zijn binaire entiteiten en kunnen alleen een van de twee waarden bevatten - 0 en 1. De overgang van 0 naar 1 en 1 naar 0 heeft echter een overgangsvertraging en dat geldt ook voor elk poortelement om de waarde van invoer naar zijn uitvoer te verspreiden.

Een EN-poort met twee ingangen moet bijvoorbeeld de uitgang naar 1 schakelen als beide ingangen 1 worden en terug naar 0 wanneer een van de ingangen 0 wordt. Deze poort- en pin-naar-pin-vertragingen kunnen in Verilog worden gespecificeerd bij het instantiëren van logische primitieven.

Rijg-, val- en uitschakelvertragingen

De tijd die de uitgang van een poort nodig heeft om van een bepaalde waarde in 1 te veranderen, wordt een stijging genoemd vertraging. De tijd die de uitgang van een poort nodig heeft om van een waarde in 0 te veranderen, wordt een val genoemd. vertraging. De tijd die de uitgang van een poort nodig heeft om van een bepaalde waarde naar een hoge impedantie te veranderen, wordt uitschakeling genoemd. vertraging.

Deze vertragingen zijn eigenlijk van toepassing op elk signaal, omdat ze allemaal op elk moment kunnen stijgen of dalen in echte circuits en niet beperkt zijn tot alleen uitgangen van poorten. Er zijn drie manieren om poortvertragingen weer te geven en het twee vertragingsformaat kan worden toegepast op de meeste primitieven waarvan de uitgangen niet overgaan naar hoge impedantie. Een formaat met drie vertragingen kan niet worden toegepast op een EN-poort, omdat de uitvoer voor geen enkele invoercombinatie naar Z gaat.

  
  
// Single delay specified - used for all three types of transition delays
or #(<delay>) o1 (out, a, b);

// Two delays specified - used for Rise and Fall transitions
or #(<rise>, <fall>) o1 (out, a, b);

// Three delays specified - used for Rise, Fall and Turn-off transitions
or #(<rise>, <fall>, <turn_off>) o1 (out, a, b);

  

Als er slechts één vertraging is opgegeven, gebruiken alle drie typen vertragingen dezelfde gegeven waarde. Als er twee vertragingen zijn opgegeven, staat de eerste voor stijging en de tweede staat voor herfst vertraging. Als er drie vertragingen zijn opgegeven, vertegenwoordigen deze stijging , val en uitschakelen respectievelijk vertragingen.

Formaat met één vertraging

  
  
module des (	input 	a, b,
            	output out1, out2);

	// AND gate has 2 time unit gate delay
  and 		#(2) o1 (out1, a, b);
  
  // BUFIF0 gate has 3 time unit gate delay
  bufif0 	#(3) b1 (out2, a, b);
  
endmodule

  
  
  
module tb;
  reg a, b;
  wire out1, out2;
  
  des d0 (.out1(out1), .out2(out2), .a(a), .b(b));
  
  initial begin
    {a, b} <= 0;
    
    $monitor ("T=%0t a=%0b b=%0b and=%0b bufif0=%0b", $time, a, b, out1, out2);
    
    #10 a <= 1;
    #10 b <= 1;
    #10 a <= 0;
    #10 b <= 0;
  end
endmodule

  

Zie dat de uitvoer van AND poorten veranderen 2 tijdseenheden nadat een van zijn ingangen verandert. b wordt bijvoorbeeld 1 terwijl a al 1 is bij T=20. Maar de output wordt pas 1 bij T=22. Op dezelfde manier gaat a terug naar nul bij T=30 en krijgt de uitvoer de nieuwe waarde bij T=32.

Gate-vertraging is gespecificeerd als 3 tijdseenheden voor BUFIF0 en dus wanneer b verandert van 0 naar 1 terwijl a al op 1 staat, duurt het 3 tijdseenheden voordat de uitvoer wordt bijgewerkt naar Z en doet dit uiteindelijk bij T=23.

Simulatielogboek
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=2 a=0 b=0 and=0 bufif0=x
T=3 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=13 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=23 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=32 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=43 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Formaat met twee vertragingen

Laten we dezelfde hierboven getoonde testbank toepassen op een ander Verilog-model dat hieronder wordt getoond, waar stijgen en vallen vertragingen worden expliciet vermeld.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(4, 5) b1 (out2, a, b);
  
endmodule

  
Simulatielogboek
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=5 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=14 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=24 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=45 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Indeling met drie vertragingen

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2, 3) o1 (out1, a, b);
  bufif0 #(5, 6, 7) b1 (out2, a, b);
  
endmodule

  
Simulatielogboek
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=3 a=0 b=0 and=0 bufif0=x
T=6 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=15 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=22 a=1 b=1 and=1 bufif0=1
T=27 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=33 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=46 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.

Min/Typ/Max vertragingen

Vertragingen zijn niet hetzelfde in verschillende delen van de gefabriceerde chip en ook niet voor verschillende temperaturen en andere variaties. Dus Verilog biedt ook een extra niveau van controle voor elk van de bovengenoemde vertragingstypen. Elke digitale poort- en transistorcel heeft een minimale, typische en maximale vertraging die is gespecificeerd op basis van het procesknooppunt en wordt meestal geleverd door bibliotheken van de fabricagegieterij.

Voor elk type vertraging - stijgen, dalen en uitschakelen - drie waarden min , typ en max kan worden gespecificeerd en staat voor minimale, typische en maximale vertragingen.

  
  
module des (	input 	a, b,
            	output out1, out2);

  and #(2:3:4, 3:4:5) o1 (out1, a, b);
  bufif0 #(5:6:7, 6:7:8, 7:8:9) b1 (out2, a, b);
  
endmodule

  
Simulatielogboek
ncsim> run
T=0 a=0 b=0 and=x bufif0=x
T=4 a=0 b=0 and=0 bufif0=x
T=7 a=0 b=0 and=0 bufif0=0
T=10 a=1 b=0 and=0 bufif0=0
T=16 a=1 b=0 and=0 bufif0=1
T=20 a=1 b=1 and=0 bufif0=1
T=23 a=1 b=1 and=1 bufif0=1
T=28 a=1 b=1 and=1 bufif0=z
T=30 a=0 b=1 and=1 bufif0=z
T=34 a=0 b=1 and=0 bufif0=z
T=40 a=0 b=0 and=0 bufif0=z
T=47 a=0 b=0 and=0 bufif0=0
ncsim: *W,RNQUIE: Simulation is complete.


Verilog

  1. Verilog-zelfstudie
  2. Verilog-aaneenschakeling
  3. Verilog-opdrachten
  4. Verilog blokkeren en niet-blokkeren
  5. Verilog-vertragingsregeling
  6. Verilog Inter- en intratoewijzingsvertraging
  7. Modellering op poortniveau
  8. Voorbeelden van Verilog Gate-niveaus
  9. Verilog-klokgenerator
  10. Verilog wiskundige functies
  11. Verilog Tijdnotatie