FPGA İle Sayısal Devre Tasarımı
FPGA ile SAYISAL DEVRE TASARIMI
Gömülü Sistemler
Herhangi bir sistem
içerisinde yer alarak, o sistemi akıllı hale getiren elektronik donanım ve yazılım ile oluşmuş entegre sisteme gömülü sistem denir. Bu yazılımların bilgisayarlarımızdaki yazılımlardan en büyük farkı tek bir görevi yerine getirmesi ve
kullanıcıyla dolaylı olarak etkileşimde bulunmasıdır. Günlük yaşantımızda
kullandığımız eşyalarımızın hemen hemen hepsinde bu sistemi görmek mümkündür.
Kişisel bilgisayar, yazıcı, tarayıcı, hesap makinesi, cep telefonu, televizyon
fotoğraf makinesi, bulaşık makinesi, elektronik oyuncaklar vb. Gömülü sistemler, genellikle daha büyük bir sistemin içinde “gömülü”
olarak çalışırlar. Örneğin bir çamaşır makinesinde veya buzdolabında
birçok mekanik bölüm olmasıyla birlikte, bütün bunları kontrol eden bir veya
birden fazla mikro denetleyici tabanlı sistem bulunur. Bu sistemler
kullandığımız cihazların “akıllı olmasını” sağlayan, beyin vazifesi gören
birimlerdir. Örneğin: buzdolabının kapağını açtığımızda ışığının yanması bu
beyin vazifesi gören birim sayesinde olan bir işlemdir.
FPGA Yapısı
FPGA temel olarak Mantık Hücreleri (Logic Cell),
Giriş/Çıkış Blokları (IO Block) ve Arabağlantılar'dan oluşur.
Mantık Hücresi
(Logic-Cell)
FPGA’in ana
yapısını Mantık Hücreleri oluşturur. Bir Logic-Cell 1 adet Lookup
Table (LUT), 1adet D Flip-Flop ve bir adet 2 to 1 Mux’ tan
oluşur.
LUT 'lar aslında
bir mantık işlemi yerine getiren küçük belleklerdir (RAM). N girişli bir LUT, 2
eN ’li bir belleğe işaret eder. Binlerce Mantık Hücreleri' nin birleşimi
sonucunca kompleks ve büyük programlar oluşturulur. Mantık hücrelerinin ara
bağlantıları matris şeklindeki veri yolları ve programlanabilir anahtarlarla
(FPGA yüklenen programa göre) sağlanır. FPGA tasarımı, her bir mantık
hücresinin uygulayacağı fonksiyonu ve programlanabilir anahtarların durumunu
(açık/kapalı) belirleyerek bu mantık hücreleri arasındaki bağlantıları
tanımlar.
FPGA Pinleri
FPGA pinleri genel
olarak 2 kategoriye ayrılır.
- Ayrılmış pinler (Dedicated pins)
- Kullanıcı pinleri (User pins)
a) Ayrılmış Pinler
Bir FPGA 'de tüm
pinlerin %20 ila %30'u ayrılmış pindir. Bu pinler, FPGA 'de gerçekleştirdikleri
özel fonksiyonlara göre 3'e ayrılır.
- Güç Pinleri: FPGA için gerekli olan güç ve ground
(Toprak) sağlayan pinlerdir.
- Konfigürasyon Pinleri:
Oluşturulan programın FPGA yüklanmesi (download) için kullanılan
pinlerdir.
- Clock Pinleri: Clock sinyalleri için ayrılmış özel pinlerdir.
b) Kullanıcı Pinleri
Bunlar kullanıcı
tarafından konfigüre edilebilen standart I/O pinleridir. Input, Output,
Input/Output olarak üç kategoriye ayrılır. Her bir I/O pini FPGA'de bir IO
hücresine bağlıdır. IO hücrelerinin güçleri VCCIO tarafından sağlanır. Eski
FPGA' ler birden fazla VCCIO pinine sahip olmalarına rağmen, bütün pinler aynı
voltajla beslenirdi. Yeni üretilen FPGA 'lerde ise IO'lar gruplara ayrılabilir
ve bu gruplar farklı voltajlardan beslenebilirler. Böylelikle bir grup IO
pinleri 3.3 V ile çalışırken; diğer grup IO pinleri de 2.5 volt ile
çalışabilmektedir.
CLOCK ve GLOBAL Lines
FPGA genellikle
senkronize dizayn edilir. Yani FPGA tasarımları clock tabanlıdır ve FPGA
içerisindeki D Flip-Floplar, clock sinyalinin yardımıyla durum değiştirirler.
Senkronize dizaynlarda bir clock sinyalinin, bütün flip-flop'ları aynı anda
tetiklemesi gerekir. Aksi takdirde FPGA'de elektriksel ve zamansal problemler
oluşmaktadır. FPGA üreticileri bu problemleri ortadan kaldırabilmek için,
"Global Routing" veya "Global Line" olarak adlandırılan
özel bir iç bağlantı geliştirmişlerdir. Bu bağlantı sayesinde, Clock sinyalinin
FPGA içerisindeki bütün Flip-Flop'lara aynı anda ulaşması sağlanır.
Bundan dolayı clock
beslemelerinin, FPGA' in clock için ayrılmış pinlerinden verilmesi
gerekir.
RAM Blokları
Günümüzde FPGA’
lerin hemen hepsinde ayrılmış RAM yani bellek üniteleri bulunmaktadır. Bunlar
mantık devrelerinin işleyişi sırasında duyulan geçici depolama ihtiyacı için
kullanılırlar. Bu RAM’ ler tek veya çoklu erişimi destekleyebilirler.
Çoklu erişimde birden fazla uygulama RAM üzerinde okuma/yazma
yapabilmektedir. Çoklu erişim farklı clock ’ta çalışan işlem blokları arasında
veri aktarımı için iyi bir çözümdür. Örneğin 25 MHz clock ile çalışan bir veri
toplama ünitesinden 50 Hz ile çalışan bir veri işleme ünitesine veri aktarmak
için 2 port’ lu bir RAM kullanabiliriz. 25 MHz ile çalışan veri toplama ünitesi
veriyi RAM’ e yazar ve 50 MHz de çalışan veri işleme ünitesi veriyi RAM’ den
okuyarak kullanır. FPGA içerisinde büyük RAM ihtiyaçları için Block RAM’ ler
bulunurken küçük veriler için mantık hücreleri arasına serpiştirilmiş dağınık
küçük RAM’ ler bulunmaktadır. Dağınık RAM için Xilinx ihtiyaca göre mantık
hücrelerinin bazılarını RAM olarak kullanırken Altera block RAM’ leri FPGA
içerisinde değişik boyutlarda paylaştırmaktadır.
FPGA Mimarisi
FPGA ’lar birçok firma
tarafından üretilir ve birbirinden farklı yapıda bulunabilirler. Bu
farklılıklara rağmen cihazlar arasında tasarım mimarisi açısından birçok
benzerlik bulunmaktadır. FPGA; programlanabilir mantık
blokları, bu blok dizisini çevreleyen giriş-çıkış blokları ve ara bağlantılar
olmak üzere düzenlenebilir üç ana bölümden oluşmuştur. Programlanabilir mantık
blokları, ara bağlantılar içerisine gömülü şekilde bulunur. Bunların
yapılandırılması ve aralarındaki iletişim ara bağlantılar sayesinde
gerçekleşir. Giriş-çıkış blokları, ara bağlantılar ile bütünleşmiş devrenin paket bacakları
arasındaki bağlantıyı kurar.
FPGA’ nın Kullanım Alanları
·
ASIC tasarımında
·
Sayısal işaret işlemede
·
Yazılımsal mikroişlemci tasarımında
·
Haberleşme ağlarında iletişim ağı protokolleri
kurmada
·
Donanım simülasyonlarında
Yorumlar
Yorum Gönder