Menu
CoddyTech

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 alacağız. Bunlar, and, or ve not gibi yerleşik kapı ilkellerine özgüdür. Bir kapı gecikmesi, girişleri değiştikten sonra bir donanım kapısının çıktı ü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ığında, kapının yayılma süresini benzetmek için bir gecikme ekleyebilirsin. Çıkış yalnızca belirtilen gecikmeden sonra 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ın değişmesi 5 zaman birimi sürer.

Birden Fazla Girişle 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 birimleri cinsindendirtimescale yönergesine bağlıdır
Tüm girişler çıkışı etkilerHerhangi bir girişteki değişiklik çıkışı değiştirebilir, ancak yalnızca gecikmeden sonra
SentezlenemezKapı gecikmeleri yalnızca simülasyon içindir
challenge icon

Görev

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

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