FPGA Nedir?

Kemal Ayyıldız
2 min readJul 1, 2020

--

Günümüz elektroniğinde adını sıkça duyar olduğumuz FPGA’ler neden bu kadar tercih ediliyor? FPGA’leri mikrodenetleyicilerden ve mikroişlemcilerden ayıran özellikleri nedir? Gelin kısaca bu soruların cevabına bakalım.

FPGA(Fiel Programmable Gate Arrays), içerisinde bir çok konfigüre edilebilecek lojik elementleri (CLB) bulundurur ve bu elementler istenilen herhangi bir yönde çalıştırılabilir. Nasıl yani her yönde? Örneğin; FPGA, istenirse bir PIC mikrodenetleyiciye dönüştürülebilir veya yine istenirse dijital sinyal işleyici görevi görebilir.

FPGA İç Yapısı
FPGA İç Yapısı

Yukarıdaki görselde FPGA’in içerisindeki CLB’leri görebiliyoruz. Türkçesi “Yapılandırılabilir Mantık Bloğu” olarak karşımıza çıkan CLB’ler içerisinde basitçe look up table(LUT), flip flop ve multiplexer bulunmaktadır. Bu yapı, temel FPGA hücresini oluşturur. Aşağıdaki görselde CLB’nin içerisindeki bu sistem görülebilir.

CLB Yapısı

Multiplexer yardımı ile birbirine bağlanan CLB’lerde bulunan bileşenler karmaşık mantık işlevlerini yürütür, bellek işlevlerini uygular ve FPGA’daki kodu senkronize eder.

Peki, Flip flop, Look-up Table, ve Multiplexer nedir?

Flip Flop — FPGA üzerindeki en küçük depolama kaynağıdır. CLB’ler içerisinde bulunan her bir flip flop, FPGA devresinde saat döngülerinin (clock cyles) desteğiyle mantık durumlarını kaydetmek için kullanılır.

Look-up Table (LUT) — Bir LUT, her input kombinasyonu için önceden tanımlanmış bir output listesi saklar. LUT’lar içerisinde olası output sonuçlarının sakladığı için bir mantık işleminin çıktısını almayı hızlandırır. LUT’ları işlemcilerin registerları ile eşdeğer tutabiliriz.

Multiplexer — İki veya daha fazla giriş arasında seçim yapan ve sonra seçilen girişi döndüren bir devre.

FPGAler, volatile yani gücü kestiğinizde işlemleri unutan cihazlardır. Bu nedenle, FPGA’ler eğer uygun bir şekilde kullanılmak isteniyorsa dışarıdan bir hafıza desteği gerekmektedir. Bu hafızalar, FPGA güçten kesildiğinde içerisinde bulunan configuration logic sayesinde FPGA’lere bağlanmaktadır ve lojik I/O (IOB) bloklarının nereye bağlı olduğuyla ilgili bilgileri tutmaktadır.

FPGA Avantajları

  • İstenilen her görev için kullanılabilir. (DSP, Kriptoloji, Mikrodenetleyici)
  • Çok hızlılardır.
  • Mikroişlemciler gibi sıralı işlemler yapmak yerine paralel olarak rahatça çalışmaktadırlar.
  • Yüksek miktarda I/O ları vardır.

FPGA DEZAVANTAJLARI

  • Pahalıdırlar.
  • Yüksek güç harcarlar.
  • Volatile cihaz oldukları için her seferinde tekrar boot edilmeleri gerekir.
  • BGA paketlere sahip oldukları için çok fazla pinleri vardır.
  • Karışıklardır.
  • Çok fazla toolları vardır.
  • Çok fazla seçenek olduğu için seçmesi ve karşılaştırması zordur.
  • HDL programlama(VHDL, Vivado) mikrodenetleyici programlamaya nazaran daha zordur.

--

--