Menu
Coddy logo textTech

특수 값 X와 Z

Coddy Verilog 여정의 기초 섹션에 포함된 레슨 — 90개 중 17번째.

X와 Z는 시뮬레이션 중 하드웨어 상태에 대한 정보를 제공하는 특별한 값입니다.

X (Unknown) — 디버깅용

X는 설계상의 문제를 나타내기 위해 시뮬레이션에 표시됩니다.

X가 보일 때, 이는 주로 다음을 의미합니다:

  • 초기화되지 않은 레지스터 — 사용하기 전에 값을 설정하는 것을 잊었습니다
  • 다중 드라이버 — 두 개의 서로 다른 신호가 동시에 동일한 와이어를 제어하려고 시도하고 있습니다
  • 타이밍 위반 — 신호가 잘못된 시점에 변경되어 불안정한 상태를 생성했습니다

X는 실제 하드웨어에 존재하지 않습니다. 이는 실제 칩을 제작하기 전에 문제를 해결할 수 있도록 설계에 오류가 있음을 알려주는 시뮬레이션 도구입니다.

X가 없다면 임의의 0이나 1이 보여서 문제가 있다는 사실조차 깨닫지 못할 수 있습니다. X는 버그를 시각적으로 확인 가능하게 만들어 줍니다.

일반적인 원인:

reg a;           // 초기에는 X (알 수 없음)
reg b;
assign b = a;    // a가 X이므로 b는 X가 됨

Z (High Impedance)

Z는 high-impedance 또는 disconnected (연결되지 않음) 상태를 나타냅니다.

  • 신호가 아무것에 의해서도 구동되지 않을 때 Z 상태가 됩니다.
  • Z는 "이 와이어의 연결이 끊어짐"을 의미합니다.
  • 트라이스테이트 버퍼(tri-state buffer) 및 공유 버스에 사용됩니다.

일반적인 원인:

wire c;          // 초기에는 Z (연결되지 않음)
assign c = 1'bZ; // Explicitly set to Z

Verilog에서 X와 Z 작성하기

0 및 1과 마찬가지로 X 및 Z 값을 assign 할 수 있습니다:

reg [3:0] data;

data = 4'b10X0;    // Bit 1 is unknown (0-indexed from the right)
data = 4'b01Z1;    // 비트 1은 하이 임피던스입니다
data = 4'bXXXX;    // All bits unknown
data = 4'bZZZZ;    // 모든 비트가 하이 임피던스입니다

파형에서의 X와 Z

시뮬레이션 파형에서:

  • X는 빨간색 선 또는 "X"로 표시됩니다
  • Z는 중간 위치의 선 또는 "Z"로 표시됩니다

이러한 요소들은 신호가 unknown 상태이거나 연결 해제된 위치를 보여주어 디자인을 디버깅하는 데 도움을 줍니다.

중요 참고 사항

  • X는 로직을 통해 전파됩니다 (X AND 0 = 0, 하지만 X AND 1 = X)
  • Z는 주로 트라이스테이트(tri-state) 버스에 사용됩니다
  • 합성(synthesis)에서 X와 Z는 다르게 취급될 수 있습니다
  • 시뮬레이션에서 X를 방지하기 위해 항상 reg 신호를 초기화하세요
challenge icon

챌린지

X와 Z를 포함한 올바른 값을 작성하여 코드를 완성하세요.

수행할 작업:

  1. a를 bit 1이 unknown이고 (others 0) 4-bit인 값으로 설정하세요.
  2. c를 all bits unknown (4 bits)으로 설정하세요.
  3. d를 all bits high-impedance (4 bits)로 설정하세요.

직접 해보기

module xz_challenge;
  wire [3:0] a, c, d;
  
  assign a = 4'b______;   // Bit 1 is X (others 0)
  assign c = 4'b______;   // 모든 비트가 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 icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