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 loop, her yinelemeden önce bir condition kontrol eder. Eğer condition true ise, loop çalışır. False ise, loop 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 - For Döngüsü

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

Testbench'lerde While Loop

While loop'lar, tam olarak kaç yinelemeye ihtiyacınız olduğunu bilmediğinizde kullanışlıdır:

integer i = 0;

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

Finding a Specific Value

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
condition yanlış (false) olmalıdırAksi takdirde sonsuz loop oluşur
Döngü değişkenini Inside güncelleyinAksi takdirde loop asla bitmez
Döngü 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
challenge icon

Görev

Ne yapılmalı:

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

Kendin dene

module while_challenge;
  integer i;
  
  initial begin
    i = 0;
    $display("Printing 0 to 2:");
    
    // TODO: while döngüsü ekle
    // i < 3 iken döngü
    // İçeride, i'yi yazdır
    // i'yi 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