Menu
CoddyTech

Nilai Khusus X dan Z

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

X dan Z adalah nilai khusus yang memberi kita informasi tentang keadaan perangkat keras selama simulasi.

X (Tidak Diketahui), untuk Debug

X muncul dalam simulasi untuk menunjukkan masalah pada desainmu.

Saat kamu melihat X, biasanya artinya:

  • Register yang belum diinisialisasi: kamu lupa menetapkan nilai sebelum menggunakannya
  • Beberapa driver: dua hal berbeda mencoba mengendalikan kabel yang sama pada saat yang sama
  • Pelanggaran timing: sinyal berubah pada waktu yang salah sehingga menciptakan keadaan yang tidak stabil

X tidak ada di perangkat keras nyata. X adalah alat simulasi yang memberi tahu kamu jika ada yang salah dengan desainmu, sehingga kamu bisa memperbaikinya sebelum membuat chip yang sebenarnya.

Tanpa X, kamu mungkin melihat angka 0 atau 1 acak dan tidak menyadari ada masalah. X membuat bug terlihat.

Penyebab umum:

reg a;           // Awalnya X (tidak diketahui)
reg b;
assign b = a;    // b menjadi X karena a bernilai X

Z (Impedansi Tinggi)

Z mewakili keadaan impedansi tinggi atau terputus.

  • Sinyal bernilai Z saat tidak ada yang menggerakkannya
  • Z berarti "kabel ini terputus"
  • Digunakan untuk buffer tri-state dan bus bersama

Penyebab umum:

wire c;          // Awalnya Z (tidak terhubung)
assign c = 1'bZ; // Explicitly set to Z

Menulis X dan Z di Verilog

Kamu dapat menetapkan nilai X dan Z seperti 0 dan 1:

reg [3:0] data;

data = 4'b10X0;    // Bit 1 is unknown (0-indexed from the right)
data = 4'b01Z1;    // Bit 1 berimpedansi tinggi
data = 4'bXXXX;    // All bits unknown
data = 4'bZZZZ;    // Semua bit berimpedansi tinggi

X dan Z pada Bentuk Gelombang

Pada bentuk gelombang simulasi:

  • X muncul sebagai garis merah atau "X"
  • Z muncul sebagai garis di tengah atau "Z"

Fitur-fitur ini membantumu debug desainmu dengan menunjukkan bagian tempat sinyal tidak diketahui atau terputus.

Catatan Penting

  • X menyebar melalui logika (X AND 0 = 0, tetapi X AND 1 = X)
  • Z biasanya digunakan untuk bus tri-state
  • Dalam sintesis, X dan Z dapat diperlakukan secara berbeda
  • Selalu inisialisasi sinyal reg agar tidak muncul X dalam simulasi
challenge icon

Tantangan

Lengkapi kode dengan menuliskan nilai yang benar yang berisi X dan Z.

Yang harus dilakukan:

  1. Tetapkan a ke nilai 4-bit dengan bit 1 tidak diketahui (bit lainnya 0)
  2. Tetapkan c agar semua bit tidak diketahui (4 bit)
  3. Tetapkan d agar semua bit berimpedansi tinggi (4 bit)

Coba sendiri

module xz_challenge;
  wire [3:0] a, c, d;
  
  assign a = 4'b______;   // Bit 1 is X (others 0)
  assign c = 4'b______;   // Semua bit bernilai X
  assign d = 4'b______;   // All bits Z
  
  initial begin
    $display("a = %b", a);
    $display("c = %b", c);
    $display("d = %b", d);
    $finish;
  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