Portföyümüzde +1 500 000 ürün

Her gün 7000 parsel gönderiyoruz

150 ülkeden +300 000 müşteri

Quick Buy Favoriler
Sepet

Programlanabilir dijital FPGA devreleri

Yayın tarihi: 18-11-2025 🕒 9 okuma süresi

FPGA cihazları uzun yıllardır ticari olarak mevcut, ancak birçok avantajına rağmen uygulamalarda popüler olduğu söylenemez. Bunun başlıca nedenleri, çözümün yüksek maliyeti ve uygulamalar hakkında bilgi eksikliğidir. Bu özelliklerden ilki, bileşenlerle ilgili tasarımcı veya diğer karar vericileri olumsuz etkilerken, ikincisi en çok nesne yönelimli dillerde yetkin olan programcı veya gömülü sistem tasarımcısını etkilemektedir; bu kişiler donanım tanım dili konusunda bilgi sahibi değildir. Bu metinde, FPGA cihazlarının seçilmiş pratik özelliklerini inceleyecek ve bunları çok daha iyi bilinen ve kabul gören mikrodenetleyicilerle karşılaştıracağız. Ayrıca, FPGA kullanımının zorunlu olduğu uygulamaları ve "aşırı" hale geldiği durumları da belirteceğiz.

FPGA, Field-Programmable Gate Array kelimelerinin ilk harflerinden türetilmiş bir grup entegre devrenin adıdır. Bu cihazlar üretimden sonra programlanabilir. FPGA'nın programlama sürecine konfigürasyon denir; çünkü bu süreç, yapı içinde mevcut olan hazır işlevsel bloklar arasında bağlantılar kurmayı içerir. Sabit işlevselliğe sahip tipik dijital entegre devrelerin (kapılar, kayıtlar, flip-floplar, sayaçlar vb.) aksine, FPGA'lar tekrar tekrar programlanabilir, bu da farklı uygulamaların tasarımında ve test edilmesinde esneklik sağlar.

FPGA cihazları satın al

FPGA'lar, programlanabilir mantık blokları ve bunlar arasındaki programlanabilir bağlantılardan oluşur. Bu cihazlar yalnızca dijital bloklar değil, aynı zamanda analogdan dijitale dönüştürücüler, dijitalden analoğa dönüştürücüler, işlemci çekirdekleri (genel amaçlı veya DSP), harici cihazlarla işbirliğini sağlayan arayüz blokları veya Network-on-Chip (NoC) aracılığıyla bağlanan AI destek birimleri de içerebilir; bu, cihazın blokları ve bileşenleri arasında veri paketlerini ileten yerleşik bir bağlantı ağıdır. Zengin özellikler ve esnek bağlantılar sayesinde, FPGA cihazları çeşitli işlevleri yerine getirmek üzere yapılandırılabilir; örneğin, sinyal işleme, gömülü sistem kontrolü veya veri işleme hızlandırması gibi.

FPGA'nın en önemli avantajlarından biri hesaplama hızıdır. Bu cihazlar, bir mikroişlemci gibi talimatları sırayla alıp yürütmekten farklı çalışır. FPGA'da, işleme sonucu "hemen" görünebilir; yalnızca küçük bir yayılma süresi ile gecikme yaşanır. Ayrıca, birçok işlemin paralel olarak gerçekleştirilebilmesi de önemlidir; bu, mikrodenetleyicide nadiren birden fazla talimatın eşzamanlı yürütülmesini destekler.

Her FPGA cihazı üç bileşen grubundan oluşur:

  1. Her FPGA'nın temel yapı taşları mantık bloklarıdır. Her biri bir dizi temel mantık işlevi ve kayıt içerir. Mantık işlevleri mantıksal işlemleri gerçekleştirirken, kayıtlar verileri saklar.
  2. Mantık blokları, bağlantı veriyolu ile birbirine bağlanır. Ancak bu terim, örneğin bir bilgisayar anakartındaki veri yolu ile karıştırılmamalıdır. Sabit topolojili bakır izlerin aksine, bunlar bloklar arasında neredeyse rastgele bağlantı kurmaya olanak tanıyan esnek bir şekilde programlanabilir bağlantılardır.
  3. Tüm konfigürasyon, kalıcı konfigürasyon belleği içinde saklanır. Çoğu FPGA'da, bu, tekrar tekrar silinip yazılabilen harici Flash/EEPROM belleğidir. Bazı FPGA cihazları yerleşik konfigürasyon belleğine sahip olabilir, ancak bu daha az yaygındır. FPGA, güç açıldığında veya sert sıfırlama yapıldığında konfigürasyonu yükler. Konfigürasyon belleğinin mevcudiyeti, prototiplerin kolayca inşa edilmesini ve test edilmesini sağlar ve tamamlanmış, çalışan bir cihaz durumunda işlevselliğin kolayca güncellenmesini veya iyileştirilmesini sağlar. Bu, FPGA kullanımının, özel entegre devreler (ASIC) tasarlayıp üretmekten çok daha maliyet etkin olduğu küçük serilerde üretilen donanımlar için özellikle değerlidir.

Şekil 1. FPGA cihazının yapısını gösteren basitleştirilmiş blok diyagramı

FPGA ve CPLD arasındaki farklar

CPLD cihazları (Complex Programmable Logic Device), FPGA cihazlarının öncüleridir ve (daha az işlevselliğe sahip olmalarına rağmen) günümüzde daha az karmaşık uygulamalar için sunulmaktadır. Çoğu büyük tedarikçi, belirli bir mantıksal işlevi yerine getirmek üzere tasarlanmış programlanabilir elemanlar ve sabit parçalardan oluşan PAL olarak adlandırılan en basit versiyonlardan başlayarak geniş bir yelpazede ürün sunmaktadır. Bu, birkaç mantık işlevi yerine bir entegre devre kullanmayı sağlar, ancak uygulamalar için büyük bir esneklik sunmaz.

CPLD cihazları satın al

PAL'a kıyasla, CPLD cihazları daha karmaşıktır. Daha fazla kapı içerir, kalıcı bellek ve RAM ile donatılmıştır, bu da onları daha karmaşık uygulamalar için uygun hale getirir. Örneğin, Intel®, tüm girişlerin her hücreye erişilebilir olduğu tek bir, birleşik devre paketinde birçok PAL bloğu olan makro hücreler yerleştirmiştir ve her makro hücre herhangi bir çıkışı kontrol edebilir. Bağlantı yapısı, FPGA'daki gibi elektrikle programlanabilir bellek olarak adlandırılan konfigürasyon belleğinde saklanır. Dolayısıyla, CPLD'ler makro hücrelere, programlanabilir bir bağlantı veriyoluna ve konfigürasyon belleğine sahip olduğunda, FPGA'lardan nasıl farklıdırlar?

FPGA'lara kıyasla, CPLD'ler önemli ölçüde daha az mantık elemanı içerir ve LUT dizileri (look up tables) yoktur. Daha entegre bir mimariye sahiptirler, çok daha az sayıda mantık bloğuna sahiptirler ve her blokta daha karmaşık mantık işlevlerini uygularlar. CPLD'deki bloklar arasındaki birçok bağlantı, üretim sürecinde önceden tanımlanmıştır ve cihaz konfigürasyonu sırasında değiştirilemez. Daha karmaşık uygulamalar oluşturmak için kullanılmazlar; FPGA'lar milyonlarca mantık işlevi içerebilir. Örneğin, bir FPGA bir işlemci çekirdek modelleyebilirken, bir CPLD, onunla işbirliği yapan bir adres kodlayıcısını uygulamak için yararlıdır.

Şekil 2. MAX7000 serisi cihazın makro hücresi (kaynak: üretici belgeleri)

Çoğu FPGA cihazında, konfigürasyon harici bellekte saklanır ve genellikle seri bir arayüz aracılığıyla bağlanır. Konfigürasyon verileri, her güç açıldığında veya sert sıfırlama yapıldığında FPGA'nın RAM'ine kopyalanır. Bu, daha karmaşık FPGA'lar için daha büyük bir gecikme yaratarak cihazın başlatılmasında bir gecikme oluşturur; bu, yerleşik EEPROM belleği olan CPLD'lerde böyle değildir.

CPLD'ye kıyasla FPGA'nın bir dezavantajı, daha yüksek uygulama maliyetidir.

  • FPGA, bireysel voltajların etkinleştirilme sırasını kontrol etmenin ve herhangi bir arıza durumunda belirli bir şekilde tepki vermenin gerekli olduğu özel, verimli bir güç sistemine ihtiyaç duyabilir.
  • Harici bellekte saklanan konfigürasyon, yetkisiz erişime karşı hassastır; bu, uygulama güvenliği açısından önemli olabilir.
  • FPGA uygulamaları, önemli ölçüde daha fazla harici bileşen gerektirir ve bu da maliyetleri artırır.
  • FPGA'ların yüksek fiyatı, daha karmaşık cihazların popüler uygulamalarda kullanılmasını pratikte ortadan kaldırır. CPLD'ler bu kadar maliyetli değildir ve popüler elektronik cihazlarda, birkaç veya hatta on kadar mantık cihazının yerini alarak başarıyla kullanılabilir. Ancak, birçok avantajına rağmen, bir mantık işlevi uygulanması gerektiğinde, birçok tasarımcı hala daha iyi bilinen mikrodenetleyiciyi tercih edecektir...

Tablo 1. FPGA ve CPLD cihazlarının seçilmiş parametrelerinin karşılaştırması

Özellik/parametre CPLD FPGA
Uygulama esnekliği Düşük Yüksek
Fiyat Düşük Yüksek veya çok yüksek
Uygulama güvenliği Yüksek Yetkisiz erişime karşı hassas
Çalışma hızı Yüksek Yüksek
Kapasite/uygulama boyutu Düşük Yüksek veya çok yüksek
Donanım uygulaması Basit Karmaşık veya çok karmaşık
Programlama Donanım konfigürasyon dilleri veya işlevsel şemalarla

FPGA ve mikrodenetleyici arasındaki farklar

FPGA'ya entegre edilmiş işlevsel bloklar, özellikle A/D dönüştürücüler, D/A dönüştürücüler veya harici cihazlar için arayüz modülleri, bir mikrodenetleyici çekirdeğinin çevresini andırabilir. Bir FPGA, yerleşik RAM ve kalıcı Flash belleği olabilir, ancak bu benzerlik yanıltıcıdır.

Modern, gelişmiş FPGA cihazları, gelişmiş, karmaşık mikrodenetleyicilerden işlevsel olarak daha karmaşıktır. Örneğin, FPGA içindeki işlevsel blokların bağlantısı, entegre devre yapısı içinde veri paketlerinin, yerleşik anahtarlar tarafından yönetilen veriyolları aracılığıyla iletildiği NoC (Network on Chip) teknolojisini kullanabilir. Bu, sinyal işleme ve koşullandırma ile makine öğrenimi ve yapay zeka kullanan algoritmalar için faydalıdır.

FPGA'nın bir mikrodenetleyiciye kıyasla çalışma hızı gerçekten şaşırtıcıdır. Bunun nedeni, tipik bir mikrodenetleyici çekirdeğinin talimatları birer birer alıp yürütmesidir. Veri işleme hızını artırmak için bazı işlemleri çevresel birimlere (örneğin, belleğe veri iletimi ve bellekten veri alımı için DMA aracılığıyla) devreder, ancak bu, çalışma ritmini değiştirmez. FPGA'larda, konfigürasyona bağlı olarak, FPGA genellikle verileri aldıktan hemen sonra yanıtı iletir ve ayrıca birçok iş parçacığını aynı anda yürütebilir. Örneğin, bir sinyalin değerlendirilmesi, bir örnek almayı ve ardından bir sonraki adımda değerlendirmeyi içermediğini, bunun yerine bağlı mantık işlevleri ağının mevcut olduğu belirli bir değerlendirme şemasına atıfta bulunduğunu unutmayın; bu, cihazın yayılma süresine kadar hassasiyetle mevcut olabilir.

Bir mikrodenetleyici, bir işlemci çekirdeği, RAM, ROM, Flash ve çevresel birimler gibi giriş/çıkış portları, zamanlayıcılar, A/D ve D/A dönüştürücüler içeren tek bir entegre devreden oluşur. Belirli görevleri yerine getirmek üzere tasarlanmıştır. Bazı modüller güç tasarrufu sağlamak için etkinleştirilebilir/devre dışı bırakılabilir, ancak işlevselliği yeniden tanımlanamaz. Üretim sırasında sabit olan blokların çalışması ve bağlantısı da dahil olmak üzere, bu sabittir. Bir mikrodenetleyici, tek bir pakette yer alan küçük bir baskılı devre kartı üzerine monte edilmiş bir mikro bilgisayar gibidir. Konfigürasyonunu değiştirmek, kartı, devre izlerini, bileşen yerleşimini ve bunların bağlantılarını değiştirmeyi gerektirir.

Bir FPGA cihazı, programlanabilir mantık bloklarından ve yapılandırılabilir bağlantılarla birbirine bağlıdır. İşlevler, farklı mantıksal işlemleri gerçekleştirebilen çeşitli işlevsel bloklar halinde birleştirilebilir ve modern gelişmiş FPGA cihazları, NoC gibi çok gelişmiş bağlantı teknolojilerini kullanır.

FPGA (ve CPLD) programlama, mantıksal bağlantıları ve işlevleri tanımlamaktan oluşur ve bu, VHDL veya Verilog gibi donanım tanım dilleri (HDL) kullanılarak yapılır. Konfigürasyon, özellikle daha basit cihazlar için, tipik mantık bileşenlerini yerleştirip bağlayarak bir mantık şeması kullanılarak da yapılabilir. FPGA'yı yapılandırmak, dijital devre tasarımı bilgisi gerektirir. Bir mikrodenetleyiciyi programlamak, yapısal veya nesne yönelimli programlama dilleri kullanarak yapılır. Günümüzde, çoğu uygulama, düşük seviyeli montaj dilinden yüksek seviyeli diller olan C, C++, Java ve diğerlerine doğru kaymaktadır. Mikrodenetleyici programlama, "büyük" bilgisayarları programlamaya benzer; bu, çoğu programcı için daha kolaydır; çünkü genellikle mantık bloklarının çalışması ve optimizasyonu hakkında bilgi sahibi değildirler. FPGA program belleği konfigürasyonu saklarken, mikrodenetleyici belleği komutları ve parametreleri saklar.

Tablo 2. Mikrodenetleyiciler ve FPGA'nın seçilmiş parametrelerinin karşılaştırması

Özellik/parametre Mikrodenetleyici FPGA
Uygulama esnekliği Yüksek Yüksek
Fiyat Düşük veya orta Yüksek veya çok yüksek
Uygulama güvenliği Yetkisiz erişime karşı hassas Yetkisiz erişime karşı hassas
Çalışma hızı FPGA'ya kıyasla düşük Yüksek
Bellek kapasitesi / uygulama boyutu Çok küçükten çok büyüğe kadar Yüksek veya çok yüksek
Donanım uygulaması Basit Karmaşık veya çok karmaşık
Analog çalışma olasılığı Yok veya sınırlı
Programlama Montaj dilinde veya yüksek seviyeli dillerde Donanım konfigürasyon dillerinde

FPGA ve ASIC arasındaki farklar

ASIC cihazlarının en önemli özelliği, adından da anlaşılacağı gibi, belirli bir görevi yerine getirmek üzere tasarlanmış olmalarıdır. Bu, örneğin bir radyo sinyalini alma ve çözme, belirli bir ekran modelini kontrol etme veya diğerleri olabilir. ASIC'in mutlaka programlanabilir olması gerekmez; ancak, uygulamaların oluşturulabileceği bir işlemci çekirdeği içeren ticari olarak mevcut olanlar vardır.

Tipik bir entegre devre ile bir ASIC cihazı arasındaki sınır çok incedir. Bunlar esasen üretim hacmi ile ayrılır; ASIC'ler, seri üretim yapılan entegre devrelere kıyasla daha az sayıda üretilir. Birçok üretici, entegre devreleri, bunların seri üretim yapılıp yapılmadığını belirtmeden sunmaktadır.

Bir ASIC'in mimarisi tasarımcı tarafından tanımlanır ve üretimden sonra değiştirilemez. Genellikle, ASIC'ler bir işlemci çekirdeğine sahipse, program geliştirilmesine gerek yoktur; yalnızca bazı belirli parametrelerin ayarlanması gerekir. Benzer şekilde, çevre ile iletişim türü ve veri formatları tasarım sırasında tanımlanır ve farklı türler arasında geçiş yapmak mümkün olsa bile, değişiklikler yapılamaz.

