Menu
CoddyTech

array

Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 10 dari 90.

array memungkinkan kamu menyimpan beberapa nilai dalam satu variabel. Setiap elemen dalam array dapat diakses menggunakan indeksnya.

Catatan: array bukan tipe data terpisah. array adalah kumpulan tipe wire, reg, integer, atau real.

Mendeklarasikan Array

Sintaks: <data_type> <name> [<size>];

reg [7:0] memory [0:255];   // 256 byte memori (masing-masing 8 bit)
reg data [0:7];              // 8 register satu bit
wire [3:0] bus [0:3];       // 4 bus, masing-masing selebar 4 bit
integer counters [0:9];      // 10 bilangan bulat

Angka dalam tanda kurung siku [ ] adalah ukuran array, bukan lebar bit.

Mengakses Elemen Array

reg [7:0] memory [0:3];
memory[0] = 165;        // Desimal 165
memory[1] = 90;         // Desimal 90
memory[2] = memory[0] + memory[1];
$display("%d", memory[2]);  // Menampilkan: 255

array sangat berguna dalam testbench untuk menyimpan data pengujian.

Array Multidimensi

Kamu bisa membuat array dengan beberapa dimensi:

reg [7:0] matrix [0:3][0:3];   // array 4x4 berisi nilai 8-bit
matrix[0][0] = 255;            // 8'hFF = 255 dalam desimal
matrix[2][1] = 85;             // 8'h55 = 85 dalam desimal

Vector vs Array

 VectorArray
PengertiannyaKawat atau reg multi-bitKumpulan beberapa nilai
Sintaks[MSB:LSB][size]
Contohreg [7:0] data;reg [7:0] mem [0:255];
Aksesdata[3] (bit 3)mem[3] (elemen 3)

Vektor adalah satu nilai dengan beberapa bit.
Array adalah beberapa nilai, masing-masing dengan bitnya sendiri.

Catatan Penting

  • Array tidak dapat disintesis di banyak alat jika digunakan dengan ukuran besar
  • Array umumnya digunakan dalam testbench
  • Untuk memori perangkat keras, gunakan primitive memori khusus
challenge icon

Tantangan

Lengkapi kode di bawah ini untuk membuat array yang menyimpan 4 nilai uji.

Yang harus dilakukan: 

  1. Deklarasikan array bernama test_data
    1. Gunakan tipe data reg (karena tipe ini menyimpan nilai dalam testbench)
    2. Setiap elemen harus memiliki lebar 8 bit ([7:0])
    3. Array harus memiliki 4 elemen ([0:3])

Coba sendiri

module arrays;
  
  // Deklarasikan array bernama test_data
  // Array ini harus memiliki 4 elemen, masing-masing berukuran 8 bit
  // Gunakan tipe data reg (karena tipe ini menyimpan nilai dalam testbench)

  
  integer i;
  
  initial begin
    test_data[0] = 170;   
    test_data[1] = 240;    
    test_data[2] = 204;    
    test_data[3] = 15;   
    
    for (i = 0; i < 4; i = i + 1) begin
      $display("test_data[%0d] = %b", i, test_data[i]);
    end
    $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