FPGA

FPGA Nedir?

Bu yazımda FPGA nın en temel tanıtımını yapmaktan ziyade FPGA konusunda bazı detay bilgiler vermeyi planlıyorum. Temel bilgi için wiki sayfasına bakılabilir.

FPGA bir mikrodenetleyici gibi içerisine gerekli temel modüller eklenmiş programlanarak direk uygulamalarda kullanılan bir sistem değildir. İçerisinde temel bölmeler içeren, bu bölmeleri temel sayısal tasarım işlemleri ile kapı olarak, hafıza elemanı olarak kullandırtan daha çok deneme işleri için kullanılan bir yapıdır. Adı üzerinde “field-programmable” yani “sahada programlanabilir” bir elemandır. FPGA üreticileri -en çok duyulanları xilinx ve alteradır- bir tasarımcı için gerekli olabilecek en temel yapıları yerleştirmiş ve tasarımcıların bu yapıyı kullanarak ister haberleşme, ister sinyal işleme vb. istenilen her yapıyı kurmaları sağlanmıştır. Fakat FPGA programlandıktan sonra mikrodenetleyiciler gibi uygulamalarda kullanılamamaktadır. Yapılmak istenen proje FPGA üzerinde denenmekte, istenen başarı sağlanırsa tasarım ASIC haline getirilir.

FPGA in yapısında bir multiplexer tasarlamak için yada bir görüntü işleme işi için gerekli altyapı bulunmaktadır. Tabi multiplexer tasarlarken 2-3 “slice” bölme kullanılırken, görüntü işleme yapıldığında bu sayı 200-500 civarı olabilir.

Bana kalırsa FPGA ler sayısal tasarımla uğraşanlar için bir “play ground” oyun alanıdır. Tasarlarsın çalışıp çalışmadığına bakarsın çalışıyorsa ne ala, çalışmıyorsa ufak kod değişiklikleri ile tekrar tasarla. Eline başka bir iş geldiğinde yeni bir tasarım yap ve FPGA yı tekrar programla.

Bir diğer özellik ise FPGA ler “real time” gerçek zamanlı çalışan sistemlerdir. Mikrodenetleyicide olduğu gibi yazılan kod bir işlemciden geçip satır satır yapılmamaktadır. FPGA de yazılan kod bir “hardware” donanımı tanımlamaktadır ve bilindiği gibi donanımda sen biraz dur önce şu iş olsun diye birşeyler söyleyemezsiniz ki zaten FPGA programlarken kullanılan en ünlü “VHDL” ve “Verilog” dillerinde sentezleme yaparken gecikme vb. tarzdaki kodları kullanamazsınız. Tabi bu özellik başlangıçta FPGA için kötü bir özellik gibi gelebilir. Fakat daha sonra FPGA e bir mikroişlemci tasarlayıp gömebildiğinizi ve bu işlemci üzerinde rahatça kod koşturabileceğinizi öğrenince siz de benim gibi bu özelliğin çok da zararlı olmadığını anlayacaksınız.

Aklıma FPGA ile ilgili şimdilik bunlar geldi. Yeni öğreneceğim bilgiler ışığında FPGA ve Verilog hakkında yeni yazılar yazmayı umuyorum. Eğer yazdıklarımda bir hata görürseniz iletişim kısmındaki mail adresimden benimle irtibat kurabilirsiniz.

Yorum bırakın