Ana içeriğe geç

Verilog Blocking vs. Non-Blocking Atamalar

· loading · loading · ·
Kerim Turak
Donanım Tasarımı Verilog Atamaları Blocking Atama NonBlocking Atama RTL Tasarımı Sıralı Mantık
Donanım Tasarımı
Yazar
Kerim Turak
Digital IC Design & Verification Engineer
Table of Contents
Verilog HDL Serisi - This article is part of a series.
Part 10: This Article

⛓️ Verilog’da Blocking ve Non-Blocking Atamalar
#

Verilog, always veya initial blokları içinde iki tür işlemsel (procedural) atama sağlar:


➡️ Blocking Atama (=)
#

  • Anında ve sıralı olarak çalışır
  • Her satır, tamamlanmadan bir sonrakine geçilmesini engeller
  • Genellikle kombinasyonel mantıkta kullanılır

✅ Örnek:
#

always @(*) begin
  a = b;
  c = a;  // güncellenmiş 'a' kullanılır
end

Böyle düşün: Normal programlama dillerindeki gibi adım adım ilerleyen atamalar.


Non-Blocking Atama (<=)
#

  • Atamayı planlar — hemen gerçekleşmez
  • Tüm sağ taraflar önce değerlendirilir, ardından sol taraflar güncellenir
  • Ardışıl (saatle çalışan) mantıkta kullanılır

✅ Örnek:
#

always @(posedge clk) begin
  a <= b;
  c <= a;  // 'a' henüz güncellenmedi, eski değeri kullanır
end

Böyle düşün: Flip-flop davranışı gibi — değerler saat döngüsünün sonunda güncellenir.


🧠 En İyi Uygulama
#

BağlamTercih Edilen Atama
Kombinasyonel mantık (always @(*))= (blocking)
Ardışıl mantık (always @(posedge clk))<= (non-blocking)

❗ Aynı always bloğu içinde = ve <= asla karıştırılmamalı — bu, karmaşık ve hatalı simülasyon sonuçlarına yol açabilir.


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

Related

Verilog Atamaları: Prosedürel ve Sürekli Atama Farkları
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Atamaları Sürekli Atama Prosedürel Atama RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı
Verilog Ad Alanları: Kapsam ve Modülerliği Anlamak
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Ad Alanı Verilog Kapsam Modülerlik RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı
Donanım Tasarımında Soyutlama Seviyeleri
·208 kelime·1 dk· loading · loading
Kerim Turak
Donanım Tasarımı Donanım Soyutlama RTL Tasarımı Kapı Seviyesi Transistör Seviyesi Dijital Tasarım
Donanım Tasarımı
Verilog Kontrol Akışı: if, case, Döngüler ve RTL Kuralları
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Kontrol Akışı Verilog If-Else Verilog Case Verilog Döngüler RTL Tasarımı
Donanım Tasarımı
Verilog Parametreleri: Modülleri Yeniden Kullanılabilir ve Yapılandırılabilir Kılmak
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Parametreleri Yeniden Kullanılabilir Tasarım Yapılandırılabilir Modüller RTL Tasarımı Donanım Tanımlama Dili
Donanım Tasarımı
Verilog Sentezi: RTL'den Kapı Seviyesi Netlist'e
· loading · loading
Kerim Turak
Donanım Tasarımı Verilog Sentez RTL Tasarımı Kapı Seviyesi Netlist FPGA Tasarım ASIC Tasarım
Donanım Tasarımı