Hoş Geldiniz
Hızlı ve güvenli alışverişe giriş yapın!
Henüz Üye Değil Misiniz?
Kolayca üye olabilirsiniz!

FPGA Nedir ? Kapsamlı Rehber -- Sıfırdan Öğrenin

22-02-2026 18:31

Bu rehberde FPGA'nın ne olduğunu, nasıl çalıştığını, nerelerde kullanıldığını ve nasıl öğrenebileceğinizi adım adım ele alıyoruz. İster meraklı bir başlangıç seviyesindeyseniz ister profesyonel bir mühendis olun, bu kapsamlı kılavuz sizin için hazırlandı.


FPGA Nedir?

FPGA (Field-Programmable Gate Array), Türkçeye "Sahada Programlanabilir Kapı Dizisi" olarak çevrilebilen, kullanıcı tarafından üretim sonrasında yeniden yapılandırılabilen özel bir entegre devre türüdür. (Entegre devreler hakkında daha fazla bilgi almak için Entegre Devre Nedir ? yazımızı inceleyebilirsiniz.)

Adını oluşturan kelimelere tek tek bakarsak:

  • Field (Saha): Çipin fabrikadan çıktıktan sonra, yani "sahada" — gerçek kullanım ortamında — programlanabildiği anlamına gelir.
  • Programmable (Programlanabilir): Mantıksal işlevlerin yazılım aracılığıyla tanımlanabildiğini ifade eder.
  • Gate Array (Kapı Dizisi): Temel yapı taşlarının yeniden yapılandırılabilir mantık kapılarından oluştuğunu belirtir.

Kısaca FPGA, içinde donanım devrelerini yazılımla tanımlamanıza olanak tanıyan bir çiptir. Bir FPGA'yı programladığınızda aslında bir yazılım kodu yazmıyorsunuz; fiziksel bir donanım tasarımı oluşturuyorsunuz. Bu, FPGA'yı hem bir donanım hem de yazılım aracına dönüştüren eşsiz bir özelliktir. Daha da basitleştirmek gerekirse bir devreyi yazılım ile tasarladığınızı düşünebilirsiniz.


FPGA Nasıl Çalışır?

FPGA'nın iç yapısını anlamak için önce üç temel bileşeni bilmek gerekir:

1. Yapılandırılabilir Mantık Blokları (CLB — Configurable Logic Blocks)

CLB'ler FPGA'nın çekirdeğidir. Her CLB; toplama, çarpma, mantık işlemleri gibi temel dijital fonksiyonları gerçekleştirebilen küçük birimlerdir. İçlerinde genellikle Lookup Table (LUT), flip-flop ve multiplexer bulunur.

  • LUT (Arama Tablosu): Herhangi bir mantık fonksiyonunu gerçeklemek için kullanılan küçük bir bellek birimidir. 4-6 girişli bir LUT, 2⁴ ile 2⁶ arası farklı kombinasyona karşılık gelen çıkış değerlerini depolar.
  • Flip-Flop: Senkron devre tasarımında durum bilgisini tutan tetikleyici elemanlardır.
  • Multiplexer: Birden fazla sinyal arasından seçim yapılmasını sağlar.

2. Programlanabilir Ara Bağlantılar (Programmable Interconnects)

CLB'leri birbirine bağlayan kablo ağıdır. Kullanıcı, hangi blokların birbirine bağlı olacağını programlama aşamasında belirler. Bu bağlantılar, bir FPGA tasarımının "yönlendirme" (routing) aşamasında otomatik olarak araçlar tarafından yapılandırılır.

3. Giriş/Çıkış Blokları (I/O Blocks)

Çipin dış dünyayla — sensörler, ekranlar, diğer entegre devreler — iletişim kurmasını sağlayan bloklardır. FPGA'nın I/O pinleri farklı voltaj seviyelerine ve iletişim protokollerine (UART, SPI, I2C, LVDS vb.) göre yapılandırılabilir.

Programlama Süreci

