Makaleler / Elektronik / Mikrokontrolür Mikroişlemci / Programlanabilir Lojik Aygıtlar


Yazar: İ. Burak Koç
Gönderen: burakkoc   Tarih: 13-11-2008 18:58
Yorumlar: (0)   Oylar:
Bu bölümde programlanabilir lojik aygıtların tarihsel gelişimleri ve fiziksel yapılarından bahsedilmiştir. Ayrıca FPGA’ların üstünlükleri ve kullanım alanları anlatılmıştır.

1. Maskelenmiş Kapı Dizileri ve ASIC

ASIC'ler (Application Specific Integrated Circuit), yarıiletkenlerin fiziksel özelliklerini ve genel entegre tasarım işlemlerini bilmeye gerek kalmadan, özel bir uygulama gerçekleştirmek üzere kolayca tasarlama imkanı sunan entegre devrelere verilen isimdir. ASIC üreticileri, tasarımcıya hücre kütüphaneleri ve fonksiyonlar sunar. Tasarımcının bu fonksiyonların silikon bir çipe nasıl yerleştirildiğini bilmesine kesinlikle gerek kalmaz. Pek çok üretici, kendi ürünleri için, tasarımı kolaylaştıran yazılım desteğini de sunmaktadır.
Kapı dizileri, düzenli transistor yapılarından oluşturulmuş, satır ve sütunlar içeren ASIC'lerdir. Her temel hücre veya kapı az sayıda bağlanmamış transistörler içerir. Tüm bağlantılar tasarım yapıldıktan sonra yapılır. Tasarım oluşturulduktan sonra, planlama yazılımı transistörlerin bağlantılarını düzenler. Örneğin birbirine yakın transistorleri bağlayarak bir lojik kapı gerçekleştirilebilir. Diğer fonksiyonlar da benzer şekilde gerçekleştirilerek fiziksel olarak tasarım tamamlanır. Maskelenmiş kapı dizilerini gösteren satır ve sütun yapısı ile lojik bağlantıların FGPA içerisinde yerleşimi ve giriş çıkışlar Şekil 3.l'de görülmektedir.

2. Programlanabilir Cihazların Gelişimi

Programlanabilir cihazlar bugünkü karmaşık yapılarına ulaşana kadar, uzun bir gelişim süreci geçirmiştir. Bu kısımda FPGA'ların atası sayılabilecek bu cihazlar kronolojik olarak kısaca tanıtılacaktır.


Şekil 1. Maskelenmiş kapı dizisi



2.1. Programlanabilir salt-okunur bellekler (PROM)

Programlanabilir salt-okunur bellekler (Programmable Read-Only Memory) ya da kısaca PROM'lar, kullanıcı tarafından programlanabilen ve belirli bir bilgi deseni içeren cihazlardır. Bu bilgi deseni bir mikroişlemci programı, basit bir algoritma ya da bir durum makinesini ifade edebilir. Bazı PROM'lar kullanıcı tarafından bir kez programlanabilirken, bazıları (EPROM, EEPROM vb.) pek çok kez silinip programlanabilir. PROM'lar, sınırlı sayıda giriş ve çıkışları olan tümleşik (combinatorial) lojik devreleri tanımlamada kusursuz yapılardır. Fakat sıralı (sequential) lojik devreleri gerçekleştirmek için harici cihazlara (mikroişlemci vb.) ihtiyaç vardır. Ayrıca PROM'lar hız gerektiren uygulamalar için uygun değildir.


2.2. Programlanabilir lojik diziler (PLA)

Programlanabilir Lojik Diziler (Programmable Logic Arrays), PROM'ların hız ve sınırlı I/O sorununa bir çözüm olarak üretilmiştir. PLA'lar bir AND (ve) düzlemine bağlı girişler ve bir OR (veya) düzlemine bağlı çıkışlardan oluşur. AND (ve) düzleminin çıkışları OR (veya) düzleminin girişlerini oluşturur. Girişler tasarıma göre önce AND (ve) düzleminde lojik AND (ve) işlemine, ardından OR (veya) düzleminde lojik OR (veya) işlemine tabi tutulur. Hem AND hem de OR düzlemi programlanabilir. Böylelikle pek çok fonksiyon gerçekleştirilir. PROM'larla oluşturulabilen tüm kombinasyonları gerçekleştiremese de daha çok giriş çıkış sunar ve hızı daha yüksektir. Örnek bir PLA mimarisi Şekil 3.2’de görülmektedir.



Şekil 2. PLA mimarisi



2.3. Programlanabilir dizi mantığı (PAL)

Programlanabilir Dizi Mantığı (Programmable Array Logic), PLA'nın değişik bir şeklidir. Tıpkı PLA gibi, girişler lojik AND (ve) işlemine tabi tutan bir AND (ve) düzlemine sahiptir. Ancak OR (veya) düzlemi, lojik OR (veya) işlemini sınırlayacak şekilde sabitlenmiştir. PAL’lerde sadece AND düzlemi programlanabilir. Girişlere ve çıkışlara MUX, XOR ve mandallar gibi basit lojik devreler eklenmiştir. En önemli farkı flip-floplar gibi saat darbesine ihtiyaç duyan elemanların gerçekleştirilebilmesidir. Böylelikle flip-flopların çokça kullanıldığı, durum makineleri gibi sistemlerin gerçekleştirilmesine büyük kolaylık sağlamışlardır. PAL'ler aynı zamanda son derece hızlı çalışabilirler. PAL mimarisi Şekil 3.3’de görülmektedir.



Şekil 3. PAL mimarisi



2.4. Karmaşık programlanabilir lojik cihazlar (CPLD)

Karmaşık Programlanabilir Lojik Cihazlar (Complex Programmable Logic Devices), halen sıkça kullanılan önemli lojik devreleridir. Aslında çok sayıda birbirine bağlı PAL içeren devrelerdir. PAL'ler ile aynı geliştirme araçları ve yazılımları kullanılır, aynı teknolojiye dayanırlar fakat, daha işlevseldirler.

2.4.1. CPLD mimarisi

Şekil 3.4’de tipik bir CPLD'nin iç mimarisini görülmektedir. Her üreticinin değişik çeşitleri bulunmasına karşın, temel yapıları benzerdir ve fonksiyon blokları, giriş/çıkış (I/O) blokları ve bağlantı matrisi içerirler. Üreticinin sunduğu, EPROM, EEPROM ya da Flash EPROM gibi teknolojilere bağlı olarak programlanabilirler.

Tipik bir fonksiyon bloğu Şekil 3.5'de görülmektedir. AND (ve) düzlemi kesişen teller şeklinde bulunmaktadır. AND (ve) düzlemi, I/O bloklarından, aynı fonksiyon bloğundan geri besleme olarak veya diğer fonksiyon bloklarından giriş kabul edebilir. Geniş bir MUX aracılığıyla seçilen terimler sabit sayıda OR (veya) kapısı kullanılarak lojik OR (veya) işlemine tabi tutulur. MUX çıkışları doğrudan ya da saat darbeli bir flip-flop üzerinden blok dışına çıkarılabilir. Blokta seçilebilir XOR kapısı, ana RESET sinyali vb. lojik operatörler de bulunur.


Şekil 4. CPLD mimarisi



Şekil 5. CPLD fonksiyon bloğu yapısı



I/O blokları
Şekil 3.6'da tipik bir CPLD I/O bloğu görülmektedir. Bu bloklar, entegrenin dış bağlantı ucunu sürebilmek için gerilim seviyesini ve akımını düzenler. Genelde devrede bir flip-flop bulunur. Böylelikle saat darbeli sinyaller, belirgin bir gecikme ile karşılaşmadan çıkışa uygulanabilir. Ayrıca blok giriş olarak programlandığında, cihaz için gereken tutma süresini de azaltır. Şekilde gösterildiği gibi bazı ekstra lojik birimler de eklenerek cihazın kaynak sayısı arttırılmıştır.



Şekil 3.6. CPLD I/O bloğu yapısı



Bağlantı matrisi
CPLD'lerin ara bağlantı birimi bir anahtarlama matrisinden oluşur. Bu matris, cihazın tüm kısımlarının birbiriyle haberleşmesini sağlayacak kadar büyüktür. Programcı bu matrisi gerektiği gibi düzenleyerek, çok esnek bağlantı kombinasyonları düzenleyebilir.


3. Alan Programlanabilir Kapı Dizileri (FPGA)

Alan Programlanabilir Kapı Dizileri (Field Programmable Gate Arrays) yukarıda anlatılan tüm cihazların özelliklerine ve çok daha fazlasına sahiptirler. Esneklikleri çok daha fazladır. Fiyatlarının da hızla düşmesi, ASIC cihazların yerini almasını kolaylaştırmaktadır.


3.1. FPGA mimarisi

Her üretici kendine özgü bir mimari kullansa da, temel FPGA mimarisi Şekil 3.7'de görülen yapıya dayanmaktadır. Bu mimariyi oluşturan başlıca kısımlar Yapılandırılabilir Lojik Bloklar (CLB - Confıgurable Logic Blocks), Yapılandırılabilir I/O Blokları (CIOB -Confıgurable I/O Blocks) ve Dahili Bağlantı Matrisi'dir. Aynı zamanda, her lojik blok saat darbelerini sürmek için bir saat devresi içerir. Bazı tiplerde dahili olarak bir ALU, hafıza birimleri, kod çözücü vb. birimler de bulunmaktadır. FPGA'lar genelde program bilgisini statik bir RAM'da tutar.



Şekil 7. Genel FPGA mimarisi


3.1.1. Yapılandırılabilir lojik bloklar (CLB)

Yapılandırılabilir lojik bloklar FPGA'ların tüm lojik işlemlerini gerçekleştirdiği bloklardır. Kapsamlı bir CLB, bir durum makinesi yapmak için yeterli eleman ihtiva eder. Daha az bileşen eleman içeren CLB yapısına sahip FPGA'lar da üretilmektedir. Fakat bunlar daha çok ASlC'lere benzer. Şekil 3.8'de kapsamlı bir CLB'nin detaylı şeması
görülmektedir. İçerisinde, herhangi bir tümleşik lojik devreyi gerçekleştirmek üzere RAM, saat darbeli depolama elemanları için flip-flop'lar ve bağlantıları gerçekleştirmek için çoğullayıcılar bulunur. Bu çoğullayıcılar polarite seçimine ve RESET, CLEAR uçlarına sahiptir.



