Menu
Coddy logo textTech

Kapı Gecikmeleri

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

Önceki derste, #10 a = b; şeklinde kullanılan ve bir deyimi çalıştırmadan önce bekleyen genel gecikmeleri (general delays) ele almıştık.

Bu derste, and, or ve not gibi yerleşik kapı temellerine özgü olan kapı gecikmelerini (gate delays) ele alıyoruz. Bir kapı gecikmesi, donanım kapısının girdileri değiştikten sonra çıkış üretmesinin ne kadar sürdüğünü modeller.

Gerçek donanımda kapılar anında yanıt vermez; küçük bir gecikme vardır. Yerleşik kapı ilkel öğelerini kullandığınızda, kapının yayılma süresini simüle etmek için bir delay ekleyebilirsiniz. output yalnızca belirtilen delay süresinden sonra değişir.

General Delay ve Gate Delay Arasındaki Fark

 General DelayGate Delay
Syntax#10 a = b;and #5 (out, a, b);
PositionBir ifadeden önce #Kapı ilkesinin (gate primitive) içinde #
PurposeÇalıştırmadan önce beklemeKapı yayılım süresini modelleme

Sözdizimi:

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

#(delay), kapının yanıt vermesinin kaç zaman birimi süreceğini belirtir.

Basit Örnek

and #5 (out, a, b);

Bu AND kapısının, a veya b değiştikten sonra çıkışını değiştirmesi 5 zaman birimi sürer.

Çoklu inputs ile Gate Delay

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

Önemli Kurallar

KuralAçıklama
Gecikme, kapı adından sonra gelirand #5 (out, a, b)
Zaman birimlerinde gecikme değeritimescale direktifine dayalıdır
Tüm girdiler çıktıyı etkilerHerhangi bir girdi değişikliği gecikmeyi tetikler
SentezlenemezKapı gecikmeleri yalnızca simülasyon içindir
challenge icon

Görev

Bu modüle eksik kapı gecikmelerini ekleyin. Her kapı için farklı gecikmeler kullanın.

Ne yapılmalı:

  1. AND kapısı: 5 zaman birimi gecikmesi
  2. OR kapısı: 3 zaman birimi gecikmesi
  3. NOT kapısı: 2 zaman birimi gecikmesi

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