Programlanabilir Mantık -1- Programlanabilir Mantıksal Aygıtlara Giriş

Dijital devre tasarımında en ileri noktalardan biri de programlanabilir mantık aygıtlarıdır. Biz genelde mikrodenetleyiciler ve mikroişlemci sistemleri üzerinde dursak da mikroişlemci sistemleri her zaman istediğimiz esnekliği ve işlem gücünü verememektedir. Bizim kullandığımız son nesil genel maksatlı bilgisayarlardan en basit 8-bit mikrodenetleyicilere kadar mikroişlemci sistemleri belli başlı prensipler üzerine kurulmaktadır. İşlem gücünün ve karmaşıklığın artması ile ileri seviye mikroişlemci sistemlerinde yapabileceğimiz uygulamaların sayısı bir hayli artsa da yine de biz bir devre kartı tasarlarken maliyeti en uygun seviyede tutmamız gereklidir. Bir anakartı alıp cihaz kutusuna koymak ve işletim sistemi üzerine uygulama yazmak her zaman istenilen sonucu vermeyebilir. İstediğimiz işlemi yapacak bir entegreyi piyasada bulamayabiliriz. Bu durumda ASIC adı verilen özel entegreleri üretmek durumunda kalırız. Bu özel entegreleri tasarlayıp ürettirebilsek de bunun maliyeti aşırı derecede fazla olacaktır. Bu durumda bizim “tasarlanabilir” bir entegre kullanmamız birim başına maliyeti yüksek olsa da az sayıda üretilecek bir sistem için en uygunu olacaktır.

Mantıksal devreleri ikiye ayırmamız mümkündür. Bunlardan biri sabit mantık devreleri (fixed) olup belli başlı mantık kapılarının devre yolu ile birbirine bağlanmasından meydana gelir. Bu mantık devreleri üzerinde fiziksel bir değişiklik yapmadan devreyi değiştirmek mümkün değildir. Bu sabit devreler içerisinde mikroişlemciler de bulunmaktadır. Bir mikroişlemci her ne kadar sabit bir devre olsa da o sabit devreyi çalıştıracak bir programa ihtiyaç duymaktadır. Programlanabilir bir aygıt olması devresi sabit olduğu halde bu sabit devrenin belli başlı program kodu ile çalışmasından ileri gelir. Biz programlanabilir mantık dediğimizde ise bu mantık devrelerinin programlanmasını kast ederiz. Programlanabilir mantığa program yazmak sabit devre olan mikroişlemcilere program yazmaktan çok çok farklıdır.

Resimde sabit bir mantık devresi ile basit bir programlanabilir mantık devresini görmekteyiz. İki devreyi karşılaştırdığımızda sabit mantık devresinin tek bir işi yapmaya yönelik ve müdahale edilemez bir yapıda olduğunu görmekteyiz. Böyle bir mantık devresini 74 serisi entegreleri alıp PCB üzerinde kendimiz de yapabiliriz. Önemli nokta bu yolların herhangi bir şekilde değişikliğe maruz kalamamasıdır. Sabit mantık devresi tasarlamak basit devrelerde ucuz ve zahmetsiz bir yol gibi görünse de iş yüzlerce kapı üzerinde çalışmaya gelince oldukça zorlaşmakta ve maliyet artmaktadır. O yüzden içinde programlayabileceğiniz yüzlerce kapı bulunan bir entegreyi kullanmak çok daha kolay olacaktır. Programlanabilir mantık devresine baktığımızda kapıların ve yolların her mantık işlemini yapmaya müsait bir halde mevcut olduğu ve bu yolların değiştirilmesiyle istenilen mantık işleminin gerçekleştirilebildiğini görüyoruz. Biz istersek bunu ilgili mantık kapıları ve DIP switch adı verilen anahtarlarla da yapabiliriz. Bu çip haline gelemedikçe oldukça pahalı bir yol olacaktır.

