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

Mikrodenetleyici ve FPGA Arasındaki Farklar Nelerdir ?

13-05-2026 17:46

Gömülü sistem dünyasına adım atan herkesin er ya da geç karşılaştığı bir soru vardır: "Mikrodenetleyici mi, FPGA mı kullanmalıyım?" Bu rehberde iki teknolojinin temel farklarını, hangi durumlarda hangisini tercih etmeniz gerektiğini ve gerçek dünya örneklerini detaylı bir şekilde inceliyoruz.


Giriş: İki Farklı Dünya

Elektronik tasarım dünyasında mikrodenetleyici ve FPGA, sıklıkla birbirleriyle karşılaştırılan ancak temelde çok farklı felsefelere sahip iki teknolojidir. Birincisi sabit bir donanım üzerinde yazılım çalıştırırken, ikincisi donanımın kendisini yazılımla tanımlamanıza olanak tanır. Bu fark, kulağa basit gibi gelse de tasarım kararlarınızı, projenizin maliyetini, performansını ve geliştirme süresini doğrudan etkiler.

FPGA'nın ne olduğu ve nasıl çalıştığı hakkında detaylı bilgi almak için daha önce yayınladığımız FPGA Nedir? Kapsamlı Rehber yazımızı okumanızı tavsiye ederiz. Bu yazıda ise iki teknolojiyi yan yana koyup, mühendislik kararı verirken hangi kriterlere bakmanız gerektiğini ele alacağız.


Mikrodenetleyici Nedir?

Mikrodenetleyici (Microcontroller — MCU), tek bir entegre devre üzerinde işlemci çekirdeği, bellek (RAM ve flash) ve çevre birimlerini (timer, ADC, UART, SPI, I2C vb.) barındıran küçük bir bilgisayardır. Bir programcının "main loop" mantığında yazdığı yazılım, mikrodenetleyicinin sabit donanımı üzerinde sıralı olarak çalışır.

Yaygın mikrodenetleyici aileleri arasında STM32 (STMicroelectronics), PIC (Microchip), AVR (Atmel/Microchip — Arduino'nun temeli), ESP32 (Espressif) ve NXP Kinetis bulunur. Bu çiplerin tamamı entegre devre kategorisi altında değerlendirilir.

Mikrodenetleyicinin tipik bir mimarisinde şunlar bulunur:

  • CPU Çekirdeği: Genellikle ARM Cortex-M serisi (M0, M3, M4, M7) veya 8/16-bit özel mimariler.
  • Flash Bellek: Programın saklandığı kalıcı bellek (genellikle 8 KB — 2 MB arası).
  • SRAM: Çalışma zamanı verilerinin tutulduğu geçici bellek (1 KB — 512 KB arası).
  • Çevre Birimleri: GPIO, ADC, DAC, PWM, UART, SPI, I2C, CAN, USB, Ethernet vb.
  • Saat Sistemi: İç osilatörler ve PLL'ler ile yapılandırılabilir saat frekansı.

FPGA Nedir? (Kısa Özet)

FPGA (Field-Programmable Gate Array), üretildikten sonra kullanıcı tarafından yeniden yapılandırılabilen, içinde donanım devrelerini yazılımla (HDL — Hardware Description Language) tanımlamanıza olanak tanıyan özel bir entegre devre türüdür. CLB (Configurable Logic Block), programlanabilir ara bağlantılar ve giriş/çıkış blokları FPGA'nın temel yapı taşlarıdır.

Mikrodenetleyiciden temel farkı şudur: Mikrodenetleyicide donanım sabittir, yazılım değişir. FPGA'da ise donanımın kendisi yazılımla tanımlanır. Bu, FPGA'nın gerçek paralel işlem yapabilmesini sağlayan kritik özelliktir.


Temel Farklar: Karşılaştırma Tablosu

İki teknolojiyi yan yana koyarak görmek, kararlarınızı netleştirmenin en hızlı yoludur:

Özellik Mikrodenetleyici (MCU) FPGA
Çalışma Mantığı Sıralı (sequential) yazılım Paralel donanım
Programlama Dili C, C++, Python (MicroPython), Rust VHDL, Verilog, SystemVerilog, HLS
Geliştirme Süresi Kısa (günler-haftalar) Uzun (haftalar-aylar)
Öğrenme Eğrisi Düşük-orta Yüksek
Paralellik Sınırlı (RTOS ile multitasking) Gerçek donanım paralelliği
Gecikme (Latency) Mikrosaniye - milisaniye Nanosaniye seviyesinde
Belirleyici Zamanlama Sınırlı (kesmeler etkili) Çok yüksek (deterministik)
Güç Tüketimi Çok düşük (μA — mA) Orta-yüksek (yüzlerce mA — W)
Birim Maliyeti Çok düşük ($0.5 — $20) Yüksek ($20 — $5000+)
Çevre Birim Entegrasyonu Hazır (ADC, UART, SPI dahili) Manuel tasarım gerekir
Bellek Dahili Flash + SRAM BRAM + harici bellek (çoğunlukla)
Reprogramlama Flash üzerinden, sınırlı döngü Sınırsız (SRAM tabanlı)
Ekosistem Çok geniş (Arduino, ST, vb.) Daha dar, profesyonel ağırlıklı

Mimari Açıdan Fark: Sıralı Yürütme vs. Donanım Paralelliği

Bu iki teknoloji arasındaki en temel farkı anlamak için basit bir örneğe bakalım: Üç farklı sensörden veri okumak istediğinizi varsayın.

Mikrodenetleyicide Yaklaşım

Bir mikrodenetleyici, üç sensörü genellikle sırayla okur. Kod kabaca şöyle görünür:

while (1) {
    sensor1_data = read_sensor1();  // 10 μs
    sensor2_data = read_sensor2();  // 10 μs
    sensor3_data = read_sensor3();  // 10 μs
    process_data();                 // 20 μs
    // Toplam: ~50 μs
}

Kesmeler (interrupts) ve DMA (Direct Memory Access) ile bu süreç optimize edilebilir, ancak temelde CPU tek bir komutu bir anda işler. RTOS (Real-Time Operating System) kullansanız bile, "eşzamanlı" görünen görevler aslında hızlı sırayla geçilen görevlerdir.

FPGA'da Yaklaşım

FPGA'da aynı işlem, üç ayrı donanım bloğu olarak tasarlanır ve bu bloklar fiziksel olarak aynı anda çalışır:

// Üç sensör okuma modülü, gerçek anlamda paralel çalışır
sensor_reader sensor1 (.clk(clk), .data(sensor1_data));
sensor_reader sensor2 (.clk(clk), .data(sensor2_data));
sensor_reader sensor3 (.clk(clk), .data(sensor3_data));

// Toplam okuma süresi: 10 μs (tek bir sensörün süresi kadar)

FPGA'da blokların sayısını arttırmak, sistemi yavaşlatmaz; sadece kullanılan kaynak (LUT, flip-flop) sayısını arttırır. Bu, FPGA'yı yüksek throughput gerektiren uygulamalarda CPU'lara karşı son derece güçlü kılar.


Performans ve Gecikme Karşılaştırması

Gecikmenin kritik olduğu uygulamalarda FPGA'nın belirleyici (deterministic) doğası, mikrodenetleyiciye karşı ciddi bir avantaj sağlar.

Mikrodenetleyici Gecikmesi

Mikrodenetleyicide bir olayın işlenme süresi şunlardan etkilenir:

  • Kesme gecikmesi: Cortex-M4 için tipik olarak 12 saat çevrimi (~70 ns @ 168 MHz).
  • İşletim sistemi (varsa): Görev değiştirme süreleri (context switch) μs seviyesinde.
  • Sıralı kod yürütme: Komut sayısına bağlı olarak μs-ms arası değişir.
  • Cache miss, pipeline stalls: Tahmin edilmesi zor değişkenlikler yaratır.

Sonuç: Tipik bir mikrodenetleyici uygulamasında yanıt süresi 1 μs ile 1 ms arasında ve değişken olur.

FPGA Gecikmesi

FPGA'da bir sinyalin işlenme süresi, tasarımın saat frekansı ve pipeline derinliği ile belirlenir:

  • 100 MHz saatte: Her bir saat çevrimi 10 ns.
  • Tipik pipeline derinliği: 3-10 çevrim → 30-100 ns sabit gecikme.
  • Belirleyicilik: Her zaman aynı sürede tamamlanır, jitter neredeyse yoktur.

Bu nedenle yüksek frekanslı borsa işlemleri (HFT), radar sinyal işleme ve gerçek zamanlı kontrol sistemlerinde FPGA tercih edilir.


Güç Tüketimi Açısından Karşılaştırma

Batarya ile çalışan veya pil ömrü kritik olan uygulamalarda mikrodenetleyici, FPGA'ya kıyasla kıyaslanamaz bir avantaja sahiptir.

Senaryo Mikrodenetleyici FPGA
Deep Sleep / Standby 1-10 μA 10-50 mA
Düşük yüklü aktif 1-10 mA 100-500 mA
Tam yük 50-200 mA 1-10 W+

Bir CR2032 düğme pille çalışan bir IoT sensörü düşünün; ESP32 veya STM32L0 gibi düşük güçlü bir mikrodenetleyici ile aylarca, hatta yıllarca çalışabilirsiniz. Aynı pille bir FPGA'yı çalıştırmak ise pratik olarak imkânsızdır.


Geliştirme Süreci ve Maliyet

Mikrodenetleyici Geliştirme Süreci

Mikrodenetleyici geliştirmenin avantajları:

  • Hızlı başlangıç: Arduino IDE ile bir LED yakmayı 10 dakikada öğrenirsiniz.
  • Geniş ekosistem: HAL (Hardware Abstraction Layer) kütüphaneleri, hazır sürücüler ve binlerce örnek kod.
  • Düşük geliştirme maliyeti: 5 $-50 $ aralığında geliştirme kartları, ücretsiz IDE'ler (STM32CubeIDE, MPLAB X, ESP-IDF).
  • Hızlı prototipleme: Bir fikirden çalışan prototipe geçiş günler içinde mümkündür.

FPGA Geliştirme Süreci

FPGA geliştirmenin tipik gerçekleri:

  • Uzun öğrenme eğrisi: HDL öğrenmek, simülasyon, sentez ve timing constraint kavramlarına hâkim olmak aylar alır.
  • Karmaşık araç zinciri: Vivado, Quartus Prime gibi araçlar GB'lar boyutunda olup yüksek sistem gereksinimi olabilir.
  • Daha yüksek kart maliyeti: Basit bir FPGA geliştirme kartı 150 $'dan başlar, profesyonel kartlar 1.000 $-10.000 $'a ulaşabilir.
  • Daha uzun proje süresi: Aynı işlevsellik mikrodenetleyicide 1 haftada, FPGA'da 1 ayda tamamlanabilir.

Bu nedenle FPGA seçimi, gerçekten ihtiyaç duyulduğunda yapılmalıdır; aksi halde mikrodenetleyici çoğu uygulama için daha ekonomik ve hızlı bir çözümdür.


Ne Zaman Mikrodenetleyici Tercih Edilmeli?

Mikrodenetleyici, aşağıdaki gibi uygulamalar için ideal seçimdir:

IoT ve Batarya ile Çalışan Cihazlar

Akıllı ev sensörleri, giyilebilir cihazlar, asset tracking sistemleri ve uzaktan ölçüm cihazları — düşük güç tüketimi ve uzun pil ömrü gerektiren her yerde mikrodenetleyici tercih edilir. ESP32, STM32L serisi ve nRF52 ailesi bu alanın yıldızlarıdır.

Ev Aletleri ve Beyaz Eşya

Çamaşır makinesi kontrol kartları, mikrodalga fırınlar, klima kumandaları gibi orta hızda kontrol gerektiren uygulamalarda mikrodenetleyici hem maliyet hem de geliştirme süresi açısından açık ara öndedir.

Otomotiv Body Control ve Sensör Modülleri

Araçların pencere kontrolü, ayna ayarı, klima kontrolü ve düşük seviyeli sensör arayüzleri için mikrodenetleyiciler (özellikle Infineon AURIX ve NXP S32 aileleri) yaygın kullanılır.

Temel Endüstriyel Kontrol

Basit motor kontrolü, sıcaklık kontrol döngüleri, basit PLC mantığı için mikrodenetleyici fazlasıyla yeterlidir.

Eğitim ve Hobi Projeleri

Arduino, Raspberry Pi Pico ve ESP32 ekosistemleri, başlangıç seviyesindeki kullanıcılar için son derece erişilebilir bir öğrenme ortamı sunar.


Ne Zaman FPGA Tercih Edilmeli?

FPGA'nın gerçek değerini ortaya koyduğu uygulamalar şunlardır:

Yüksek Hızlı Sinyal İşleme

Yazılım tanımlı radyo (SDR), radar, sonar, MRI ve ultrason gibi gerçek zamanlı, yüksek bant genişlikli DSP uygulamalarında FPGA'nın paralel DSP slice'ları olağanüstü performans sunar.

Çok Yüksek Veri Throughput Gerektiren Uygulamalar

10/40/100 Gbps Ethernet işleme, 4K/8K video kodek, PCIe Gen4/Gen5 arayüzleri gibi uygulamalarda mikrodenetleyici fiziksel olarak yetersiz kalır.

Deterministik Düşük Gecikme

HFT (High-Frequency Trading) sistemlerinde nanosaniyeler önemlidir. Tipik bir HFT FPGA çözümü, ağ paketini alıp sipariş üretene kadar 100-300 ns gibi sürelerle çalışır; bu, hiçbir mikrodenetleyicinin ulaşamayacağı bir hızdır.

Özel veya Standart Olmayan Protokoller

Mikrodenetleyicilerde hazır UART, SPI, I2C bulunur; ancak standart dışı bir seri protokol veya çok hatlı paralel arayüz tasarlamak gerekiyorsa FPGA tek seçenektir.

ASIC Prototipleme

Bir ASIC üretmeden önce tasarımı FPGA üzerinde doğrulamak, endüstrinin standart pratiğidir. Bu, milyonlarca dolarlık üretim maskelerini riske atmadan tasarım hatalarını yakalama imkânı sağlar.

AI Inference Hızlandırma

Veri merkezlerinde ve edge cihazlarda, GPU'lara kıyasla daha düşük güç tüketimi ve daha düşük gecikme ile sinir ağı çıkarımı yapılması gereken yerlerde FPGA tercih edilir. AMD Versal ve Intel Agilex aileleri bu pazarı hedefler.


Hibrit Çözümler: SoC FPGA'lar

Modern dünyada birçok uygulama hem mikrodenetleyici esnekliği hem de FPGA performansı gerektirir. Bu ihtiyaç, SoC FPGA (System-on-Chip FPGA) ürünlerinin doğmasına yol açtı.

Bu çiplerde tek bir silikon üzerinde:

  • Donanımsal ARM Cortex-A serisi işlemci çekirdekleri (Cortex-A9, A53, A72)
  • Programlanabilir FPGA dokusu
  • Yüksek hızlı arayüzler (PCIe, Ethernet, USB)
  • Bellek kontrolcüleri

bir arada bulunur. AMD (Xilinx) Zynq-7000, Zynq UltraScale+ MPSoC, Intel SoC FPGA ve Microchip PolarFire SoC bu kategorinin önde gelen örnekleridir.

SoC FPGA'lar, kullanıcı arayüzü, ağ iletişimi ve dosya sistemi gibi Linux tabanlı işleri ARM çekirdeklerine; sinyal işleme, video kodek ve özel protokoller gibi paralel işleri ise FPGA dokusuna devrederek "her iki dünyanın en iyisini" sunarlar.


Gerçek Dünya Örnekleri: Hangi Sistem Neyi Kullanıyor?

Örnek 1: Otonom Bir Araç

Modern bir otonom araçta her iki teknoloji de birlikte kullanılır:

  • Mikrodenetleyiciler: Pencere kontrolü, ayna ayarı, iç ışıklandırma, sensör node'ları, CAN bus iletişimi.
  • FPGA: Lidar verisi işleme, kamera ön işleme, sensör füzyonu, gerçek zamanlı algoritmalar.
  • GPU/SoC: Sinir ağı çıkarımı, karar verme.

Örnek 2: 5G Baz İstasyonu

Bir 5G baz istasyonunda mikrodenetleyici sistem yönetimi, güç kontrolü ve hata izleme gibi görevleri üstlenirken, FPGA radyo frekansı (RF) ön işleme, MIMO işleme ve fronthaul/backhaul protokol işleme gibi yüksek hızlı görevleri yerine getirir.

Örnek 3: Akıllı Saat

Apple Watch veya benzeri bir akıllı saatte yalnızca düşük güçlü bir mikrodenetleyici/SoC bulunur. Burada FPGA kullanmak hem güç hem maliyet açısından mantıksız olur. Akıllı saatler, mikrodenetleyici dünyasının (özellikle ARM Cortex-A ve M serileri) tipik bir uygulamasıdır.

Örnek 4: HFT (Yüksek Frekanslı Borsa) Sistemi

Bir HFT sunucusunda ağ kartı ile borsa platformu arasındaki yol tamamen FPGA üzerinden geçer. Mikrodenetleyici burada yalnızca yardımcı sistem yönetimi için kullanılır; karar verme yolu üzerinde değildir.


Karar Akış Şeması: Hangisini Seçmeliyim?

Projeniz için doğru kararı vermenize yardımcı olacak bir kontrol listesi:

1. Gecikme nanosaniye seviyesinde olmalı mı?

  • Evet → FPGA
  • Hayır → Bir sonraki soruya geçin

2. 1 Gbps üzeri veri akışı işlenecek mi?

  • Evet → FPGA
  • Hayır → Bir sonraki soruya geçin

3. Pil ile çalışacak ve uzun ömür gerekiyor mu?

  • Evet → Mikrodenetleyici
  • Hayır → Bir sonraki soruya geçin

4. Bütçe sınırlı mı? (50 $ altı birim maliyet)

  • Evet → Mikrodenetleyici
  • Hayır → Bir sonraki soruya geçin

5. Geliştirme süresi 1-3 ay sınırı mı var?

  • Evet → Mikrodenetleyici
  • Hayır → FPGA değerlendirilebilir

6. Hem yüksek hesap gücü hem yazılım esnekliği gerekiyor mu?

  • Evet → SoC FPGA (Zynq, PolarFire SoC, Agilex SoC)

Mühendislik Kariyerim İçin Hangisini Öğrenmeliyim?

Kariyerinizin başındaysanız, sırasıyla şu yolu izlemenizi öneririz:

İlk adım — Mikrodenetleyici: Arduino veya STM32 ile başlayın. Dijital elektroniğin temellerini, C dilini, gömülü sistem programlamayı ve donanım-yazılım sınırını burada öğrenirsiniz. Bu beceriler her durumda işinize yarar ve iş piyasasında talep yüksektir.

İkinci adım — Dijital Tasarım Temelleri: Mantık kapıları, kombinasyonel ve sıralı devreler, sonlu durum makineleri (FSM), saat sinyali ve zamanlama kavramlarını çalışın.

Üçüncü adım — FPGA: Verilog veya VHDL öğrenmeye başlayın. iCEBreaker veya Basys 3 gibi başlangıç kartlarıyla pratik projeler yapın. FPGA bilgisi, savunma sanayi (Aselsan, Roketsan, STM), telekomünikasyon ve finans sektörlerinde özellikle değerlidir.

Dördüncü adım — SoC FPGA: Zynq veya benzeri platformlarda hem ARM yazılım hem FPGA donanım tasarımı yapın. Bu kombinasyon, sektörde en aranan beceri setlerinden biridir.

Daha detaylı bir FPGA öğrenme yol haritası için FPGA Nedir? Kapsamlı Rehber yazımızdaki "FPGA Nasıl Öğrenilir?" bölümünü inceleyebilirsiniz.


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

FPGA bir mikrodenetleyicinin yerini alabilir mi? Teknik olarak FPGA içine bir "soft processor" (Xilinx MicroBlaze, Altera Nios II, RISC-V çekirdekleri) yerleştirip mikrodenetleyici işlevi gördürebilirsiniz. Ancak bu çözüm hem maliyet hem güç tüketimi açısından gerçek bir mikrodenetleyiciden çok daha pahalıya gelir. Bu yöntem ancak özel gereksinimli durumlarda anlamlıdır.

Hangisi daha hızlıdır: FPGA mı yoksa mikrodenetleyici mi? "Hız" kavramı uygulamaya göre değişir. Tek bir komutun yürütme hızında modern bir Cortex-M7 (550 MHz) bir FPGA'daki tasarımdan (genellikle 100-400 MHz) daha hızlı saatte çalışır. Ancak FPGA'nın paralel mimarisi sayesinde toplam iş başına süre (throughput) çoğu zaman çok daha düşüktür.

FPGA programlama mikrodenetleyici programlamaya benzer mi? Hayır. Mikrodenetleyicide "satır satır çalışacak yazılım" yazarsınız. FPGA'da ise "aynı anda var olacak donanım blokları" tanımlarsınız. Bu zihinsel model değişikliği, yazılım geliştiricilerin FPGA'ya geçişte en çok zorlandığı kısımdır.

Arduino bir FPGA mıdır? Hayır. Arduino, AVR veya ARM Cortex-M tabanlı mikrodenetleyicilerin etrafına geliştirme kartı ve yazılım ekosistemi inşa eden bir platformdur. FPGA ile hiçbir ilgisi yoktur. Ancak FPGA dünyasına benzer kolaylıkta girmek isteyenler için iCEBreaker veya TinyFPGA gibi açık kaynaklı kartlar mevcuttur.

FPGA mı yoksa mikrodenetleyici mi daha çok iş imkânı sunar? Sayıca mikrodenetleyici alanında çok daha fazla iş ilanı bulunur (gömülü yazılım mühendisleri). Ancak FPGA mühendisliği daha niş ve özelleşmiş bir alan olduğu için ücret skalası genellikle daha yüksektir. Türkiye'de savunma sanayii FPGA mühendislerini aktif olarak aramaktadır.

Tek bir projede hem FPGA hem mikrodenetleyici kullanılabilir mi? Kesinlikle. Hatta endüstride en yaygın yaklaşımlardan biri budur. Mikrodenetleyici sistem yönetimi, kullanıcı arayüzü ve düşük hızlı çevre birimi kontrolünü; FPGA ise yüksek hızlı veri işleme ve özel protokolleri üstlenir. SoC FPGA'lar bu mimariyi tek bir çipte sunar.

HLS (High-Level Synthesis) ile C kodumu doğrudan FPGA'ya derleyebilir miyim? Evet, Xilinx Vitis HLS veya Intel HLS Compiler ile C/C++ kodunu HDL'e dönüştürebilirsiniz. Ancak optimum performans için kodun "HLS dostu" yazılması gerekir; bu da klasik C programlamadan farklı bir disiplin gerektirir. HLS, FPGA'yı tamamen "yazılım gibi" yapmaz.


Sonuç

Mikrodenetleyici ve FPGA, birbirinin alternatifi değil, birbirinin tamamlayıcısı olarak düşünülmesi gereken iki güçlü teknolojidir. Mikrodenetleyici; düşük maliyet, düşük güç tüketimi, hızlı geliştirme ve geniş ekosistem sunarken; FPGA, paralel işlem gücü, deterministik gecikme ve donanım esnekliği gibi alanlarda öne çıkar.

Doğru seçim, projenizin gereksinimlerine bağlıdır: pil ömrü ve birim maliyeti önemliyse mikrodenetleyici, yüksek throughput ve düşük gecikme kritikse FPGA, her ikisi de gerekliyse SoC FPGA tercih edilmelidir.

Modern bir gömülü sistem mühendisinin her iki dünyaya da en azından temel düzeyde aşina olması, kariyer açısından büyük bir avantajdır. Mikrodenetleyici ile başlayıp dijital tasarım temelleri üzerine FPGA bilgisi inşa etmek, sektörde en aranan mühendis profillerinden birine sahip olmanızı sağlar.


Bu rehber hakkında sorularınız veya eklemek istedikleriniz varsa yorumlar bölümünde paylaşabilir veya bize ulaşabilirsiniz. Bir sonraki yazımızda görüşmek üzere!

ideasoft e-ticaret paketleri ile hazırlandı.