Menu
Coddy logo textTech

While Döngüsü

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

while döngüsü, bir koşul doğru olduğu sürece bir kod bloğunu tekrarlar. for döngüsünün aksine, yerleşik bir sayacı yoktur — döngü değişkenini kendiniz güncellemelisiniz.

Bir while döngüsü, her yinelemeden önce bir koşulu kontrol eder. Koşul doğruysa döngü çalışır. Yanlışsa döngü durur.

Sözdizimi:

while (condition) begin
  // Tekrarlanacak kod
end

Basit Örnek

integer i = 0;

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

Çıktı:

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

Döngü, i < 5 olduğu sürece çalışır.

While ve For Döngüsü

 For DöngüsüWhile Döngüsü
SayaçYerleşikSiz yönetirsiniz
Ne zaman kullanılırYineleme sayısı bilindiğindeDöngünün ne zaman duracağı bilinmediğinde
Sözdizimifor (i=0; i<5; i=i+1)while (i < 5)

Testbench'lerde While Döngüsü

While döngüleri, tam olarak kaç yinelemeye ihtiyacınız olduğunu bilmediğiniz durumlarda kullanışlıdır:

integer i = 0;

while (i < 16) begin
  $display("Testing value %d", i);
  i = i + 1;
end

Belirli Bir Değeri Bulma

integer i = 0;
reg [7:0] data;

while (data[i] != 1) begin
  i = i + 1;
end
$display("First 1 found at position %d", i);

Önemli Kurallar

KuralAçıklama
Koşul yanlış (false) olmalıdırAksi takdirde sonsuz döngü oluşur
Döngü değişkenini içeride güncelleyinYoksa döngü asla bitmez
Döngü değişkeni integer olmalıdırreg olamaz
Birden fazla ifade için begin/end kullanınBirden fazla satır için gereklidir
challenge icon

Görev

Yapılacaklar:

0'dan 2'ye kadar olan sayıları yazdırmak için eksik olan while döngüsünü ekleyin.

Kopya kağıdı

while döngüsü, bir koşul doğru olduğu sürece bir kod bloğunu tekrarlar. Döngü değişkenini manuel olarak güncellemeniz gerekir.

integer i = 0;

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

Temel kurallar:

  • Döngü değişkeni integer olmalıdır (reg değil)
  • Sonsuz döngülerden kaçınmak için döngü değişkenini her zaman döngü içinde güncelleyin
  • Birden fazla ifade için begin/end kullanın

While ve For Karşılaştırması: Yineleme sayısı bilindiğinde for kullanın; durma koşulu dinamik olduğunda (örneğin, bir değer ararken) while kullanın.

// Finding first set bit
while (data[i] != 1) begin
  i = i + 1;
end

Kendin dene

module while_challenge;
  integer i;
  
  initial begin
    i = 0;
    $display("Printing 0 to 2:");
    
    // YAPILACAK: while döngüsü ekle
    // i < 3 olduğu sürece döngüyü çalıştır
    // İçeride, i değerini yazdır
    // i değerini 1 artır
    
    $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