FPGA Günlükleri – 1 Bit Comparator

Bu yazı dizisinde sıfırdan FPGA öğrenen birinin notlarını, çalışmalarını, fikirlerini ve yaptığı hataları göreceksiniz.  Ne kadar günlük düzeninde olur bilemiyorum fakat vakit buldukça bir şeyler karalamayı planlıyorum. Uzun zaman MCU kullanan biri olarak şunu söyleyebilirim ki temel Boolean cebirini ve bir takım dijital elektronik konularını unutmuşum. Bu yazılarda hem dijital elektroniğin temellerini hemde FPGA yapısını ele alarak düzenli bir takım çalışmalar yapacağım. Bu işe 1 Bitlik karşılaştırıcı tasarlayarak başlayalım.

Comparator yani Karşılaştırıcılar bize girilen değerlerin kıyaslanması sonucu bir takım çıkış sinyalleri veren yapılardır. Bu çıktılar fark karşılaştırma referanslarına göre değişebilir. Biz bu yapıda sayıların büyüklüğünü karşılaştıran bir Comparator tasarlayacağız. Buna aynı zamanda “Magnitude Comparator” de diyebiliriz.

Yapısı :

Yapının kaç bitlik olduğu tamamen keyfidir. Biz ilk uygulama için 1-Bit olanını yapalım. Bu mantıkla siz n-Bit olanını çalışmanıza göre tasarlayabilirsiniz. Bu tarz lojik devreleri tasarlamak için Karnaugh haritası çıkarmamız gerekiyor. Karnaugh haritasının nasıl çıkarıldığını bilmiyorsanız önce bunun öğrenin, zira bunu da anlatacak olursak yazı çok uzun olur.

 

İncelenecek 3 adet durum var. Bir karşılaştırma işleminde A ve B giriş değerleri olmak üzere

  1. Durum : A < B
  2. Durum : A > B
  3. Durum : A = B

Olarak tanımlanır. Buradan her bir çıkış için ayrı Karnaugh haritaları oluşturup ona göre devreyi tasarlarız. Yapacağımız karşılaştırıcı 1 Bit olduğu için bu kolay olacak.

1.Durum için A < B yani A = 0 ve B = 1 için bir çıkış almak istiyoruz başka türlü A < B durumu elde edilemez. Karnaugh haritasını şu şekilde olacak.

2. Durum için A > B yani A = 1 ve B = 0 için çıkış alacağız. Elde edeceğimiz tek A > B durumu bu olacaktır. Karnaugh haritasını şu şekilde olacak.

Son durumda ise A = B yani 2 adet durum ile sağlanan bu koşul A = 0 ve B = 0 ile birlikte A = 1 ve B = 1 durumlarıdır. Bu yapı biraz tanıdık gelebilir. Buna Exclusive-NOR denir. Haritası bu şekildedir.

Artık bu 3 durumu ayrı çıkışlara yönlendirerek tasarımı tamamlayabiliriz. Bunu FPGA ortamında VHDL kullanarak şu şekilde basitçe ifade edebiliyoruz.

Tanımlamalarda kullandığım isimlerin açıklaması

  1. A_LT_B = A Lower Than B
  2. A_GT_B = A Greater Than B
  3. A_EQ_B = A Equal B

RTL çıktısı ise şu şekilde olacak.

 


Umarım açıklayıcı olmuştur. Bir başka yazıda görüşmek üzere.

Esen kalın.

You may also like...

2 Responses

  1. Kudret Uzuner dedi ki:

    Bu FPGA ‘a bulaşmak istemiyordum ama dayanamadım okudum.mükemmel bir anlatım.Teşekkürler.

Baran EKREM için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir