Menu
Coddy logo textTech

For Loop

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 58 / 90.

Verilog'daki döngüler, bir kod bloğunu birden çok kez çalıştırmanıza olanak tanır. Tekrarlayan test desenleri oluşturmak, memory'yi başlatmak ve diziler üzerinde yineleme yapmak için özellikle testbench'lerde kullanışlıdır. Paralel olarak çalışan donanım açıklamalarının aksine, döngüler sırayla yürütülür; bu da onları simülasyon ve test için ideal kılar.

En yaygın kullanılan döngü, belirli bir sayıda tekrarlanan <strong>for</strong> döngüsüdür. Bir for döngüsü, her yinelemede değişen bir döngü değişkeniyle birlikte bir kod bloğunu tekrar tekrar çalıştırır. Tam olarak kaç kez çalışacağını siz kontrol edersiniz.

Sözdizimi:

for (initialization; condition; increment) begin
  // Tekrarlanacak kod
end
ParçaNe YaparÖrnek
initializationBaşlangıç değerini belirleri = 0
conditionNe zaman duracağını belirleri < 10
incrementHer loop'ta değişiri = i + 1

Basit Örnek

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

Çıktı:

i = 0
i = 1
i = 2
i = 3
i = 4

loop 5 kez çalışır (i = 0, 1, 2, 3, 4).

Testbench'lerde For Döngüsü

For döngüleri, tüm giriş kombinasyonlarını test etmek için yaygın olarak kullanılır:

integer test_value;

for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
  $display("test_value = %d", test_value);
end

Bu, 4 bitlik bir sinyalin olası 16 değerinin tümünü test eder.

Dizilerle For Döngüsü

reg [7:0] memory [0:9];
integer i;

initial begin
  for (i = 0; i < 10; i = i + 1) begin
    memory[i] = i * 8;
  end
end

Bu, 10 bellek konumunu başlatır.

Önemli Kurallar

KuralAçıklama
Loop değişkeni integer veya reg  olmalıdırwire olamaz
Birden fazla ifade için begin/end kullanınBirden fazla satır için gereklidir
Sonsuz Loop'lardan kaçınıncondition değerinin sonunda false olduğundan emin olun
En iyi testbench'lerde kullanılırLoop'ların çoğu sentezlenebilir değildir
challenge icon

Görev

Yapılacaklar:

0'dan 3'e kadar olan sayıları yazdırmak için eksik for döngüsünü ekleyin.

Kendin dene

module for_challenge;
  integer i;
  
  initial begin
    $display("Printing 0 to 3:");
    
    // TODO: for döngüsü ekle
    // i = 0 olarak başlat
    // i < 4 iken döngü yap
    // i = i + 1 olarak artır
    // İçeride şununla yazdır: $display("i = %d", i);
    
    $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.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi