Menu
CoddyTech

Penugasan Kontinu

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

Dalam perangkat keras, sambungan adalah kabel fisik yang menghubungkan dua titik dalam sirkuit. Setelah kabel terpasang, sambungan itu bersifat permanen dan selalu aktif. Jika salah satu ujung berubah, ujung lainnya langsung berubah.

Dalam Verilog, kita memerlukan cara untuk memodelkan perilaku ini. Kita ingin mengirimkan nilai ke sebuah wire dan membuatnya tetap terhubung selamanya. Proses ini disebut continuous assignment.

Assignment kontinu menggunakan kata kunci assign untuk membuat koneksi permanen antara wire dan ekspresi. Wire terus-menerus mengambil nilai ekspresi, seperti wire fisik.

Anggaplah ini seperti menyolder kabel, bukan menuliskan nilai sekali saja.

Sintaks

assign wire_name = expression;
BagianMakna
assignKata kunci yang memulai assignment kontinu
wire_nameWire yang digerakkan (tidak boleh berupa reg)
expressionNilai yang menggerakkan wire

Contoh Sederhana

wire out;
assign out = a & b;

Artinya: out selalu sama dengan a AND b. Setiap kali a atau b berubah, out langsung berubah.

Cara Kerjanya

Tidak seperti reg yang menyimpan nilai, wire dengan penugasan kontinu terus diperbarui:

module continuous_demo;
  reg a, b;
  wire c;
  
  assign c = a & b;   // c selalu mengikuti hasil a AND b
  
  initial begin
    a = 0; b = 0;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0
    
    a = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=0 (1&0=0)
    
    b = 1;
    #10 $display("a=%d, b=%d, c=%d", a, b, c);  // c=1 (1&1=1)
    
    $finish;
  end
endmodule

Output:

a=0, b=0, c=0
a=1, b=0, c=0
a=1, b=1, c=1

Setiap kali a atau b berubah, c diperbarui secara otomatis.

Beberapa Penugasan

Kamu dapat memiliki beberapa penugasan berurutan dalam sebuah module:

module multiple_assign (
  input a, b, c,
  output x, y
);
  assign x = a & b;
  assign y = x | c;   // y bergantung pada x
endmodule

Semua assignment berjalan secara paralel dan terus-menerus.

Penggunaan Umum

Penugasan kontinu digunakan untuk:

  • Logika kombinatorial sederhana (AND, OR, XOR)
  • Menghubungkan kabel satu sama lain
  • Membuat buffer tri-state
  • Menggerakkan output dari ekspresi kombinatorial
challenge icon

Tantangan

Yang harus dilakukan:

  1. Tambahkan penugasan kontinu yang belum ada agar z sama dengan x AND y.

Coba sendiri

module continuous_challenge (
  input x,
  input y,
  output z
);
  
  // TODO: Tambahkan pernyataan penugasan kontinu yang belum ada agar z sama dengan x AND y
  

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