Karnaugh Haritası Nedir ? Ne için Kullanılır?

Sayısal devre tasarımında hemen entegreleri elimize alıp devre kurmaya başlamayız. Öncelikle bir Boolean eşitliği oluşturmak ve doğruluk tablosunda devrenin fonksiyonunu yazmamız gereklidir. Yani bizim yapacağımız bir devre öncelikle Boolean aritmetiğine göre bir işlem yapmalı biz de bunu kağıt üzerinde yazmalıyız. Bu yazdığımız formülü sonrasında doğruluk tablosu haline getirip daha kolay anlayabilsek de doğruluk tablosunu her zaman devreye entegre etmek kolay olmamaktadır. Fonksiyonlar karmaşıklaştıkça ve girişler arttıkça doğruluk tablosu da karmaşık bir hale gelebilmektedir. Bunun için doğruluk tablosunun “sıkıştırılmış” hali gibi düşüneceğimiz Karnaugh haritası kullanılır.

Karnaugh haritası adını Maurice Karnaugh adlı tasarımcısından almıştır. Bu tasarım 1950’lerde geliştirilmiş olup uzun bir zamandır dijital tasarımda kullanılmaktadır. Dijital elektronik eğitiminde öncelikle öğrenciye doğruluk tablosu öğretilmektedir. Doğruluk tablosu basit ve anlaşılır bir tablo olup tek boyutlu bir tablodur. Aşağıda doğruluk tablosuna bir örnek görebilirsiniz.

Bu tablonun parametreleri en üstteki satırda yer almakta ve aşağıda sadece değerler yer almaktadır. Sadece sütunlardan ibaret olduğu için tek boyutlu bir tablo da diyebiliriz. Bu tablonun anlaşılır olmasının sebebi satırlarda bir parametrenin olmamasıdır. Fakat basitliğinden dolayı kalabalık bir tablo olması karmaşık işlemlerde okunurluğu zorlaştırmaktadır. Karnaugh haritası ise iki boyutlu bir tablo olup parametrenin birini satır kısmına alarak ve ilk iki parametreyi de birleşik zikrederek tablo boyutunu oldukça kısaltmaktadır. Bu sefer tabloda sadece sonuçlar yer almakta ve parametreler kenarda yazılmaktadır. Haritanın nasıl olduğunu ve nasıl okumamız gerektiğini örnek üzerinden gösterelim.

Yukarıda hemen herkesin okuyup anlayabileceği doğruluk tablosunu Karnaugh yöntemi ile tekrar gösterdik. Burada hiç bilmeyen için anlaması biraz daha zor olan bir tablo görünmektedir. Öncelikle artık parametrelerin değeri tablonun içerisinde yer almamaktadır. Excel programındaki satır ve sütun adları gibi düşüneceğimiz kısımlarda parametrelerin değeri yer almaktadır. Hücrelerde ise sadece sonuç değeri yer alır.

Tabloda daha iyi göreceğiniz üzere iki parametrenin değeri sütun adlarını C parametresinin değeri ise satır adlarını oluşturmaktadır. Bu durumda öncelikle bizim sütunlardan itibaren okumamız gerektiği açıktır. Örneğin A, B, C ve Sonuç değerlerini sırasıyla okumamız gerekirse öncelikle üst taraftaki AB değerini 00, 01, 11, 10 olarak okumamız gereklidir. Sonrasında ise C değerine göre 0 veya 1 değerleri arasından ilgili satırı seçeriz. Örneğin A = 0, B = 0, C = 0 ise sonuç değeri için önce 00 numaralı sütuna sonrasında ise 0 numaralı satıra bakarız ve kutucukta yazan “1” değerini sonuç olarak okuruz.

Bu tablonun oldukça sıkıştırılmış bir gösterme yöntemi olduğunu fark etmişsinizdir. Ayrıca normalde 00, 01, 10, 11 olarak artarak devam etmesi gereken satır numaraları burada 00, 01, 11, 10 olarak devam etmektedir. Artarak ilerleyen numaralar doğru bir gösterme yöntemi değildir. Her zaman bu düzene uymak zorunludur.

Karnaugh haritaları sadece gösterimden ibaret bir işlevi taşımaz. Bu haritalar üzerinde gruplandırmalar yaparak çeşitli işlemlerin sonuçlarını basitleştirebiliriz. Örneğin f(W, X, Y, Z)= WX’Y’ + WY + W’YZ’ fonksiyonunu karnaugh haritası kullanarak basitleştirelim. Bunun için dört değerli haritaya ihtiyacımız vardır.

Burada 4. satır ve 1 ve 2 numaralı sütunlar WX’Y’ fonksiyonunun sonuçlarını içerir. 3 ve 4 numaralı satır ve 3 ve 4 numaralı sütun ise WY fonksiyonunun sonuçlarını içerir. En son olarak ise 1 ve 2 numaralı satır ile 4 numaralı sütun ise W’YZ’ fonksiyonunun sonuçlarını içerir. Burada 16 adet değeri veya 8 adet değeri gruplandırma ihtimalimiz yoktur. 4 adet değeri ise gruplandırabiliriz. Gruplandırma işlemi yaptığımızda harita şöyle gözükecektir.

Burada iç temel üye olan WX’, WY ve YZ’ fonksiyonlarını görüyoruz. Bu temel üyeler şu sebeplerden dolayı gereklidir.

  • Dördüncü satırdaki soldan iki hücre diğer gruplar tarafından kapsam içine alınmamıştır. Sadece dördüncü satırdaki grup bunu kapsam içine alabilir.
  • Ortada tek kalan hücre diğer gruplar tarafından kapsam içine alınmamıştır. Ancak WY grubu bunu kapsam içine alabilir.
  • Üstte iki adet kalan hücreler de YZ’ grubu tarafından kapsam içine alınmıştır. Geri kalan gruplar bunu içlerine dahil etmemiştir.

Bu tablonun basitleştirilmiş boolean aritmetiğine göre fonksiyonu şu şekildedir,

f = WX’ + WY + YZ’

Gördüğünüz gibi gruplandırmalar belli işlemleri tablo üzerinde göstermekte ve bizim anlamamızı ve buna bakarak sayısal devre tasarımını yapmamızı kolaylaştırmaktadır. Sayısal devrelerin tek bir boolean işleminden oluşmayıp küçük fonksiyonları içerisinde barındırdığını hesaba katarsak bu gruplandırma yöntemi doğruluk tablosuna göre daha anlaşılır olmaktadır.

Sonuç

Gördüğünüz gibi doğruluk tablosu başta kolay ve anlaşılır görülse de karnaugh haritaları üzerinde yapılan gruplandırma yöntemi gerçek hayatta uygulanacak devre tasarımına daha uyumlu olmaktadır. Dijital elektronikte bu konu çok daha ayrıntılı olsa da biz bilmeyenlerin kısaca öğrenmesi için bu kadarıyla yetiniyoruz.

Kaynaklar, 

https://www.allaboutcircuits.com/textbook/digital/chpt-8/karnaugh-maps-truth-tables-boolean-expressions/

Complete Digital Design, Mark Balch, Mcgraw Hill, 2003, USA

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

 

 

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

1 Response

  1. ibrahim atiker dedi ki:

    merhaba hocam benim aklıma bir soru takıldı
    sayısal devre tasarımı yaparken direk başlayamayız demişssiniz.
    şöyle bir örnek vermek istiyorum
    oda içerisinde 1 lamba ve 2 buton var, 2 butonda lambayı yakıyor
    birinin açık olması lambanın yanması için yeterli.
    bunun harnaugh haritasını çıkardım ve ve veya kapıları ile çizimini yaptım
    bu sistemi mikrodenetleyi ile kontrol ettiğimizi düşünürsek bu elde ettiğimiz haritayı mikrodenetleyiciye kod olarak mı yazmamız gerekiyor
    bu basit örnek geldi benim aklıma ama endüstriyel alanda bu haritayı çıkartıp ne gibi yerlerde uygulayabilirz. çıkan haritayı kod olarak mikrodenetleyiciye mi gömmemiz gerekiyor

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.