While loop
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 59 dari 90.
Perulangan while mengulang blok kode selama kondisi bernilai true. Berbeda dengan for loop, perulangan ini tidak memiliki penghitung bawaan. Kamu harus memperbarui variabel perulangan sendiri.
Perulangan while memeriksa kondisi sebelum setiap iterasi. Jika kondisi bernilai benar, perulangan dijalankan. Jika salah, perulangan berhenti.
Sintaks:
while (condition) begin
// Kode yang diulang
endContoh Sederhana
integer i = 0;
while (i < 5) begin
$display("i = %d", i);
i = i + 1;
endOutput:
i = 0
i = 1
i = 2
i = 3
i = 4Perulangan berjalan selama i < 5.
While Loop vs For Loop
| For Loop | While Loop | |
|---|---|---|
| Penghitung | Bawaan | Kamu mengelolanya |
| Kapan digunakan | Jumlah iterasi diketahui | Waktu perulangan berhenti tidak diketahui |
| Sintaks | for (i=0; i<5; i=i+1) | while (i < 5) |
While loop di testbench
While loop berguna saat kamu tidak tahu persis berapa banyak iterasi yang diperlukan:
integer i = 0;
while (i < 16) begin
$display("Testing value %d", i);
i = i + 1;
endMenemukan Nilai Tertentu
integer i = 0;
reg [7:0] data;
while (data[i] != 1) begin
i = i + 1;
end
$display("First 1 found at position %d", i);Aturan Penting
| Aturan | Penjelasan |
|---|---|
| Kondisi harus menjadi false | Jika tidak, perulangan tidak akan berhenti |
| Perbarui variabel perulangan di dalamnya | Jika tidak, perulangan tidak akan pernah berakhir |
Variabel perulangan harus berupa integer atau reg | Tidak boleh berupa wire |
Gunakan begin/end untuk beberapa pernyataan | Wajib digunakan untuk lebih dari satu baris |
Tantangan
Yang harus dilakukan:
Tambahkan perulangan while yang belum ada untuk mencetak angka dari 0 sampai 2.
Coba sendiri
module while_challenge;
integer i;
initial begin
i = 0;
$display("Printing 0 to 2:");
// TODO: Tambahkan while loop
// Ulangi selama i < 3
// Di dalam perulangan, cetak i
// Tambah i sebesar 1
$finish;
end
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online