Menu
CoddyTech

Özel X ve Z Değerleri

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

X ve Z, simülasyon sırasında donanımın durumu hakkında bilgi veren ö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'i 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ı kabloyu aynı anda kontrol etmeye ç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 size bildiren bir simülasyon aracıdır; böylece gerçek ç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 (bilinmiyor)
wire b;
assign b = a;    // a, X olduğu için b de X olur

Z (Yüksek Empedans)

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

  • Bir sinyal, hiçbir şey tarafından sürülmüyorsa Z değerindedir
  • Z, “bu kablo bağlı değil” anlamına gelir
  • Üç durumlu tamponlar 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 tıpkı 0 ve 1 gibi atayabilirsin:

reg [3:0] data;

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

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 nerede bilinmediğini veya bağlantısının kesildiğini göstererek tasarımınızdaki hataları ayıklamanıza yardımcı olur.

Önemli Notlar

  • X mantık yoluyla 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 başlatın
challenge icon

Görev

Kodu, X ve Z içeren doğru değerleri yazarak tamamla.

Yapman gerekenler:

  1. a değişkenine, 1. biti bilinmeyen (diğerleri 0) 4 bitlik bir değer ata
  2. c değişkenine tüm bitleri bilinmeyen (4 bit) bir değer ata
  3. d değişkenine tüm bitleri yüksek empedanslı (4 bit) bir değer ata

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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi