FPGA,
VHDL,VERILOG
FPGA` ler, donanım yapısı üretimden sonra
kullanıcı tarafından istenen fonksiyona göre değiştirilebilen entegre (bütünleşmiş)
devrelerdir. Bu teknoloji günümüzde tüketici elektroniğinde, medikal
alanlardan, uzay ve savunma sanayi alanlarına kadar çok geniş bir yelpazede
kullanılmaktadır. VHDL ise günümüzde yaygın olarak kullanılan donanım tanımlama
dili olup, FPGA` in donanım yapısının değiştirilmesi için kullanılır. Yazımıza
FPGA` ler hakkında detaylı bilgiler vermek üzerine devam edelim.
FPGA
FPGA, “Field
Programmable Gate Array” ifadesinin kısaltması
olup Sahada Programlanabilir Kapı Dizinleri anlamına gelmektedir. Kapı
dizinleri (Gate Array) ismi, FPGA` in yapısının Gate Array ASIC` lere
benzemesinden dolay verilmiştir. Sahada Programlanabilir olması da yazımızın
başında belirttiğimiz üzere FPGA` in üretimden sonra programlanabilme
özelliğini belirtir. Öyleyse FPGA` i üretimden sonra istenen fonksiyona göre
donanım yapısı kullanıcı tarafından değiştirilebilen entegre devre olarak
tanımlayabiliriz.
FPGA`
i daha iyi anlayabilmek için, içindeki transistorları birbirinden bağımsız ve
serbest olarak üretilmiş ham bir entegre olarak hayal edebiliriz. Kullanıcının
belirleyeceği tasarıma göre FPGA içindeki transistorlar yazılan programlarla
birbirine bağlanabilir ve bu sayede istenen fonksiyonlar gerçekleştirilebilir.
Yani teorik olarak sahip olduğu transistor kapasitesi dahilinde aklınıza gelen
herhangi bir entegrenin yaptığı işi FPGA ile yapabilirsiniz.
Altera De2-115 Development Board
FPGA
Özellikleri
Paralel işlem yapabilme kabiliyeti basta olmak üzere, sahada
programlanabilme, tasarımın test edilip doğrulanabilmesi ve istenirse içine
işlemci sistemi dahi gömülebilmesi gibi birçok özelliği, FPGA` i günümüzde
popüler kılan yönlerdir.
Paralel işlem yapabilme kabiliyeti FPGA` lerin en önemli özelliklerinden
biridir. Aynı anda birden fazla işlemi yapabilme anlamına gelen bu özellik,
FPGA` in diğer entegrelere göre daha hızlı çalışmasını sağlar. Sıradan
entegreler ya hiç paralel işlem yapamazlar ya da çok sinirli sayıda
yapabilirler. FPGA` de ise uygulamaya ve kapasiteye bağlı olarak, birbirinden
bağımsız onlarca belki yüzlerce işlemi ayni anda yapmak mümkündür. Ayni anda
birden fazla işlemi yapabilme özelliği, paralel işlem gerektiren uygulamalarda
FPGA` leri eşsiz kılmaktadır. FPGA` ler ayni zamanda tasarlanan programın FPGA`
e yüklenmeden önce bilgisayar ortamında simülasyonu yapılabilme imkânı da
sağlar.
FPGA
Kullanım Alanları
FPGA`
ler tüm bu özelliklere sahip olmasından ve neredeyse bütün tasarım türlerine
hitap etmesinden dolayı bir çok alanda kullanıldığını rahatlıkla
söyleyebiliriz. Bunlara, Uzay ve Savunma Sanayi, Otomotiv, Kablolu/Kablosuz
İletişim, Güvenlik/ Şifreleme, Tıbbi Elektronik alanları örnek olarak
verilebilir.
FPGA
Yapısı
Yarı
iletken teknolojisi ile üretilen FPGA` ler, temel olarak Mantık Hücreleri
(Logic Cell) Giriş/Çıkış Blokları (IO Blocks) ve Programlanabilir Ara
Bağlantılar`dan oluşur. Yapılandırılabilir özellikli olan mantık hücreleri FPGA
içerisinde matris seklinde yerleştirilmiştir. Programlanabilir Ara Bağlantılar
ile bu mantık hücreleri birbirine bağlanmıştır.
FPGA
Yapısı
FPGA
Üreticileri
Başlıca FPGA üreticileri Xlinx, Altera, Lattice, Micrpsemi, Quicklogic
ve SliconBlue firmalarıdır. Pazarın büyük çoğunluğunu ellerinde bulunduran
Xlinx ve Altera dünyanın en büyük iki FPGA üreticisidir. Bu iki firma birlikte
pazarın yaklaşık %90 ini ellerinde bulundurmaktadır.
XLINX
firması FPGA` i ilk üreten firmadır ve su sıralarda dünyanın en büyük FPGA
üreticisi konumundadır. Spartan ailesi güç tüketimini, risk ve maliyeti düşük
uygulamalar için piyasaya sunulan bir urun gurubudur. Bu ailenin yanında
kullanım amacına göre seçilebilecek diğer ürünleri de mevcuttur. Xlinx
yazılımlarından bahsedecek olursak, Xlinx ISE Design Suite kapsamlı bir program
olup, Xlinx` in kendi FPGA ve CLPD` leri (Complex Programmable Logic Device)
için sunduğu tasarım ve sentezleme programıdır. Bu program ilerleyen yazımızda
detaylıca bilgi vereceğimiz VHDL ve Verilog dillerini desteklemekte ve şematik
çizimlere imkan vermektedir.
ALTERA
firması en önemli iki FPGA üreticinden biri konumundadır, Xlinx firmasının yakın takipçisi ve en büyük
rakibidir. Ayni zamanda CLPD, ASIC ve işlemci de üreten firma; geliştirme
kartları programlama kodları, fikri mülkiyet çekirdekleri (IP core) ve tasarım
yazılımları da sunmaktadır. Altera firmasının Cyclone ailesi, Xlinx firmasinin
Spartan ailesi gibi düşük maliyeti, düşük güç tüketimi ve büyük miktarda
üretimleri için sunduğu ürünlerden birisidir. Diğer alanlardaki kullanım amaçları
için piyasaya sürdüğü diğer ürünleri de bulunmaktadır. Altera yazılımlarından
bahsedecek olursak, firma FPGA tasarımı ve sentezlemesi için Quartus yazılımını
geliştirmiştir. Quartus programında özel tasarlanmış SOPC Builder ve Qsys aracı
kullanarak, FPGA içerisine soft mikroişlemci gömülmektedir.
Yani
özetlemek gerekirse eğer çalışmak istediğiniz mikroişlemci Xlinx firması
tarafından üretilen bir urun ise onu programlamanız için edinmeniz gereken
Program ISE Design Suit Programıdır. Eğer Altera firması tarafından üretilen
bir mikroişlemci kullanmak istiyorsanız Quartus Programını edinmeniz gerekiyor.
Bu iki program arasında sadece arayuz farkı vardır. Yani öğrendiğiniz
Programlama dili VHDL de olsa Verilog da olsa ikisini de hem ISE Design Suit programında
hem de Quartus` ta programlayabilirsiniz. Peki kullandığımız bu VHDL ve Verilog
kelimeleri nedir ?
VHDL
ve Verilog
VHDL, “Very High-Speed Integrated Circuit Hardware Description Language” ifadesinin kısaltması olup Çok
Hızlı Entegre Devre Donanımı Tanımlama Dili anlamına gelir. VHDL, Verilog ile
beraber günümüzde en yaygın kullanılan donanım tanımlama dilidir. Donanım parçalarını
modellemede kullanılır. Verilog` ta
ayni şekilde elektronik sistemleri modellemek için kullanılan donanım tanımlama
dilidir. Yapısal olarak C programlama diline benzemektedir. VHDL ve Verilog
birbirlerinden farklı gibi görünseler de birbirlerine göre avantajları ve
dezavantajları vardır. Eğer yeni başlayan biriyseniz yapısal olarak daha kolay
olduğu için Verilog ile başlamanızı tavsiye edebilirim. Aralarındaki en büyük
fark, VHDL dilinin daha kompleks tasarımlarda kullanılmasıdır. Buna su şekilde
örnek verebiliriz: Verilog` ta yazdığınız her türlü programı VHDL diline
uyarlamanız mümkündür fakat tersi her zaman mümkün olmayabilir. Bu yüzden daha
basit tasarımlarda mümkün oldukça C diline benzemesini de göz önünde
bulundurarak Verilog`u kullanmak avantajlı olacaktır.
Son olarak bu yazımda son zamanlarda sıkça
kullanılan FPGA entegre devresinden ve onu programlamak için kullandığımız VHDL
ve Verilog donanımı tanımlama dillerinden bahsettik.
FPGA ile ilgili gerek proje gerek genel bilgiler almak isterseniz gokhan_bilik@hotmail.com
adresinden bana ulaşabilirsiniz. Fırsat oldukça, FPGA Altera DE2-115
Development and Education Board`unu ve bu board ile yapılmış projeler de dahil
olmak üzere Quartus Programı ile detaylı bilgilerle sizlerle olacağım. İyi
çalışmalar dilerim.
Gökhan BİLİK
Elektrik-Elektronik Mühendisi