FPGA'yı yapılandırmaya kıyasla, ASIC tasarım süreci daha karmaşık ve maliyetlidir; bu, dijital devre tasarımının ötesinde uzmanlık bilgisi gerektirebilir, ancak nihai ürün belirli uygulamalar, performans ve enerji verimliliği için daha optimize edilmiştir.

ASIC'ler, düşük güç tüketimi ve küçük boyut gerektiren uygulamalarda kullanılır. Uzmanlaşma, mükemmel pratik parametreler sunmalarını sağlar. Ayrıca, ASIC'ler genellikle lehimlendikten veya bir sokete yerleştirildikten hemen sonra kullanılmaya hazırdır ve harici bellekten konfigürasyon yüklemeye ihtiyaç duymazlar. Ayrıca, karmaşık işlevselliğe sahip olabilirler veya tamamen analog olabilirler. Bu, FPGA'ların sağladığı, dijital verilerin paralel işlenmesi yoluyla çok yüksek performans sunma yeteneği ile mümkün değildir; bu, analogdan dijitale ve tersine dönüşümden sonra gerçekleşir.

Kullanıma hazır ASIC'ler, FPGA'lardan çok daha ucuz olabilir. Tasarımı çok daha pahalı ve zaman alıcıdır, ancak bu maliyetler genellikle büyük hacimlerde amorti edilir. Bu, yeniden yapılandırma yeteneğinin olmaması pahasına gelir, ancak bu her zaman gerekli değildir. Mikrodenetleyicilere benzer şekilde, FPGA'lar ASIC'leri prototiplemek için kullanılabilir, ancak ASIC'ler FPGA'nın çalışmasını modelleyemez. Elbette burada, FPGA için yararlı bir konfigürasyon kaydını mümkün kılan modellemeden bahsediyoruz; yalnızca benzer işlevselliği elde etmekten değil.

Tablo 3. ASIC ve FPGA'nın seçilmiş parametrelerinin karşılaştırması

Özellik/parametre ASIC FPGA
Uygulama esnekliği Çok düşük Yüksek
Fiyat Düşük veya orta Yüksek veya çok yüksek
Uygulama güvenliği Yüksek Yetkisiz erişime karşı hassas
Çalışma hızı Yüksek Yüksek
Kapasite/uygulama boyutu Düşük veya yok Yüksek veya çok yüksek
Donanım uygulaması Basit Karmaşık veya çok karmaşık
Analog çalışma olasılığı Tasarımına bağlı Yok veya sınırlı
Programlama Sınırlı yetenek veya gereksiz Donanım konfigürasyon dillerinde

Kaynakça:

  • Control Engineering Poland – Otomasyonda FPGA - www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – Endüstri 4.0’da FPGA - www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Vikipedi – Dördüncü Sanayi Devrimi - www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemysłowa
  • FPGA cihazlarında gömülü sistem tasarımı - www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • Hafızanın gücü – Elektronika Praktyczna - www.ep.com.pl/files//2012.pdf
  • Vikipedi – Saha Programlanabilir Kapı Dizisi (FPGA) - www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf - www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • “Real-Time Image Processing on FPGA” – SpringerLink - www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

Transfer Multisort Elektronik (TME), elektronik bileşenler, elektroteknik parçalar, atölye ekipmanları ve endüstriyel otomasyonun dünyanın en büyük küresel distribütörlerinden biridir. Katalogda 1.300 lider üreticiden 1.500.000’dan fazla ürün bulunmaktadır. Łódź ve Rzgów’daki (Polonya) TME’nin modern lojistik merkezleri, toplamda 40.000 m²’den fazla alanıyla, her gün yaklaşık 6.000 paketi 150’den fazla ülkedeki müşterilere göndermektedir.

TME ayrıca TME Education projesi aracılığıyla genç mühendislerin ve elektronik meraklılarının bilgi ve becerilerinin geliştirilmesine yatırım yapmakta ve TechMasterEvent serisini düzenleyerek teknoloji topluluğunu desteklemekte, yeniliği ve deneyim paylaşımını teşvik etmektedir.

rightColumnPicture rightColumnPicture

AYRICA OKUYUNUZ