🔄 Verilog’da Kontrol Akışı Yapıları #
Kontrol akışı yapıları, always
veya initial
blokları içinde koşullu ve ardışıl davranışlar oluşturmak için kullanılır.
✅ Yaygın Yapılar: #
Anahtar Kelime | Açıklama | Örnek |
---|---|---|
if , else |
Koşullu çalıştırma | if (a) y = 1; else y = 0; |
case |
Çoklu duruma göre dallanma | Aşağıya bak ⬇️ |
for |
Sayaçlı döngü | for (i=0; i<4; i++) ... |
while |
Koşul sağlandıkça döngü | while (a != b) ... |
repeat |
Belirli sayıda tekrar | repeat (5) ... |
forever |
Sonsuz döngü (dikkatli kullanılmalı) | forever #10 clk = ~clk; |
🧰 case
Yapısı
#
case
, birden fazla değere göre seçim yapmayı sağlayan sade bir yapıdır.
✅ Temel Söz Dizimi: #
case (sel)
2'b00: y = a;
2'b01: y = b;
2'b10: y = c;
default: y = 1'b0;
endcase
🔹 casex
ve casez
#
casex
:x
vez
değerlerini joker karakter olarak değerlendirircasez
: Sadecez
değerlerini joker olarak kabul eder,x
‘i etmez
🔁 Verilog’da Döngüler #
Döngüler genellikle testbenchlerde, generate bloklarında veya başlatma rutinlerinde kullanılır.
✅ Örnek – for
döngüsü:
#
integer i;
initial begin
for (i = 0; i < 8; i = i + 1)
mem[i] = 0;
end
⚠️ Döngüler sentez sırasında sonlu olmalıdır — RTL içinde sonsuz veya değişken uzunluklu döngülerden kaçınılmalıdır.