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
endBasit Ö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 = 4Döngü, i < 5 olduğu sürece çalışır.
While - For Döngüsü
| For Döngüsü | While Döngüsü | |
|---|---|---|
| Sayaç | Dahili | Siz yönetirsiniz |
| Ne zaman kullanılır | Yineleme sayısı belli olduğunda | Döngünün ne zaman duracağı bilinmediğinde |
| Sözdizimi | for (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;
endFinding 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
| Kural | Açıklama |
|---|---|
condition yanlış (false) olmalıdır | Aksi takdirde sonsuz loop oluşur |
Döngü değişkenini Inside güncelleyin | Aksi takdirde loop asla bitmez |
Döngü değişkeni integer veya reg olmalıdır | wire olamaz |
Birden fazla ifade için begin/end kullanın | Birden fazla satır için gereklidir |
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
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı