Menu
Coddy logo textTech

Special Values X And Z

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası. Ders 17 / 90.

X ve Z, simülasyon sırasında donanım durumu hakkında bilgi sağlayan özel değerlerdir.

Hata Ayıklama için X (Bilinmeyen)

X, tasarımınızdaki sorunları belirtmek için simülasyonda görünür.

X gördüğünüzde, genellikle şu anlama gelir:

  • Başlatılmamış yazmaç: kullanmadan önce bir değer atamayı unuttunuz
  • Birden çok sürücü: iki farklı şey aynı anda aynı wire'ı denetlemeye çalışıyor
  • Zamanlama ihlali: bir sinyal yanlış zamanda değişerek kararsız bir durum oluşturdu

X gerçek donanımda mevcut değildir. Tasarımınızda bir sorun olduğunu belirten bir simülasyon aracıdır; böylece asıl çipi üretmeden önce sorunu düzeltebilirsiniz.

X olmadan rastgele 0'lar veya 1'ler görebilir ve bir sorun olduğunu fark etmeyebilirsin. X, hataları görünür kılar.

Yaygın nedenler:

reg a;           // Başlangıçta X (bilinmeyen)
reg b;
assign b = a;    // b, a X olduğu için X olur

Z (Yüksek Empedans)

Z, yüksek empedanslı veya bağlantısı kesilmiş bir durumu temsil eder.

  • Bir sinyal, herhangi bir şey tarafından sürülmediğinde Z'dir
  • Z, "bu wire bağlantısı kesilmiş" anlamına gelir
  • Üç durumlu arabellekler ve paylaşılan veri yolları için kullanılır

Yaygın nedenler:

wire c;          // Başlangıçta Z (bağlı değil)
assign c = 1'bZ; // Explicitly set to Z

Verilog'da X ve Z Yazma

X ve Z değerlerini 0 ve 1 gibi atayabilirsiniz:

reg [3:0] data;

data = 4'b10X0;    // Bit 1 is unknown (0-indexed from the right)
data = 4'b01Z1;    // Bit 1 yüksek empedanslı
data = 4'bXXXX;    // All bits unknown
data = 4'bZZZZ;    // Tüm bitler yüksek empedanslı

Dalga Biçimlerinde X ve Z

Simülasyon dalga biçimlerinde:

  • X kırmızı bir çizgi veya "X" olarak görünür
  • Z ortada bir çizgi veya "Z" olarak görünür

Bunlar, sinyallerin bilinmediği veya bağlantısının kesildiği yerleri göstererek tasarımınızda hata ayıklamanıza yardımcı olur.

Önemli Notlar

  • X mantık boyunca yayılır (X AND 0 = 0, ancak X AND 1 = X)
  • Z genellikle üç durumlu veri yolları için kullanılır
  • Sentez sırasında X ve Z farklı şekilde ele alınabilir
  • Simülasyonda X oluşmasını önlemek için reg sinyallerini her zaman initial yapın
challenge icon

Görev

X ve Z içeren doğru değerleri yazarak kodu tamamlayın.

Yapılacaklar:

  1. a değerini, bit 1 bilinmeyen (diğerleri 0) olacak şekilde 4 bitlik bir değere ayarlayın
  2. c değerini tüm bitler bilinmeyen (4 bit) olacak şekilde ayarlayın
  3. d değerini tüm bitler yüksek empedanslı (4 bit) olacak şekilde ayarlayın

Kendin dene

module xz_challenge;
  wire [3:0] a, c, d;
  
  assign a = 4'b______;   // Bit 1 is X (others 0)
  assign c = 4'b______;   // Tüm bitler 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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi