Menu
Coddy logo textTech

For Döngüsü

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

Verilog'deki döngüler, bir kod bloğunu birden çok kez yürütmenizi sağlar. Tekrarlayan test desenleri oluşturmak, belleği başlatmak ve diziler üzerinde yineleme yapmak için test tezgâhlarında özellikle kullanışlıdır. Paralel olarak çalışan donanım açıklamalarının aksine, döngüler sıralı olarak yürütülür; bu da onları benzetim 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
KısımNe YaparÖrnek
initializationBaşlangıç değerini ayarlari = 0
conditionNe zaman durdurulacağını belirleri < 10
incrementHer döngüde 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

Döngü 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
Döngü değişkeni integer veya reg olmalıdır wire olamaz
Birden çok ifade için begin/end kullanınBirden fazla satır için gereklidir
Sonsuz döngülerden kaçınınKoşulun sonunda false olduğundan emin olun
En iyi testbench'lerde kullanılırDöngülerin ç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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi