Menu
CoddyTech

Daftar Sensitivitas

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

Daftar sensitivitas memberi tahu blok always kapan harus dijalankan. Daftar ini ditulis di dalam tanda kurung setelah simbol @.

Daftar sensitivitas adalah kumpulan sinyal atau peristiwa yang memicu blok always. Saat sinyal apa pun dalam daftar berubah, blok tersebut dijalankan.

Sintaks:

always @(sensitivity_list) begin
  // Kode dijalankan saat sinyal dalam list berubah
end

Jenis Daftar Sensitivitas

JenisSintaksKapan Blok Dijalankan
Semua sinyal (kombinasional)always @(*)Saat ada sinyal di dalamnya yang berubah
Sinyal tertentualways @(a or b)Saat a atau b berubah
Pemicu tepi (sekuensial)always @(posedge clk)Pada tepi naik clock
Beberapa tepialways @(posedge clk or posedge reset)Pada tepi clock atau tepi reset

Opsi 1: Semua Sinyal (*)

Paling aman dan paling umum untuk logika kombinasi.

always @(*) begin
  out = a & b;   // Dijalankan saat a atau b berubah
end

* secara otomatis menyertakan semua sinyal yang dibaca di dalam blok.

Opsi 2: Sinyal Spesifik

always @(a or b) begin
  out = a & b;   // Dijalankan saat a atau b berubah
end

Jika kamu lupa menambahkan sinyal, output tidak diperbarui dalam simulasi saat sinyal tersebut berubah, sehingga simulasi tidak lagi sesuai dengan perangkat keras hasil sintesis.

Opsi 3: Pemicu Tepi (posedge)

always @(posedge clk) begin
  q <= d;        // Berjalan saat tepi naik clock
end

Gunakan posedge untuk tepi naik, negedge untuk tepi turun.

Opsi 4: Beberapa Tepi

always @(posedge clk or posedge reset) begin
  if (reset)
    q <= 0;
  else
    q <= d;
end

Berjalan pada tepi clock atau tepi reset.

Kesalahan Umum

KesalahanMengapa Salah
always @(a or b or c) tetapi menggunakan dd tidak dicantumkan → output menjadi usang dalam simulasi (ketidakcocokan sim/synth)
always @(posedge clk or reset)posedge untuk reset tidak dicantumkan
always @(clk)Seharusnya menggunakan posedge clk untuk flip-flop
challenge icon

Tantangan

Yang harus dilakukan:

  1. Tambahkan daftar sensitivitas yang benar agar flip-flop ini berfungsi. Blok ini harus dijalankan pada tepi naik clk.

Coba sendiri

module flipflop (
  input clk,
  input d,
  output reg q
);
  
  always @(______) begin
    q <= d;
  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