Menu
CoddyTech

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
BagianFungsinyaContoh
initializationMenetapkan nilai awali = 0
conditionKapan harus berhentii < 10
incrementBerubah setiap perulangani = i + 1

Contoh Sederhana

integer i;

for (i = 0; i < 5; i = i + 1) begin
  $display("i = %d", i);
end

Output:

i = 0
i = 1
i = 2
i = 3
i = 4

Perulangan 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);
end

Ini 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
end

Ini menginisialisasi 10 lokasi memori.

Aturan Penting

AturanPenjelasan
Variabel perulangan harus berupa integer atau reg Tidak boleh berupa wire
Gunakan begin/end untuk beberapa pernyataanWajib digunakan jika ada lebih dari satu baris
Hindari perulangan tanpa akhirPastikan kondisi akhirnya menjadi false
Paling cocok digunakan dalam testbenchSebagian besar perulangan tidak dapat disintesis
challenge icon

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
endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online