FPGA programlama süreci şu adımlardan oluşur:

  1. Tasarım Girişi: HDL (Hardware Description Language) ile devre davranışı tanımlanır.
  2. Sentez: HDL kodu, lojik kapılara dönüştürülür.
  3. Uygulama ve Yerleştirme (Place & Route): Lojik kapılar FPGA'nın fiziksel bloklarına yerleştirilir ve aralarındaki bağlantılar belirlenir.
  4. Bit Akışı Oluşturma (Bitstream Generation): Tüm yapılandırma bilgisi bir bitstream dosyasına derlenir.
  5. Programlama: Bitstream dosyası FPGA'ya yüklenir ve çip yapılandırılır.

Not: FPGA'lar genellikle SRAM tabanlıdır; bu nedenle güç kesildiğinde yapılandırma bilgisi silinir. Bunu önlemek için harici bir flash bellek veya EEPROM kullanılır.


FPGA'nın Tarihçesi

FPGA teknolojisinin tarihsel gelişimine bakıldığında birkaç önemli dönüm noktası öne çıkar:

1985 — İlk FPGA: Xilinx şirketinin kurucuları Ross Freeman ve Bernard Vonderschmitt, ilk ticari FPGA olan XC2064'ü piyasaya sürdü. Bu çip, 64 CLB ve 85.000 transistör içeriyordu.

1988 — Rekabetin Başlaması: Altera (şimdiki Intel PSG), FPGA pazarına girerek Xilinx'e rakip oldu ve sektörde iki büyük oyunculu bir yapı oluştu.

1990'lar — Büyüme Dönemi: Artan kapasiteler, düşen maliyetler ve geliştirme araçlarının olgunlaşmasıyla FPGA kullanımı hız kazandı. Telekomünikasyon ve savunma sektörleri FPGA'yı keşfetti.

2000'ler — DSP ve Gömülü İşlemci Entegrasyonu: Yüksek hızlı DSP blokları ve PowerPC gibi gömülü işlemci çekirdeklerinin FPGA'ya entegre edilmesiyle cihazlar çok daha yetenekli hale geldi.

2011 — Xilinx Zynq Serisi: CPU (ARM Cortex-A9) ve FPGA dokusunu tek çikte birleştiren SoC (System-on-Chip) FPGA'lar piyasaya çıktı.

2015 — Intel, Altera'yı Satın Aldı: 16,7 milyar dolarlık bu satın alma, FPGA sektörünün ne kadar stratejik bir önem taşıdığını gözler önüne serdi.

2020'ler ve Ötesi — Yapay Zeka Hızlandırma: Veri merkezi yapay zeka uygulamalarında FPGA kullanımı ivme kazandı; Intel Agilex ve AMD (Xilinx) Versal serileri bu trendi temsil ediyor.


FPGA ile Mikroişlemci (CPU) Arasındaki Fark

Çoğu kişi "FPGA nedir, CPU'dan ne farkı var?" sorusuyla başlar. Temel farklar şöyle sıralanabilir:

Özellik CPU FPGA
Mimari Sabit, genel amaçlı Yeniden yapılandırılabilir
Paralellik Sınırlı (çekirdek sayısı kadar) Çok yüksek (donanım seviyesinde)
Gecikme (Latency) Orta Çok düşük
Enerji Verimliliği Orta Yüksek (uygulamaya özel)
Programlama Kolaylığı Çok kolay (C, Python vb.) Zor (HDL gerektirir)
Maliyet Düşük Yüksek
Esneklik Yüksek (yazılım değişikliği kolay) Orta (yeniden programlama gerekir)

Özet: CPU'lar sıralı işlemler için mükemmelken, FPGA'lar yüksek paralellik gerektiren, gecikmenin kritik olduğu ve enerji verimliliğinin önemsendiği uygulamalar için idealdir.


FPGA ile ASIC Arasındaki Fark Nedir ?

ASIC (Application-Specific Integrated Circuit), belirli bir uygulama için üretim aşamasında tasarlanan ve bir daha değiştirilemeyen özel çiplerdir. Akıllı telefonlardaki Apple A serisi işlemciler, Bitcoin madenciliğinde kullanılan madencilik çipleri birer ASIC örneğidir.

