Menu
Coddy logo textTech

Gate Delays

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 68 / 90.

Önceki derste, #10 a = b; gibi kullanılan genel gecikmeleri ele aldık. Bunlar bir ifadeyi yürütmeden önce bekler.

Bu derste, kapı gecikmelerini ele alıyoruz; bunlar and, or ve not gibi yerleşik kapı temellerine özgüdür. Bir kapı gecikmesi, girişleri değiştikten sonra bir donanım kapısının çıkış üretmesinin ne kadar sürdüğünü modeller.

Gerçek donanımda, kapılar anında tepki vermez. Küçük bir gecikme vardır. Yerleşik kapı ilkellerini kullandığınızda, kapının yayılma süresini simüle etmek için bir delay ekleyebilirsiniz. Çıktı yalnızca belirtilen delay sonrasında değişir.

Genel Gecikme ile gate Gecikmesi Arasındaki Fark

 Genel Gecikmegate Gecikmesi
Sözdizimi#10 a = b;and #5 (out, a, b);
KonumBir ifadenin önünde #gate ilkelinin içinde #
AmaçYürütmeden önce beklemekgate yayılma süresini modellemek

Sözdizimi:

gate_type #(delay) (output, input1, input2, ...);

#(delay), gate'in yanıt vermesinin kaç time birimi sürdüğünü belirtir.

Basit Örnek

and #5 (out, a, b);

Bu AND kapısının, a veya b değiştikten sonra output değerini değiştirmesi 5 time unit sürer.

Birden Fazla Girişle Gate Gecikmesi

nand #8 (out, a, b, c, d);   // 8 zaman birimi gecikmeli 4-girişli NAND

Önemli Kurallar

KuralAçıklama
delay, gate adından sonra gelirand #5 (out, a, b)
delay değeri time unit cinsindendirtimescale yönergesine dayanır
Tüm inputs output'u etkilerHerhangi bir input değişikliği delay'i tetikler
Sentezlenemezgate delay'leri yalnızca simülasyon içindir
challenge icon

Görev

Add eksik gate delay'lerini bu module'e ekle. Her gate için farklı delay kullan.

Yapılacaklar:

  1. AND gate: 5 time unit delay
  2. OR gate: 3 time unit delay
  3. NOT gate: 2 time unit delay

Kendin dene

module gate_delay_challenge;
  reg a, b;
  wire and_out, or_out, not_out;
  
  // TODO: 5 zaman birimi gecikmeli AND kapısı ekle (girişler a, b)
  
  // TODO: 3 zaman birimi gecikmeli OR kapısı ekle (girişler a, b)
  
  // TODO: 2 zaman birimi gecikmeli NOT kapısı ekle (giriş a)
  

  initial begin
    $monitor("Time %0t: a=%b, b=%b | and=%b, or=%b, not=%b", 
              $time, a, b, and_out, or_out, not_out);
    
    a = 1; b = 1;
    #10 $finish;
  end
endmodule
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi