Menu
CoddyTech

Pemetaan Port Berdasarkan Urutan

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

Di pelajaran sebelumnya, kamu mempelajari pemetaan port berdasarkan nama, dengan memberi label secara eksplisit pada setiap koneksi menggunakan .port(signal). Sekarang kita akan membahas metode alternatif: pemetaan port berdasarkan urutan.

Ini menghubungkan sinyal ke port module berdasarkan urutan kemunculannya dalam definisi module. Kamu cukup mencantumkan sinyal dalam tanda kurung, lalu Verilog mencocokkannya satu per satu.

Sintaks:

module_name instance_name (signal1, signal2, signal3);

Sinyal pertama terhubung ke port pertama, sinyal kedua ke port kedua, dan seterusnya.

Contoh

Definisi module:

module or_gate (
  input in1,      // Port pertama
  input in2,      // Port kedua
  output result   // Port ketiga
);
  assign result = in1 | in2;
endmodule

Instansiasi dengan pemetaan port berdasarkan urutan:

or_gate or1 (input_a, input_b, output_y);

Ini menghubungkan:

  • Sinyal pertama input_a → port pertama in1
  • Sinyal kedua input_b → port kedua in2
  • Sinyal ketiga output_y → port ketiga result

Urutan Itu Penting

Dalam pemetaan port berdasarkan urutan, urutannya sangat penting:

// Urutan yang benar
or_gate or1 (input_a, input_b, output_y);

// Urutan salah, sinyal terhubung ke port yang salah!
or_gate or1 (input_b, input_a, output_y);
or_gate or1 (output_y, input_a, input_b);

Jika kamu keliru mengurutkannya, koneksi akan tersambung ke port yang salah. Ini bisa sulit di-debug karena sekilas kodenya tampak benar.

Pemetaan Port Berdasarkan Nama vs Berdasarkan Urutan

FiturBerdasarkan NamaBerdasarkan Urutan
Sintaks.port(signal)signal1, signal2
Urutan berpengaruh?TidakYa
Mudah dipahami sendiri?YaTidak
Risiko kesalahanRendahTinggi
Direkomendasikan untukSebagian besar desainHanya kasus sederhana

Kapan Menggunakan Pemetaan Port Berdasarkan Urutan

Pemetaan port berdasarkan urutan dapat diterima ketika:

  • Module hanya memiliki sedikit port (2-3)
  • Urutan port sudah jelas dan kemungkinan besar tidak akan berubah
  • Kamu sedang menulis testbench singkat

Untuk sebagian besar desain, pemetaan port berdasarkan nama lebih disarankan karena lebih jelas dan mengurangi risiko kesalahan.

challenge icon

Tantangan

Selesaikan instansiasi dengan mencantumkan sinyal dalam urutan yang benar menggunakan pemetaan port berdasarkan urutan.

Yang harus dilakukan:

Port module (dalam urutan ini):

  1. input en (enable)
  2. input [7:0] d (input data)
  3. output [7:0] q (output data)

Sinyal yang harus dihubungkan:

  • enable_signal → hubungkan ke en
  • data_input → hubungkan ke d
  • data_output → hubungkan ke q

Coba sendiri

module register (
  input en,
  input [7:0] d,
  output [7:0] q
);
  assign q = en ? d : q;
endmodule

module top (
  input enable_signal,
  input [7:0] data_input,
  output [7:0] data_output
);
  
  // TODO: Buat instansiasi register bernama reg1 menggunakan pemetaan ORDER
  // Urutkan sinyal dengan benar: enable_signal, data_input, data_output
  // Jangan gunakan sintaks .port(signal)

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