Özellik FPGA ASIC
Yeniden Programlanabilirlik Evet Hayır
Performans Orta-Yüksek Çok Yüksek
Güç Tüketimi Orta Düşük
Tasarım Maliyeti Düşük-Orta Çok Yüksek (milyon dolar+)
Üretim Süresi Hızlı Yavaş (aylar sürebilir)
Hacimli Üretim Maliyeti Yüksek Düşük
Prototipleme İdeal Uygun değil

Ne zaman FPGA, ne zaman ASIC?

  • Prototipleme ve düşük-orta hacimli üretim → FPGA
  • Milyonlarca adet üretim ve maksimum performans → ASIC
  • Tasarım doğrulaması → ASIC üretimine geçmeden önce FPGA'da test edilir

FPGA Mimarisi

Modern bir FPGA'nın mimarisinde CLB'lerin yanı sıra başka özelleşmiş bloklar da bulunur:

Block RAM (BRAM)

FPGA içine gömülü yüksek hızlı SRAM bellek blokları. Büyük veri tamponları veya lookup table'lar için kullanılır.

DSP Dilimleri (DSP Slices)

Sinyal işleme uygulamalarında sıkça ihtiyaç duyulan çarpma-toplama (Multiply-Accumulate) işlemlerini yüksek hızda gerçekleştiren özel donanım birimleridir.

Clock Yönetim Blokları (CMT / PLL)

Farklı frekans ve fazlarda saat sinyalleri üretmek için kullanılan PLL (Phase-Locked Loop) ve MMCM (Mixed-Mode Clock Manager) blokları.

Yüksek Hızlı Transceiver'lar

PCIe, USB 3.0, Ethernet gibi yüksek hızlı seri iletişim protokollerini destekleyen fiziksel katman birimleri.

Gömülü İşlemci Çekirdekleri (SoC FPGA)

Zynq (Xilinx/AMD) veya Intel SoC FPGA gibi cihazlarda, FPGA dokusunun yanında donanımsal ARM işlemci çekirdekleri de bulunur. Bu yapıya SoC FPGA veya Heterogeneous SoC denir.


FPGA Programlama Dilleri

FPGA programlamada kullanılan diller, geleneksel yazılım dillerinden farklıdır; bunlara Donanım Tanımlama Dilleri (HDL — Hardware Description Language) adı verilir.

VHDL

Savunma ve havacılık sektörlerinde tercih edilen, Ada diline benzer yapıda, katı tip denetimine sahip bir HDL. Avrupa ve Türkiye'deki üniversitelerde sıkça öğretilir.

-- VHDL ile basit AND kapısı
entity and_gate is
    port (
        A, B : in  std_logic;
        Y    : out std_logic
    );
end and_gate;

architecture rtl of and_gate is
begin
    Y <= A and B;
end rtl;

Verilog / SystemVerilog

C diline benzer sözdizimi sayesinde özellikle ABD ve Asya'daki endüstride yaygın olarak kullanılır. SystemVerilog, doğrulama (verification) için ek özellikler sunar.

// Verilog ile basit AND kapısı
module and_gate (
    input  wire A,
    input  wire B,
    output wire Y
);
    assign Y = A & B;
endmodule

High-Level Synthesis (HLS)

C/C++ veya OpenCL kodundan otomatik olarak HDL üretilmesini sağlayan araçlar. Xilinx Vitis HLS ve Intel HLS Compiler bu kategoridedir. Yazılım mühendislerinin FPGA dünyasına girişini kolaylaştırır.

OpenCL

Heterojen hesaplama için kullanılan açık standart; FPGA'ları GPU'larla benzer bir programlama modeli üzerinden kullanmayı mümkün kılar.


FPGA Kullanım Alanları

FPGA'nın esnekliği ve performansı, onu çok geniş bir yelpazede vazgeçilmez kılar:

Telekomünikasyon ve 5G

Baz istasyonlarında, 5G protokol işlemede, ağ yönlendirmede düşük gecikmeli donanım hızlandırma için kullanılır. Nokia, Ericsson ve Huawei gibi firmalar bu alanda yoğun FPGA kullanmaktadır.

Yapay Zeka ve Makine Öğrenmesi Hızlandırma

Microsoft'un Azure veri merkezlerinde Bing arama motorunu hızlandırmak için Xilinx FPGA'lar kullandığı kamuoyuyla paylaşılmıştır. Sinir ağı çıkarım (inference) uygulamalarında GPU'lara düşük gecikmeli ve enerji verimli bir alternatif sunarlar.

Savunma ve Havacılık

Radar sinyal işleme, kriptografi, elektronik harp sistemleri ve uydu haberleşmesi bu alanın öne çıkan uygulamalarıdır. Yeniden programlanabilirlik, sahada güncelleme imkânı sağladığı için kritik avantaj sunar.

Tıbbi Görüntüleme

MRI, ultrason ve BT tarama cihazlarında gerçek zamanlı sinyal işleme için FPGA tercih edilir. Düşük gecikme ve yüksek güvenilirlik gereksinimleri bu alanda belirleyicidir.

Finansal Teknoloji (HFT — High-Frequency Trading)

Mikrosaniye düzeyinde karar alması gereken yüksek frekanslı borsa alım-satım sistemlerinde FPGA'nın sunduğu deterministik gecikme kritiktir.

Otomotiv ve ADAS

Sürücü destek sistemlerinde (ADAS), lidar-radar füzyonunda ve otonom araç platformlarında donanım hızlandırma için kullanılmaktadır.

Video ve Görüntü İşleme

4K/8K video kodek, gerçek zamanlı görüntü işleme, HDMI/DisplayPort çoklu hat yönetimi gibi uygulamalarda yüksek bant genişliği ve düşük gecikme gereksinimleri FPGA'yı öne çıkarır.

Endüstriyel Otomasyon ve Robot Kontrolü

Hassas zamanlama gerektiren motor kontrolü, PLC (Programmable Logic Controller) uygulamaları ve gerçek zamanlı fabrika otomasyon sistemleri.


Popüler FPGA Üreticileri ve Kartları

AMD (eski adıyla Xilinx)

FPGA pazarının öncü ismi. Başlıca ürün aileleri:

  • Artix-7 / Artix UltraScale+: Düşük maliyetli, giriş-orta seviye uygulamalar
  • Kintex UltraScale+: Orta-yüksek performanslı DSP ve iletişim
  • Virtex UltraScale+: En yüksek kapasite ve performans
  • Zynq-7000 / Zynq UltraScale+ MPSoC: ARM + FPGA SoC
  • Versal ACAP: AI motoru entegreli yeni nesil platform

Intel (eski Altera)

  • Cyclone 10: Düşük maliyetli giriş seviyesi
  • Arria 10: Orta seviye, DSP odaklı
  • Stratix 10: Yüksek performanslı, veri merkezi odaklı
  • Agilex: En yeni nesil Intel FPGA ailesi

Lattice Semiconductor

Düşük güç tüketimi ve küçük form faktörü ile öne çıkar. iCE40 ve ECP5 serileri açık kaynak araçlarla uyumlu olduğu için hobi ve eğitim dünyasında popülerdir.

Microchip (eski Microsemi / Actel)

Özellikle güvenlik, uzay ve askeri uygulamalara odaklanmış SmartFusion ve PolarFire serileriyle tanınır. RISC-V tabanlı SoC FPGA çözümleri sunmaktadır.

Başlangıç için Popüler Geliştirme Kartları

Kart Üretici Fiyat Aralığı Seviye
Basys 3 Digilent (Artix-7) ~150 $ Başlangıç
Nexys A7 Digilent (Artix-7) ~250 $ Orta
DE10-Nano Terasic (Cyclone V) ~150 $ Orta
PYNQ-Z2 TUL / Digilent ~170 $ Python+FPGA
ZCU104 AMD (Zynq UltraScale+) ~1.000 $+ İleri
iCEBreaker 1BitSquared (iCE40) ~50 $ Başlangıç / Açık Kaynak

FPGA'nın Avantajları ve Dezavantajları

Avantajlar

Yeniden Programlanabilirlik: Tasarım hataları ya da yeni gereksinimler ortaya çıktığında çipi değiştirmeden güncelleme yapılabilir. Bu, ürün geliştirme döngüsünü kısaltır.

Yüksek Paralellik: Binlerce işlem bloğu aynı anda çalışabilir. Bu sayede DSP, şifreleme ve görüntü işleme gibi paralel hesaplama gerektiren görevlerde CPU ve GPU'dan üstün sonuçlar elde edilebilir.

Belirleyici Gecikme (Deterministic Latency): İşletim sistemi gibi yazılım katmanları devre dışı bırakılarak nanosaniye seviyesinde öngörülebilir gecikme sağlanır; bu özellik HFT ve gerçek zamanlı kontrol sistemleri için kritiktir.

Hızlı Prototipleme: ASIC geliştirmeye kıyasla çok daha hızlı ve ucuz prototipleme imkânı sunar.

IP (Intellectual Property) Yeniden Kullanımı: Tasarlanan donanım bloklarını farklı projelerde veya farklı FPGA aileleri arasında taşımak mümkündür.

Dezavantajlar

Yüksek Öğrenme Eğrisi: HDL öğrenmek, donanım tasarım metodolojilerini anlamak ve geliştirme araçlarına hâkim olmak zaman alır ve zorludur.

Araç ve Lisans Maliyetleri: Ticari sentez ve simülasyon araçları (Vivado, Quartus Prime Pro, Synopsys VCS vb.) yüksek lisans ücretlerine sahip olabilir.

Birim Maliyeti: Seri üretimde ASIC'e kıyasla her birim için daha yüksek maliyet.

Güç Tüketimi: Eşdeğer ASIC çözüme göre daha fazla enerji tüketir.

Sınırlı Saat Frekansı: Yeniden yapılandırılabilir ara bağlantılar nedeniyle ASIC'e göre daha düşük maksimum çalışma frekansı.


FPGA Nasıl Öğrenilir?

FPGA öğrenmek, hem donanım hem yazılım bilgisi gerektiren zorlu ama ödüllendirici bir süreçtir. İşte önerilen bir yol haritası:

1. Aşama: Dijital Tasarım Temellerini Öğrenin

FPGA öğrenmeden önce şu konulara hâkim olmanız gerekir: mantık kapıları, kombinasyonel devreler, sıralı devreler (flip-flop, register), saat sinyali kavramı ve sayı sistemleri. Bu bilgileri "Digital Design" başlıklı kitaplar veya ücretsiz online kurslar (MIT OpenCourseWare, Coursera) aracılığıyla edinebilirsiniz.

2. Aşama: Bir HDL Dili Seçin ve Öğrenin

Başlangıç için Verilog veya SystemVerilog önerilebilir; sözdiziminin C'ye benzerliği geçişi kolaylaştırır. VHDL daha katı ve ayrıntılı bir dil olsa da Avrupa akademik çevrelerinde yaygındır. "Nandland" (nandland.com) sitesi, her iki dil için de mükemmel ücretsiz kaynaklar sunar.

3. Aşama: Geliştirme Ortamını Kurun

AMD projeleri için Vivado (ML Edition ücretsiz), Intel projeleri için Quartus Prime Lite (ücretsiz) tercih edilebilir. Açık kaynak araçları (Yosys, nextpnr) denemek istiyorsanız Lattice iCE40 veya ECP5 tabanlı kartlar uygun başlangıç noktasıdır.

4. Aşama: Bir Geliştirme Kartı Satın Alın

Öğrenciler ve meraklılar için Basys 3 veya iCEBreaker iyi birer başlangıç kartıdır. Eğer Raspberry Pi ile Python deneyiminiz varsa ve FPGA'ya kolay giriş arıyorsanız PYNQ ekosistemi ilgi çekici olabilir.

5. Aşama: Projeler Üretin

