Ana içeriğe geç

Gecikme Kontrolleri

· loading · loading · · ·
HDL Verilog HDL
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
Verilog HDL Serisi - This article is part of a series.
Part 15: This Article

⏱️ Gecikme Kontrolleri (Delay Controls)
#

Gecikme kontrolleri, zamana bağlı veya olaya bağlı davranışları simüle etmek için kullanılır. Bu yapılar genellikle sadece testbench’lerde veya sentezlenemez kodlar içinde kullanılır.

🔹 #delay — Zaman Gecikmesi (sadece simülasyon için)
#

#10 a = 1;  // 10 zaman birimi bekle, sonra ata

RTL tasarımlarda # gecikmesi kullanmayın — sentez sırasında hata verir.


🔹 @event — Olay Tabanlı Kontrol
#

@(posedge clk) q = d;   // clk yükselen kenarına kadar bekle
@(a or b) out = a & b;  // 'a' veya 'b' değişene kadar bekle

🔹 wait — Bloklayıcı Bekleme Komutu
#

wait komutu, belirtilen koşul doğru olana kadar yürütmeyi duraklatır.

wait (ready == 1);   // 'ready' sinyali 1 olana kadar bekle
a = data_in;         // Daha sonra ata

🔹 Birleşik Kullanım Örneği
#

always @(posedge clk) begin
  wait (ready);       // 'ready' sinyali 1 olana kadar bekle
  a = temp;           // Ardından 'temp' değerini 'a'ya ata
end

repeat ile intra-assignment ve normal delay farkı
#

Yazım Şekli Anlamı
a = repeat(3) @(posedge clk) b; b değeri hemen alınır, sonra 3 pozitif kenar beklenir, a‘ya atanır.
repeat(3) @(posedge clk); a = b; 3 pozitif kenar beklenir, sonra o andaki b değeri a‘ya atanır.

🎯 Fark: İlki b‘yi başta alır, ikincisi gecikmeden sonra alır.


Verilog HDL Serisi - This article is part of a series.
Part 15: This Article

Related

Blocking ve Non-Blocking Atamalar
· loading · loading
HDL Verilog HDL
Derleyici Yönergeleri ve Makrolar
· loading · loading
HDL Verilog HDL
Görev (Task) ve Fonksiyon (Function)
· loading · loading
HDL Verilog HDL
Hiyerarşik Referans
· loading · loading
HDL Verilog HDL
Komut Satırı Girdisi
· loading · loading
HDL Verilog HDL
Kontrol Akışı
· loading · loading
HDL Verilog HDL