Kendi entegremizi tasarlamak istersek 50 bin ile 1 milyon dolara kadar olan bir üretim masrafını gözden çıkarmak gereklidir. Bu entegrenin karmaşıklığına göre artıp azalmaktadır. Ayrıca entegre tasarım süreci oldukça sıkıntılı ve uzun bir süreçtir. Bu sürecin maliyetini de bu maliyetin üzerine eklemek gerekir. Bir entegre üretileceği zaman bir kereliğine üretilir. Programlanabilir mantık aygıtları olmadan üretimden önce herhangi bir deneme yapma şansımız olmaz. Eğer entegre hatalı çıkarsa bütün bu paranın çöpe gideceğini akılda bulundurmak gereklidir. Mikrodenetleyici sistemlerinde olduğu gibi programı defalarca denemek, prototip yapmak mümkün değildir. İşte bu durumda programlanabilir mantık aygıtları büyük kolaylık sağlamakta ve entegrelerin kolayca tasarlanıp üretilmesinde büyük katkısı olmaktadır. Bir entegre üretime geçmeden önce programlanabilir mantık aygıtları üzerinde denenir ve defalarca değişiklik ve düzeltme yapılabilir. Entegreler HDL adı verilen donanım tanımlama dillerinde tasarlandığı için HDL’de yazdığımız kod entegre olarak üretilmeye hazır haldedir.

Programlanabilir mantık aygıtları sadece amaca özel entegre (ASIC) tasarımında kullanılan aygıtlar değildir. Yeri geldiğinde ASIC tasarlayıp üretmek istemeyenlerin başvurduğu aygıtların başında gelir. Böylelikle ASIC entegre üretme maliyetinden çoğu üretici kurtulmuş olur. Örneğin 5 dolara alacağınız programlayıcı ve 20 dolarlık bir FPGA ya da CPLD ile kendi entegrenizi yapmanız mümkündür. Programlanabilir mantık seri üretimde ASIClerden pahalıya gelse de 100-200 tane üreteceğiniz bir ürün için programlabilir mantık kullanmak çok daha ucuza gelecektir.

Programlanabilir mantık aygıtları çoğu iş için ASIC entegrelerin yerinde kullanılabilse de yapılarından dolayı ASIC’e karşı yavaş ve yüksek güç tüketimine sahiptirler. Örneğin Bitcoin madeninde ASIC yerine FPGA kullanmanın bir anlamı yoktur. En yüksek performansı yine ASIC entegrede alırız. Bunun sebebi programlanabilir mantık entegreleri aynı işi yapmak için çok daha fazla kapıya ve yola ihtiyaç duymaktadır o yüzden bu dezavantajı önlemenin yolu yoktur. Dijital devrelerdeki yayılma gecikmesinin sonucu olarak düzgün tasarlanmamış bir programlanabilir mantık devresi oldukça yavaş sonuçlar verebilir.

Bu dezavantajlarına rağmen programlanabilir mantık devreleri teknolojinin ilerlemesine büyük katkıda bulunmuştur. Önce PLD, PAL gibi basit devreler kullanılsa da bu yönde teknolojinin gelişmesiyle içerisinde milyonlarca mantık kapısı bulunduran entegreler ortaya çıkmıştır. Günümüzde bazı FPGA entegrelerinin fiyatı 10 bin dolara kadar çıkmaktadır. Aynı zamanda programlanabilir mantık entegreleri ucuzlamakta ve 5-10 dolar arasında entegreler bulunabilmektedir. Mikrodenetleyicilerle kıyasladığımızda oldukça pahalı olsa da bu entegrelerin kullanıldığı sistemlerde 5-10 dolar maliyetin artmasının pek de bir önemi yoktur. Programlanabilir mantık kullanılan sistemlere baktığımızda hepsinin yüksek katma değerli ve maliyetinin kat kat üzerinde satış fiyatına sahip olan sistemler olduğunu görürüz. Bu yönde bir üretim yapmak isteyenlerin programlanabilir mantığı öğrenmesinin bir sakıncası yoktur.

Programlanabilir mantık hakkında Türkçe kaynakların oldukça az olduğunu görüyoruz. Bu yüzden bu konuda çalışma yapacak mühendisler ve öğrenciler için programlanabilir mantık serisini yazarken mümkün olduğu kadar ayrıntılı ve kaliteli yazmaya gayret edeceğiz.

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

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

UYARI!!

Kaynaklar, 

ASICs vs. PLDs, http://www.csun.edu/edaasic/roosta/ECE595_Chap5.pdfi , Erişim Tarihi: 25.02.2019

Complete Digital Design, Mark Balch, The McGraw-Hill, 2003, ABD

Digital Electronics Principles, Devices and Applications, Anil K. Maini, Wiley, 2007, İngiltere

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...

Bir cevap yazın

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