Öğrenmenin en etkili yolu yapmaktır. Önerilen başlangıç projeleri: LED yanıp sönme (Blink), 7 segment ekran sayacı, basit bir VGA renk üreteci, UART (seri haberleşme) modülü, basit bir hesap makinesi.

Faydalı Kaynaklar

  • Kitaplar: "Digital Design and Computer Architecture" (Harris & Harris), "FPGA Prototyping by VHDL Examples" (Pong Chu) Özellikle VHDL kullanacaksanız derinlemesine öğrenebileceğiniz bir kaynaktır. Mutlaka tavsiye ederiz.
  • Online Kurslar: Udemy, Coursera, edX üzerindeki FPGA ve dijital tasarım kursları
  • Topluluklar: Reddit r/FPGA, Stack Exchange Electrical Engineering, Digilent forumları
  • Fevaris Elektronik : Çok yakında inşallah FPGA derslerimize başlayacağız. Takipte kalmayı unutmayın !

Sık Sorulan Sorular (SSS) {#sss}

FPGA öğrenmek ne kadar sürer? Dijital tasarım temelleri ve bir HDL dili öğrenmek, düzenli çalışmayla 3-6 ay arasında değişir. Profesyonel proje geliştirme yetkinliği ise 1-2 yıllık pratik deneyim gerektirir.

FPGA ile yazılım geliştirme arasındaki temel fark nedir? Yazılım kodları sıralı olarak işlenirken, HDL ile tanımladığınız donanım blokları gerçek anlamda paralel çalışır. Bu nedenle HDL yazmak, "zamanlama" ve "eşzamanlılık" bakış açısı gerektirir; bu da alışılması zaman alan bir zihinsel model değişimidir.

FPGA ile yapay zeka uygulaması yapılabilir mi? Evet. Özellikle eğitimden sonra sinir ağı çıkarım (inference) aşamasında FPGA'lar kullanılmaktadır. AMD'nin Vitis AI ve Intel'in OpenVINO araçları bu süreci kolaylaştırır.

FPGA ve Arduino/Raspberry Pi farkı nedir? Arduino ve Raspberry Pi birer mikrodenetleyici/mikroişlemci platformudur; sabit bir işlemci mimarisi üzerinde yazılım çalıştırırlar. FPGA ise donanımın kendisini tanımlamanızı sağlar; bu çok daha güçlü ama aynı zamanda çok daha karmaşık bir işlemdir.

FPGA'lar kaç kez yeniden programlanabilir? SRAM tabanlı FPGA'lar teorik olarak sınırsız sayıda yeniden programlanabilir. EEPROM veya flaş tabanlı FPGA'larda bu sayı üreticiye göre değişmekle birlikte genellikle on binlerle ifade edilir.

Türkiye'de FPGA sektörü nasıl? Türkiye'de savunma sanayii (Aselsan, Roketsan, STM), telekomünikasyon ve akademik araştırma kurumlarında FPGA mühendisleri aktif olarak istihdam edilmektedir. Bu alandaki mühendis açığı göz önünde bulundurulduğunda, FPGA uzmanlığı kariyer açısından değerli bir beceri olarak öne çıkmaktadır.


Sonuç

FPGA, donanım esnekliği ile yazılım güncelleme kolaylığını bir arada sunan eşsiz bir teknolojidir. Yüksek paralellik, düşük gecikme ve yeniden programlanabilirlik özellikleriyle telekomünikasyondan yapay zekaya, savunmadan tıbbi görüntülemeye kadar pek çok kritik alanda vazgeçilmez bir konuma sahiptir.

FPGA öğrenmek zorlu bir yolculuk olsa da dijital tasarım temelleri, doğru araçlar ve pratik projelerle bu yolculuk oldukça ödüllendirici olabilir. Eğer mühendislik kariyerinizde donanım-yazılım sınırında çalışmak istiyorsanız, FPGA dünyası sizi bekliyor.


Bu rehber hakkında sorularınız veya eklemek istedikleriniz varsa yorumlar bölümünde paylaşabilir veya bize ulaşabilirsiniz.

ideasoft e-ticaret paketleri ile hazırlandı.