While loop
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 59 dari 90.
Perulangan while mengulang blok kode selama suatu kondisi bernilai true. Tidak seperti perulangan for, perulangan ini tidak memiliki penghitung bawaan. Kamu harus memperbarui variabel perulangan sendiri.
Perulangan while memeriksa kondisi sebelum setiap iterasi. Jika kondisinya 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.
Perulangan While vs Perulangan For
| Perulangan For | Perulangan While | |
|---|---|---|
| Penghitung | Bawaan | Kamu mengelolanya |
| Kapan digunakan | Jumlah iterasi diketahui | Tidak diketahui kapan perulangan akan berhenti |
| Sintaks | for (i=0; i<5; i=i+1) | while (i < 5) |
Perulangan while dalam testbench
Perulangan while berguna ketika kamu tidak tahu persis berapa banyak iterasi yang kamu perlukan:
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 berakhir |
| 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 | Diperlukan jika lebih dari satu baris |
Tantangan
Yang harus dilakukan:
Tambahkan perulangan while yang hilang untuk mencetak angka dari 0 hingga 2.
Coba sendiri
module while_challenge;
integer i;
initial begin
i = 0;
$display("Printing 0 to 2:");
// TODO: Tambahkan perulangan while
// 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