Instansiasi Modul
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 33 dari 90.
Instansiasi module adalah proses membuat salinan module di dalam module lain. Dengan cara ini, kamu dapat membangun desain yang lebih besar dengan menghubungkan komponen-komponen kecil.
Setelah mendefinisikan sebuah module, kamu dapat menggunakannya di dalam module lain. Ini disebut instansiasi. Setiap instansiasi membuat instance terpisah dari module tersebut. Anggap saja seperti menggunakan cetak biru untuk membuat beberapa salinan komponen yang sama.
Sintaks Dasar
module_name instance_name (connections);| Bagian | Makna |
|---|---|
module_name | Nama module yang akan dibuat instansinya |
instance_name | Nama unik untuk salinan ini |
connections | Sinyal yang terhubung ke port module |
Contoh Sederhana
Langkah 1: Definisikan modul
module and_gate (
input a,
input b,
output c
);
assign c = a & b;
endmoduleLangkah 2: Buat instansinya di modul lain
module top (
input x,
input y,
output z
);
and_gate gate1 (x, y, z);
endmoduleBerikut yang terjadi dalam kode ini:
and_gate: nama module yang ingin kita gunakan (harus ada di suatu tempat)gate1: nama unik yang kita berikan untuk instance khusus ini(x, y, z): sinyal yang kita hubungkan ke port module (dengan urutan yang sama seperti kemunculannya dalam definisi module)
Sinyal pertama x terhubung ke port pertama a. Sinyal kedua y terhubung ke port kedua b. Sinyal ketiga z terhubung ke port ketiga c.
Berikan satu sinyal untuk setiap port. Verilog juga menerima jumlah sinyal yang lebih sedikit, bahkan tanda kurung kosong, tetapi setiap port yang tidak diberi sinyal akan dibiarkan tidak terhubung dan tidak tersambung ke apa pun dalam desainmu. Memberikan lebih banyak sinyal daripada jumlah port yang dimiliki modul adalah error.
Beberapa Instans
Kamu dapat membuat beberapa salinan dari modul yang sama:
module top;
wire out1, out2;
wire sig1, sig2, sig3, sig4;
and_gate gate1 (sig1, sig2, out1);
and_gate gate2 (sig3, sig4, out2);
endmoduleSetiap instance memiliki namanya sendiri (gate1, gate2) dan koneksinya sendiri. Keduanya bekerja secara mandiri.
Yang Terjadi Saat Instansiasi
- Dibuat salinan perangkat keras
- Setiap instans memiliki kumpulan sinyalnya sendiri
- Instans berjalan secara paralel (secara bersamaan)
- Sinyal yang kamu teruskan menentukan bagaimana instance terhubung ke bagian lain dari rancanganmu
Aturan untuk Instansiasi
| Aturan | Alasan |
|---|---|
| Nama instans harus unik | Agar salinan dapat dibedakan |
| Nama module harus ada | Harus didefinisikan di tempat lain |
| Hubungkan satu sinyal ke setiap port | Port tanpa sinyal akan dibiarkan tidak terhubung, dan jumlah sinyal yang melebihi jumlah port akan menimbulkan error |
| Urutan koneksi harus sesuai dengan urutan port | Sinyal pertama terhubung ke port pertama, dan seterusnya. |
Tantangan
Lengkapi kode dengan membuat instans modul or_gate.
Yang harus dilakukan:
- Buat instans
or_gatedengan nama instansor1 - Teruskan sinyal dengan urutan yang benar:
input_a,input_b,output_y
Coba sendiri
module or_gate (
input in1,
input in2,
output result
);
assign result = in1 | in2;
endmodule
module top (
input input_a,
input input_b,
output output_y
);
// TODO: Buat instance or_gate dengan nama or1
// Masukkan sinyal sesuai urutan: input_a, input_b, output_y
// Jangan gunakan sintaks .port(signal)
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