Şekil 8. Yapılandırılabilir lojik blok


3.1.2. Yapılandırılabilir I/O blokları (CIOB)

Yapılandırılabilir I/O blokları, entegrenin tüm dış I/O işlemlerini gerçekleştirirler. Bir giriş tamponuna (buffer) ve üç durumlu (three state) açık kolektör (open collector) çıkış tamponuna sahiptir. Çıkışlarda kollektör (pull-up) dirençleri bulunur. Çıkışların polaritesi, yükselme ve düşme süreleri programlanabilir.


3.1.3. Programlanabilir bağlantı matrisi


FPGA'ların bağlantı matrisleri CPLD'lerden çok ASIC kapı dizilerine benzer. Şekil 3.9'da bağlantı kaynakları görülmektedir. Birbirlerinden uzak bulunan CLB'leri, gecikmeye neden olmadan bağlayabilmek için uzun hatlar bulunur. Yakın blokları bağlamak için de kısa hatlar bulunur. Hatlar arasında bulunan bağlantı matrisleri de kısa ve uzun hatları birbirlerine bağlamak için kullanılır. Entegre içerisinde; saat darbeleri (CLOCK) için tasarlanmış, hızlı yayılma ve düşük empedans özelliklerine sahip uzun hatlar da ayrıca mevcuttur. CLB'lerin içindeki saat darbesine ihtiyaç duyan elemanlara doğrudan bağlıdırlar.



Şekil 9. Programlanabilir bağlantı matrisi



4. FPGA’ların Üstünlükleri ve Kullanım Alanları

Bu bölümde FPGA’ların mikroişlemcilere göre üstünlüklerinden ve genel olarak kullanıldığı yerlerden bahsedilecektir.

4.1. FPGA’nın üstünlükleri

FPGA’lar mikroişlemcilerle karşılaştırıldığında paralel işlem yapabilme özelliğinden dolayı çok daha hızlı işlem yapabilmektedirler. Ayrıca güvenliğin ön planda tutulduğu sistemlerde ayrık elemanlar kullanmak hem sistemin boyutlarının büyümesine hem de karmaşık bağlantılardan dolayı meydana gelebilecek gürültü sinyallerinden çok çabuk etkilenmeye sebep olmaktadır. Çok büyük ve karmaşık sistemlerin FPGA’larla gerçekleştirilmesi hem yer hem güvenlik ve hem de tasarım açısından kolaylıklar sağlamaktadır. Uygulamaya yönelik tasarımlarda FPGA’lar sınırsız sayıda yeniden programlanmaya imkan sağlaması ile beraber tasarımcıya deneme maliyeti ve zaman açısından çok büyük avantajlar sağlar.


4.2. FPGA’ların kullanım alanları

FPGA’ların kullanımı, getirdikleri üstün özellikleri ve kolaylıklar sayesinde günümüzde pek çok alanda büyük bir hızla yaygınlaşmaya başlamıştır. Özellikle mikrodenetleyicilerin yetersiz kaldığı küçük sistemlerde işlemci kullanmak hem sistemi büyütmekte hem de maliyeti arttırmaktadır. Bu nedenle orta ve büyük ölçekli sistemlerde uygulamaya yönelik tasarımlarda FPGA kullanımı yaygınlaşmaya başlamaktadır.

Ülkemizde FPGA’ların en sık kullanıldığı yerlerden birisi de ASELSAN dır. Gece görüş ve görüntü işleme alanında FPGA’lar, amaç doğrultusunda programlanarak kullanılmaktadır. Önceleri DSP (Digital Signal Processing) çipleri ile tasarlanan ve üretilen ürünler artık FPGA’lar kullanılarak üretilmeye başlanmıştır. Bunun sebebi FPGA’ların görüntü işleme için gerekli olan hızı, kararlılığı ve sistem güvenliğini sağlamasıdır [2].

Bunun dışında FPGA üzerinde yapılan çalışmalar sonucunda isteğe yönelik işlemciler yapılabilmektedir. Böylece kullanıcı kendine göre daha esnek şekilde kullanabileceği hızlı ve kararlı bir işlemci tasarlamış olmaktadır [2].

FPGA kullanımı sanayide de hızla yaygınlaşmaya başlamıştır. Bunun sonucu olarak araştırma geliştirme laboratuarlarında FPGA’ların yeri hızla artmaktadır. Örneğin trafik ışığı kontrolü gibi işlemler artık FPGA’lar kullanılarak yapılmaya başlanmıştır.

Kullanım alanlarının çoğalması ile birlikte FPGA’lara olan ilgi artmış ve okullarda bu konularda seminerler ve uygulamaya yönelik değişik çalışmalar yapılmaya başlanmıştır.

Amaca yönelik tasarımlarda FPGA kullanımı hem yerden tasarruf sağlamakta, hem de maliyeti azaltmaktadır.