Gecikmeler Nedir
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 67 / 90.
Verilog'da, gecikmeler bir ifadenin ne zaman yürütüleceğini veya bir sinyalin ne zaman değişeceğini kontrol eder. Gerçek donanım zamanlama davranışını modellemek için kullanılırlar.
Gecikmelere Neden İhtiyaç Duyulur
Gerçek donanımda sinyallerin kablolar ve kapılar üzerinden iletilmesi zaman alır. Gecikmeler, bu zamanlama davranışını simüle etmenize olanak tanır.
- Simülasyonda, gecikmeler olmadan her şey 0 anında gerçekleşir
- Gecikmeler, olayları zamana yaymanıza olanak tanır
- Saatler ve durum makineleri gibi zamanlamaya duyarlı tasarımları test etmeye yardımcı olurlar
Gecikme Türleri
| Gecikme Türü | Amaç |
|---|---|
| Kapı Gecikmeleri | Mantık kapıları üzerinden gecikme |
| Atama Gecikmeleri | Değer atarken oluşan gecikme |
| Zaman Ölçeği Yönergesi | Simülasyon için zaman birimlerini ayarlar |
Temel Sözdizimi
Gecikme, # işaretinden sonra bir sayı gelmesiyle yazılır:
#10 clk = ~clk; // 10 zaman birimi bekle, ardından saati tersle
#5 a = b; // 5 zaman birimi bekle, ardından a = b atamasını yap# işaretinden sonraki sayı, beklenecek zaman birimi sayısıdır.
Basit Örnek
initial begin
a = 0;
#10 a = 1; // 10 zaman birimi sonra, a 1 olur
#5 a = 0; // Bir 5 zaman birimi daha sonra, a 0 olur
endZamanlama:
- Zaman 0:
a = 0 - Zaman 10:
a = 1 - Zaman 15:
a = 0
Always Bloklarında Gecikmeler
always #5 clk = ~clk; // Saati her 5 zaman biriminde bir tersleBu, sürekli bir saat sinyali oluşturur.
Önemli Kurallar
| Kural | Açıklama |
|---|---|
# sembolü | Bir gecikmeyi işaretler |
# işaretinden sonraki sayı | Kaç zaman birimi bekleneceği |
| Gecikmeler kümülatiftir | #10 ardından #20 toplam 30 bekler |
| Sentezlenemez | Gecikmeler yalnızca simülasyon içindir |
Görev
Ne yapmalı:
Bu kodun 0, 10, 25 ve 40 zamanlarında mesajlar yazdırmasını sağlamak için eksik gecikmeleri (delays) ekleyin.
Kopya kağıdı
Verilog'da, gecikmeler ifadelerin ne zaman yürütüleceğini kontrol etmek için # ve ardından gelen zaman birimlerini kullanır:
#10 a = 1; // 10 zaman birimi bekle, sonra ataGecikmeler birikimlidir — her gecikme mevcut zamana eklenir:
initial begin
a = 0; // Zaman 0
#10 a = 1; // Zaman 10
#5 a = 0; // Zaman 15
endSaat sinyalleri üretmek için always bloklarında kullanın:
always #5 clk = ~clk; // Her 5 birimde bir tersleNot: Gecikmeler yalnızca simülasyon içindir — sentezlenemez.
Kendin dene
module delay_challenge;
initial begin
$display("Time %0t: Start", $time);
// TODO: 10 zamanına ulaşmak için gecikme ekle
$display("Time %0t: After first delay", $time);
// TODO: 25 zamanına ulaşmak için gecikme ekle
$display("Time %0t: After second delay", $time);
// TODO: 40 zamanına ulaşmak için gecikme ekle
$display("Time %0t: End", $time);
$finish;
end
endmodule
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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı13Zamanlama ve Gecikmeler
Gecikmeler NedirKapı GecikmeleriAtama GecikmeleriTimescale DirektifiClock ÜretimiÖzet - Zamanlama Kontrolü5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı