Menu
Coddy logo textTech

Kapı Gecikmeleri

Coddy'nin Verilog Journey'sinin Temel Bilgiler 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 Kapı Gecikmesi Arasındaki Fark

 Genel GecikmeKapı Gecikmesi
Sözdizimi#10 a = b;and #5 (out, a, b);
KonumBir ifadeden önce #Kapı ilkelinin içinde #
AmaçYürütmeden önce beklemekKapı yayılma süresini modellemek

Sözdizimi:

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

#(delay), kapının yanıt vermesinin kaç zaman 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 çıkışını değiştirmesi 5 zaman birimi sürer.

Çoklu Girişli Kapı Gecikmesi

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)
Gecikme değeri zaman birimlerindedirtimescale yönergesine dayanır
Tüm girişler çıkışı etkilerHerhangi bir giriş 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.

Yapılacaklar:

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

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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi