For loop
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 58 dari 90.
Perulangan dalam Verilog memungkinkan kamu menjalankan blok kode beberapa kali. Perulangan sangat berguna dalam testbench untuk menghasilkan pola pengujian berulang, menginisialisasi memori, dan mengiterasi array. Tidak seperti deskripsi perangkat keras yang berjalan secara paralel, perulangan berjalan secara berurutan sehingga cocok untuk simulasi dan pengujian.
Perulangan yang paling umum digunakan adalah for loop, yang mengulang sejumlah kali tertentu. for loop menjalankan blok kode berulang kali, dengan variabel perulangan yang berubah pada setiap iterasi. Kamu mengontrol dengan tepat berapa kali perulangan itu berjalan.
Sintaks:
for (initialization; condition; increment) begin
// Kode yang diulang
end| Bagian | Fungsinya | Contoh |
|---|---|---|
initialization | Menetapkan nilai awal | i = 0 |
condition | Kapan harus berhenti | i < 10 |
increment | Berubah setiap perulangan | i = i + 1 |
Contoh Sederhana
integer i;
for (i = 0; i < 5; i = i + 1) begin
$display("i = %d", i);
endOutput:
i = 0
i = 1
i = 2
i = 3
i = 4Perulangan berjalan 5 kali (i = 0, 1, 2, 3, 4).
Perulangan for dalam testbench
Perulangan for umum digunakan untuk menguji semua kombinasi input:
integer test_value;
for (test_value = 0; test_value < 16; test_value = test_value + 1) begin
$display("test_value = %d", test_value);
endIni menguji semua 16 nilai yang mungkin untuk sinyal 4-bit.
Perulangan for dengan array
reg [7:0] memory [0:9];
integer i;
initial begin
for (i = 0; i < 10; i = i + 1) begin
memory[i] = i * 8;
end
endIni menginisialisasi 10 lokasi memori.
Aturan Penting
| Aturan | Penjelasan |
|---|---|
Variabel perulangan harus berupa integer atau reg | Tidak boleh berupa wire |
Gunakan begin/end untuk beberapa pernyataan | Wajib digunakan jika ada lebih dari satu baris |
| Hindari perulangan tanpa akhir | Pastikan kondisi akhirnya menjadi false |
| Paling cocok digunakan dalam testbench | Sebagian besar perulangan tidak dapat disintesis |
Tantangan
Yang harus dilakukan:
Tambahkan for loop yang hilang untuk mencetak angka dari 0 hingga 3.
Coba sendiri
module for_challenge;
integer i;
initial begin
$display("Printing 0 to 3:");
// TODO: Tambahkan for loop
// Inisialisasi i = 0
// Ulangi selama i < 4
// Naikkan i = i + 1
// Di dalam perulangan, cetak dengan: $display("i = %d", i);
$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