IEEE1164 Standardı ve 9 Değerli Mantık Sistemi

20 March 2022

Sayısal Mantık derslerinde gördüğünüz mantık kapılarının genellikle transistörler ile yapıldığını pek çoğumuz biliyoruzdur. Bu kapılar, genellikle CMOS ile tasarlanan bu kapılardan VE DEĞİL kapısının diyagramı aşağıda verilmiştir.

Kaynak: https://www.chegg.com/homework-help/questions-and-answers/1-cmos-logic-cmos-diagram-2-input-logic-gate-b-inputs-y-output-complete-following-table-po-q43876182

Bu devre modelindeki A ve B transistör bacakları kapımızın girişlerini, Y düğümü ise kapımızın çıkışını ifade eder. Dikkat edebileceğiniz üzere devremizin beslenme gerilimine yakın olan taraftaki A ve B girişlerimiz NOT'lanmış vaziyettedir. Bu da bize şunu söyler:

  • Y'nin $V_{DD}$ gerilimine eşit olabilmesi için A veya B girişlerinden herhangi birinin $0$ olması gerekmektedir – böylece NOTlandığı zaman $1$'e dönüşecek ve transistörün kısa devre durumu yok olacaktır.
  • Y'nin $GND$ gerilimine eşit olabilmesi için A ve B girişlerinin her ikisinin de $1$ olması gerekmektedir – böylece $GND$'ye yakın taraftaki transistörlerin kısa devre durumu yok olacak ama $V_{DD}$'ye yakın taraftaki transistörler ksıa devre olarak duracaktır.

Yalnızca VE DEĞİL kapısı aracılığı ile tüm bilgisayar mimarisini inşa etmemiz olasıdır, bunun için şu yazıma bakmanızı öneriyorum.

Transistörsüz Mantık Kapıları

Mantığın Kablolu Modeli (en. Wired Logic Connection) söylediği üzere bizler VE ve VEYA kapılarını yalnızca pasif devre elemanlarını kullanarak yaratabiliriz.

İlk olarak VEYA kapısını ele alalım. Bu kapıyı yaratabilmek için yalnızca iki diyot ve bir direnç yeterli olacaktır. A'yı $+5V$ kaynağa bağladığımızı düşündüğümüzde, akım toprağa doğru olacağı için diyotu kolaylıkla geçebileceğiz. Böylece C çıkışında –B girişinin durumu önemsenmeksizin– verdiğimiz $+5V$ kaynak gerilimi bulunacaktır. Burada analizimize A girişi ile başlamamız da hiçbir şey ifade etmez, yazdığım paragraftaki her A'yı kafanızda B ile değiştirip tekrar okuyabilirsiniz. C çıkışını toprağa bağlamanın tek yolu hem A hem de B girişlerinden voltaj vermemektir – yani oraları $0$lamak.

Üstünde biraz düşünürsek yalnızca pasif elemanlardan yapılmış olan VE kapısını anlamak da pek zor olmayacaktır. Bunu şimdilik size bırakıyorum.

VHDL'de 9 Değerli Mantık Sistemi

IEEE'nin 1993 yılında standartlaştırdığı VHDL mantık sistemine göre devrelerin girişleri 9 farklı değer alabilmektedir. Bunlar:

Karakter Anlam
'U' değer atanmamış
'X' önemi yüksek, mantıksal belirsiz
'0' önemi yüksel, mantıksal sıfır
'1' önemi yüksek, mantıksal bir
'Z' yüksek empedans
'W' önemi düşük, mantıksal belirsiz
'L' önemi düşük, mantıksal sıfır
'H' önemi düşük, mantıksal bir
'-' umursanmayan değer

Burada gördüğünüz H ve L değerlerinin 1 ve 0'dan farkları kendilerinin bir önceki başlıkta bahsettiğimiz mantığın kablolu modelini sağlayabilmek için yaratılmış olması. Buna rağmen FPGA'lerde genellikle pull-up veya pull-down resistörleri yapmak için kullanılırlar.

Herhangi bir şekilde yüksek önemli bir değer ile düşük önemli bir değer mantıksal karşılaştırılmaya maruz kalırsa, çıkan sonuç önemi yüksek değerin lehine olacaktır.

Kaynak: https://gear.kku.ac.th/~watis/courses/198323/slide05.pdf

U değeri ise simülasyonlarda kullanılan bir değerdir. Genel amacı hatalar olduğu zaman bunları, boş bellek adreslerini gösterebilecek değere sahip olmaktır. Kısa çizgi (-) değeri ise doğruluk tablolarında kullandığımız çarpı işaretinin eşdeğeridir. X'in başka bir anlamı olduğu için VHDL'de kısa çizgi kullanılması tercih edilmiş.

Unutulmamalıdır ki bu iki değer de yalnızca "dizayn" aşamasında önemlidir. Ürün ortaya çıktıktan sonra kendileri sıfır veya birlere dönüşürler.

Z değeri o bölgedeki impedansın çok yüksek olmasını, bu yüzden oranın açık devre gibi davranmasını sağlar. Örneğin GPIO portu tasarlarken, giriş veya çıkış olarak tercih edilme işlemi ardından tercih edilenin tersine bir Z değeri verilmelidir ki verilen elektrik sinyali ile tercih edilmeyen devre arasındaki bağlantı koparılmış olsun.

VHDL dizaynlarında çoğunlukla kullanılan değerler $0$, $1$, $Z$, ve $-$ olarak özetlenebilir.

Kaynakça

  1. https://en.wikipedia.org/wiki/IEEE_1164
  2. https://en.wikipedia.org/wiki/Wired_logic_connection
  3. https://electronics.stackexchange.com/questions/208876/meaning-of-strong-and-weak-drive-in-vhdl