FPGA Günlükleri – 8 Bit Multiplexer

  • 6 ay önce, Baran EKREM yazdı.
  • 0 Yorum
  • 397 Kişi Okudu

Bir çok dijital devrede birden fazla sinyal arasından birini seçip ilgili yere yönlendirmek adına kullanılan Multiplexer yani Çoklayıcılar çok fazla kullanacağımız yapılar. Bu yapıları “Seçici” dendiğini de duyabilirsiniz. Teori oldukça basit. Giriş sinyalleri X(n) olsun. Çıkış sinyali Y olur. Seçim sinyallari ise S() ile belirtelim. Örnek olarak 2 adet giriş sinyalinde birini çıkışa yönlendirmek için 1 adet S() sinyali gerekir. 4 Giriş varsa bundan birini seçmek için 2 Sinyal gerekir. Yani 2^s = x olarak formül haline gelir. MUX tasarımında temel başlangıç için tüm x ve s durumlarını yazarız. 8 Bit için çok fazla yacağız gibi. Merak etmeyin bir kestirme biliyorum. Hadi başlayalım.

2×1 Multiplexer

Önce 2 Bitlik MUX yapısını anlayarak başlamakta fayda var. 2 Bit MUX için 2 adet giriş ve 1 adet seçim girişi vardır. Yapısı şu şekilde gösterilebilir.

Çalışma mantığını açıklayan GIF ile anlaşılması oldukça kolay.

Her bir seçim ve giriş durumları için tabloyu yazarsak doğruluk tablosunu elde edebiliriz.

Karnaugh haritası ise şu şekilde olur.

Dijital tasarımı elde edelim.

Gördüğünüz üzere 2×1 MUX basit. Bunun VHDL karşılığı şu şekilde.

Eminim 2×1 fazla işimize yaramayacak bize daha büyük olanı gerekiyor. Yavaş yavaş büyüterek bu büyümenin mantığını kavrayalım. Sırada 4×1 var fakat aynı adımları yapmayacağım sadece blok olarak göstereceğim çünkü diğer adımları öğrendik.

4×1 Multiplexer

4×1 MUX aslında 2 Adet 2×1 MUX’un çıkışlarının seçimlerinden oluşur. Yani seçimlerin seçimidir. Doğruluk tablosunu ve VHDL kısmını size bırakıyorum.

Bu yapının boolean eşitliğini bütün MUX’ları açarak bulabilirsiniz fakat direk olarak MUX’lara isim verip yaparsanız daha kolay olacaktır.

Boolean Eşitliği şu şekildedir. (I(n) = X(n))

8×1 Multiplexer

Şimdi sırada 8×1 var bunuda yaptığımızda yapının nasıl ilerlediği kafanıza oturacaktır. dikey olarak ilk sıraya S(0) ikinci kolona S(1) ve S(2) şeklinde ilerlediğini göreceksiniz.

Boolean Eşitliği şu şekildedir. (I(n) = X(n))

VHDL Kodu :

VHDL kısmında bir öncekilere göre ekstra kullandığım şu kod kolaylık sağlıyor.

Bu bize S sinyalinin 3 adet’lik bir hat olduğunu tanımlama şansı veriyor. Alt alta teker teker yazma zahmetine girmiyoruz. Elemanlarına ulaşmak için ise şu şekilde kullanıyoruz.

Kodu henüz test etmedim. 8 giriş ve 3 tane seçim için kablo takmaya üşendim. 🙂 Simülasyon yapmayı da henüz öğrenmedim. Buda bir başka yazının konusu olsun. Şimdilik bu kadar.

Esen kalın.

Bir Yorum Yazın