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 bulatAngka 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: 255array 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 desimalVector vs Array
| Vector | Array | |
|---|---|---|
| Pengertiannya | Kawat atau reg multi-bit | Kumpulan beberapa nilai |
| Sintaks | [MSB:LSB] | [size] |
| Contoh | reg [7:0] data; | reg [7:0] mem [0:255]; |
| Akses | data[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
Tantangan
Lengkapi kode di bawah ini untuk membuat array yang menyimpan 4 nilai uji.
Yang harus dilakukan:
- Deklarasikan array bernama
test_data- Gunakan tipe data
reg(karena tipe ini menyimpan nilai dalam testbench) - Setiap elemen harus memiliki lebar 8 bit (
[7:0]) - Array harus memiliki 4 elemen (
[0:3])
- Gunakan tipe data
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
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