Gelişen Dünya ile elektronik cihazlar hayatımızın vazgeçilmezleri arasında ilk sıralarda gelmektedir. Evlerimizde, iş yerlerinde , dış ortamlarda çoğu işleri elektronik cihazlar vasıtasıyla yerine getiriyoruz. Kullandığımız bu cihazların yapısında ise çipler ve lojik entegre devreler bulunmakta. Kullandığımız bu sistemlerin temeli ise sayısal devrelere dayanıyor. Bu cihazlara örnek olarak cep telefonları, mikro denetleyiciler, işlemciler ve ya bilgisayarlar verilebilir. Geçmiş zamanlarda sayısal devre tasarımı için birçok elektronik elemanına ihtiyaç duyulan sistemler günümüzde kolaylıkla FPGA vasıtasıyla tasarlanabiliyor. Ama bu sistemler genellikle belirli alanlarda kullanılıyor.
FPGA
Açılımı “Field Programmable Gate Array” dir. Dilimize Alanda Programlanabilir Kapı Dizisi olarak çevirebiliriz. Burada bahsi geçen kapı kelimesi, sayısal devrelerin temelini oluşturan mantık kapılarıdır. Mantık kapıları, kullanıcının tasarımına bağlı olarak girilen değerler doğrultusunda mantıksal sonuçlar üretir. Dijital elektronikte kullanılan lojik entegreler ve dolayısıyla entegrelerin bir araya getirilmesiyle oluşturulan sayısal devreler gerekli mantık kapılarını bir araya getirerek çalışmaktadır. FPGA ‘ler ise kullanıcıya bu mantık kapılarını kullanarak sayısal devre tasarlama imkanı sağlamaktadır. Yani sayısal devre tasarlamak için kullanılan yapıların neredeyse hepsi, FPGA ‘ler üzerinde gerçekleştirilebilir ve dolayısıyla tek bir yapı üzerinde sayısal devre tasarlanabilir. Alan programlanabilir denmesinin sebebi ise üretim sürecinden sonra kullanıcıya gelen kartın gerekli ihtiyaçlar doğrultusunda sürekli programlanmasıdır.
FPGA ‘lerin en önemli özelliği ise tekrar ve tekrar programlanabilmesidir. İhtiyaç duyulan herhangi bir sayısal devre, FPGA üzerinde inşa edilip direkt kart üzerine yüklenebilir ve sistemin çalışma durumu gözlemlenebilir. Bu sayede prototip devrelerin çalışıp çalışmama durumu test edilebilir ve bir nevi hata ayıklama yapılabilir.
Genel Yapısı
FPGA genel olarak üç birimden oluşur. Bunlar;
.Mantık blokları
.Giriş/Çıkış Birimleri
.Ara Bağlantı Yolları
FPGA üzerinde bulunan mantık blokları içerisinde LUT denilen ve gerekli mantıksal işlemleri yerine getiren küçük bellekler bulunmaktadır. Bu bellekler minimum 4 girişlidir ve giriş sayısına bağlı olarak işaret edilen bellek sayısı değişim gösterir. Kullanıcı, mantık kapılarını tasarlamak istediği sayısal devreye göre dizayn eder . Bloklar içerisinde aynı zamanda ‘multiplexer’ denilen çoklayıcı devreler ve bir bitlik saklayıcı görevi gören flip-floplar bulunmaktadır. Kullanıcının tasarlamak istediği devre doğrultusunda mantık blokları birbirleri ile ara bağlantı yolları vasıtasıyla bağlantı kurar ve bir sayısal devre tasarlanmış olur.
Yapılarında bulunan giriş/çıkış birimleri sayesinde çevresel birimlerle haberleşme, veri alma ve ya tasarlanan devre doğrultusunda çıkış verme özelliklerine sahiptirler. Bu sayede FPGA ‘ler üzerinde sinyal ve ya görüntü işlenebilir, üzerinde bulunan sensörler vasıtasıyla bir çok ölçüm yapabilir ve yaptığı bu ölçümler doğrultusunda programlandığı amaca hizmet edebilir.
Bir FPGA ‘in performans ölçeği yapısında bulunan mantık bloklarının sayısına bağlıdır. Yapılarında bulunan binlerce mantık bloklarının doğru yapılandırılmasıyla çok karmaşık ve büyük tasarımlar ortaya çıkarılabilir.
Performans
FPGA ‘ler, kullanıcıya paralel veri işleme olanağı sağlar. Bu kavramı biraz daha açalım. Paralel çalışma kavramı, birbirinden bağımsız olarak yerine getirilmesi gereken işlemlerin aynı anda farklı bloklar üzerinden gerçekleştirilmesidir. Geleneksel bilgisayar mimarisine göre çalışan diğer sistemler aynı anda farklı işlemler yerine getiremezken, yüksek hız ve eş zamanlı veri işleme gerektiren uygulamalarda FPGA ‘ler tercih edilmekte. Paralel işlem yapılabilme özelliği, FPGA ‘lere düşük frekansta yüksek hız özelliği kazandırmakta. Normal bir işlemcinin 1 GHz seviyesinde gösterdiği performansı, FPGA 100 MHz civarındaki bir frekansta gösterebilir.
FPGA ‘ler aynı zamanda düşük güç tüketimine sahiptirler. Bu sayede enerji kaynaklarının sınırlı olduğu alanlarda tercih edilirler. Aynı zamanda birçok dijital devrenin bir araya gelmesiyle yapılacak işlemleri tek başına yerine getirebilir. Bu sayede küçük bir alanda yüksek işlem yapmaya olanak sağlamış olur.
Kullanım Alanları
.Havacılık Ve Savunma Sistemleri: FPGA üzerinde dalga formu üretimi,sinyal ve görüntü işleme yapılabildiği için tercih edilir.
.Tüketici Elektroniği: Yakınlaştırılmış ahizeler, dijital düz panel ekranlar, bilgi cihazları, ev ağı ve konut set üstü kutuları gibi yeni nesil, tam özellikli tüketici uygulamalarında kullanılır. Uygun maliyetli çözümler üretilebilir.
.Ses: Çok çeşitli ses, iletişim ve multimedya uygulamaları için daha yüksek esneklik, daha hızlı piyasaya sürme süresi ve daha düşük tekrarlanan mühendislik maliyetleri sağlar.
Diğer kullanım alanları:
.Tıbbi Görüntüleme
.Kablolu İletişim
.Kablosuz İletişim
.Endüstri
.Otomotiv
.Hesaplama ve veri depolama
Yüksek hızı, yeniden programlanabilir olması, paralel işlem yapabilmesi, sinyal ve ya görüntü işleyebilmesi ve daha bir çok özellikleri sayesinde FPGA ‘ler günümüzde çeşitli alanlarda kullanılıyor. Önümüzdeki zamanlarda ise kullanım alanları giderek artacak gibi görünüyor.
Kaynakça
wikipedia.org
xilinx.com


Yorum yapılmamış
Güzel bir paylaşım teşekkürler. Peki bu fpgl lar yeni mi tanınıyor. WiFi modülü veya hangi dil ile programlanabiliyor hocam.
Öncelikli olarak yazıyı beğenmenize sevindim. Sorunuza gelecek olursak, FPGA teknolojisi çok yeni bir teknoloji değil aslında. İlk kullanımı 1980 yıllarına dayanıyor. Ülkemizde ise ağırlıklı olarak savunma sanayi projelerinde aktif olarak kullanılıyor. Maliyet sebebiyle hobi projelerinde, paralel işlem gereksinimi olmayan ve ya yüksek hız gerektirmeyen projelerde kullanımına gerek duyulmuyor. FPGA programlamak için ise VHDL ve Verilog dilleri ağırlıklı olarak kullanılıyor. Ayrıca FPGA programlarken, yazılım değil donanım kodlandığını dikkate alınmalıdır. Aslında FPGA programlarken, gerekli işlemleri yapacak sayısal donanım mimarisini FPGA üzerinde gerekli mantık kapıları ve tasarım modelleri ile oluşturuyoruz.