FPGA Nedir?
FPGA, yani Field Programmable Gate Array, elektronik dünyasının en esnek ve güçlü araçlarından biridir. FPGA, içindeki programlanabilir mantık kapıları sayesinde çeşitli dijital devreleri gerçekleştirebilen bir donanım platformudur. Bu cihazlar, bir donanım tasarımcısına kendi devrelerini yeniden yapılandırma imkanı sunar. FPGA’ler, farklı uygulamalar için programlanabilir ve böylece geniş bir yelpazede kullanılabilirler.
FPGA’nin Önemi ve Kullanım Alanları
FPGA’lerin önemi, esneklikleri ve performanslarından kaynaklanır. İşte bazı önemli kullanım alanları:
- Dijital Sinyal İşleme (DSP): FPGA’ler, ses ve görüntü sinyallerini hızlı bir şekilde işleyebilir. Bu, yüksek çözünürlüklü videolar ve gelişmiş ses işleme uygulamaları için idealdir.
- Gömülü Sistemler: FPGA’ler, mikrodenetleyiciler ve mikroişlemcilerle birlikte çalışarak karmaşık gömülü sistemlerde kullanılabilir.
- Haberleşme ve Ağ Sistemleri: İnternet trafiğinin yönetilmesinden veri merkezlerine kadar geniş bir yelpazede FPGA’ler kullanılır.
- Otomotiv ve Havacılık Elektroniği: FPGA’ler, araçların ve uçakların kontrol sistemlerinde güvenilir ve hızlı çözümler sunar.
- Yapay Zeka ve Makine Öğrenimi: FPGA’ler, karmaşık algoritmaları hızlı bir şekilde işleyerek yapay zeka uygulamalarında da yer alır.
FPGA’nin Tarihçesi
Programlanabilir Lojik Teknolojisinin Evrimi
FPGA’lerin kökeni, 1960’lar ve 1970’lerdeki temel lojik kapılar ve flip-floplara kadar uzanır. Bu dönemlerde mühendisler, dijital devreleri manuel olarak tasarlıyorlardı ve her şey çok daha basitti. Ancak, bu basit yapı taşları, modern FPGA’lerin temelini oluşturdu.
1960’lar ve 1970’ler: Temel Lojik Kapılar ve Flip-Floplar
1960’lar ve 1970’lerde mühendisler, NAND, NOR, AND ve OR gibi temel lojik kapılar ve flip-floplar kullanarak dijital devreler tasarlıyorlardı. Bu kapılar ve flip-floplar, dijital elektroniklerin temel yapı taşlarıydı. O zamanlar her şey daha manuel ve elle yapılmak zorundaydı.

TTL Entegre Devreler
1970’lerde Transistör-Transistör Lojik (TTL) entegre devreler sahneye çıktı. Bu devreler, lojik kapıları ve flip-flopları tek bir paket içinde topluyordu. Bu, mühendislerin işini biraz daha kolaylaştırdı ve dijital tasarımlar daha karmaşık hale gelebildi.

1980’ler: PLA ve PAL’lerin Gelişimi
1980’lerde Programlanabilir Lojik Diziler (PLA) ve Programlanabilir Dizi Lojik (PAL) devreler geliştirildi. PLA’lar, temel lojik kapıları bir araya getirerek belirli bir lojik fonksiyonu gerçekleştirebiliyordu. PAL’ler ise daha gelişmişti; hafıza elemanları içererek daha karmaşık işlevleri gerçekleştirebiliyordu.

1990’lar ve Sonrası: CPLD ve FPGA’nin Ortaya Çıkışı
1990’lara geldiğimizde, CPLD (Complex Programmable Logic Devices) ve FPGA (Field Programmable Gate Arrays) ortaya çıktı. CPLD’ler, birçok PAL veya PLA devresinin tek bir yonga içinde toplanmış haliydi ve daha büyük ve karmaşık dijital tasarımlar için kullanıldı. FPGA’ler ise daha esnek ve programlanabilir yapısıyla dijital tasarımda devrim yarattı.
FPGA Mimarisi

Temel Bileşenler
Bir FPGA’nin içi, dijital bir şehir gibidir. İşte bu şehirdeki önemli yapılar ve işlevleri:
- Lojik Elemanlar (LE): FPGA’nin en temel yapı taşlarıdır. Küçük mantık işlemlerini gerçekleştirebilirler ve büyük bir devreyi oluşturmak için birlikte çalışırlar.
- Konfigürasyon Hafızası: FPGA’nin programlanabilir yapısını kontrol eden hafızadır. Hangi lojik elemanın ne yapacağını belirler.
- Giriş/Çıkış Blokları (I/O Blocks): FPGA’nin dış dünyayla iletişimini sağlar. Verilerin girişini ve çıkışını düzenler.
- Dahili Bağlantılar ve Anahtarlama Matrisi: FPGA’nin içindeki lojik elemanlar arasındaki bağlantıları sağlar. Bu, şehirdeki yollar ve otoyollar gibidir.
LAB (Lojik Dizi Blokları) ve CLB (Konfigürasyon Lojik Blokları)
FPGA’nin içindeki lojik elemanlar, LAB ve CLB gibi gruplar halinde düzenlenmiştir. Bu gruplar, daha büyük ve karmaşık işlevleri gerçekleştirmek için birlikte çalışır.


LUT (Look-Up Table) ve Flip-Flop’lar
- LUT (Look-Up Table): LUT’lar, FPGA’nin karar verme mekanizmasıdır. Belirli bir giriş kombinasyonu için çıkış değerlerini saklar.
- Flip-Flop’lar: Flip-Flop’lar, bir bitlik veri depolayabilen ve belirli saat sinyalleriyle tetiklenen hafıza elemanlarıdır.

Gömülü Bellek ve DSP Blokları
- Gömülü Bellek: FPGA içinde küçük ve hızlı erişimli bellekler bulunur. Verilerin hızlı bir şekilde depolanması ve geri çağrılması için kullanılır.
- DSP Blokları (Digital Signal Processing Blocks): Karmaşık matematiksel işlemleri gerçekleştirebilen özel birimlerdir. Özellikle ses ve görüntü işleme gibi uygulamalarda kullanılır.
Faz Kilitli Döngüler (PLL) ve Saat Yönetimi
- PLL (Phase-Locked Loop): PLL’ler, saat sinyallerini düzenler ve farklı saat frekanslarını senkronize eder.
- Saat Yönetimi: FPGA içindeki işlemler, belirli saat sinyalleriyle senkronize edilir. Bu, işlemlerin doğru zamanda gerçekleşmesini sağlar.

FPGA Üretim Süreci
FPGA’lerin nasıl yapıldığını merak ediyor musunuz? İşte FPGA’nin üretim sürecine bir göz atalım:
Tasarım ve Doğrulama
Bu aşama, FPGA’nin dijital tasarımının yapılmasını ve doğrulanmasını içerir.
- Donanım Tanımlama Dili (HDL) Kullanımı (VHDL, Verilog): FPGA’lerin yapısını ve işlevlerini tanımlamak için HDL (Hardware Description Language) kullanılır. VHDL ve Verilog, bu işin en popüler dilleridir. Bu dillerle yazılan kodlar, FPGA’nin mantık yapısını oluşturur.
- Simülasyon ve Doğrulama Araçları (ModelSim, Vivado): Tasarımın doğru çalıştığını doğrulamak için simülasyon araçları kullanılır. ModelSim ve Vivado gibi yazılımlar, tasarımın sanal ortamda test edilmesini sağlar. Bu araçlar, tasarım hatalarının erken aşamada tespit edilmesine yardımcı olur.
Sentez ve Haritalama
Bu aşamada, HDL ile tanımlanan tasarım fiziksel devre elemanlarına dönüştürülür.
- Sentez Yazılımları ve Süreci (Quartus II, Vivado): Sentez, HDL kodlarını fiziksel donanım bileşenlerine dönüştürür. Quartus II ve Vivado gibi yazılımlar, bu süreci yönetir ve tasarımı lojik kapılara ve flip-flop’lara çevirir.
- Post-Sentez Optimizasyonlar: Sentez işlemi sonrasında, tasarımın performansını artırmak için optimizasyonlar yapılır. Bu optimizasyonlar, tasarımın daha hızlı ve verimli çalışmasını sağlar.
Yerleşim ve Yönlendirme
Bu aşama, sentezlenen tasarımın FPGA üzerinde fiziksel olarak yerleştirilmesi ve bağlantıların kurulmasını içerir.
- Fiziksel Tasarım ve Yerleşim: Sentezlenen lojik elemanlar, FPGA içinde belirli yerlere yerleştirilir. Bu yerleştirme, devre elemanlarının FPGA’nin fiziksel yapısına uygun şekilde dağıtılmasını sağlar.
- Yönlendirme ve Zamanlama Analizi: Yerleştirilen lojik elemanlar arasındaki bağlantılar belirlenir ve zamanlama analizi yapılır. Bu analiz, sinyallerin doğru zamanda doğru yerlere ulaşıp ulaşmadığını kontrol eder.
FPGA’nin Fiziksel Üretimi
Tasarım ve doğrulama süreçlerinin ardından, FPGA’nin fiziksel olarak üretilmesi aşamasına geçilir.
- Wafer Üretimi- Wafer Üretimi: FPGA’lerin temeli, silikon wafer’lar üzerinde atılır. Bu wafer’lar, saf silikon kristallerinden üretilir ve üzerinde milyonlarca transistör bulunur.
- Fotolitografi: Silikon wafer’lar, fotolitografi adı verilen bir süreçle işlenir. Bu süreç, ışık kullanılarak silikon üzerine ince desenler çizmeyi içerir. Bu desenler, FPGA’nin mantık kapılarının ve bağlantılarının oluşturulmasını sağlar.
- İyon İmplantasyonu ve Difüzyon: Bu aşamada, wafer’lar üzerine iyon implantasyonu ve difüzyon teknikleri uygulanarak transistörler oluşturulur. Bu işlemler, silikon wafer’ın elektriksel özelliklerini değiştirir ve mantık kapıları arasında bağlantılar oluşturur.
- Metalleme ve Bağlantı Katmanları: Transistörlerin oluşturulmasının ardından, metalleme işlemi gerçekleştirilir. Bu işlem, farklı devre elemanları arasındaki elektriksel bağlantıları sağlamak için metal katmanların eklenmesini içerir.
- Test ve Paketleme: Üretilen FPGA’ler, işlevselliklerinin doğrulanması için kapsamlı testlere tabi tutulur. Bu testler, cihazların belirlenen özelliklere uygun çalışıp çalışmadığını kontrol eder. Ardından, FPGA’ler uygun paketleme yöntemleriyle son kullanıcıya ulaşmak üzere hazırlanır.
FPGA Konfigürasyonu ve Programlanması
Fiziksel üretimden sonra, FPGA’nin işlevsel hale getirilmesi için konfigürasyon ve programlama aşaması gerçekleştirilir.
- FPGA Konfigürasyon Hafızası Türleri (SRAM, Flash): FPGA’nin konfigürasyon bilgileri, SRAM veya Flash gibi hafıza türlerinde saklanır. Bu hafızalar, FPGA’nin açılışta hangi işlevleri gerçekleştireceğini belirler.
- Konfigürasyon Dosyalarının Oluşturulması: Sentez, yerleşim ve yönlendirme aşamalarından sonra, FPGA için gerekli konfigürasyon dosyaları oluşturulur. Bu dosyalar, FPGA’nin programlanmasını sağlar.
- Aktif ve Pasif Programlama Yöntemleri: FPGA, aktif veya pasif programlama yöntemleriyle programlanabilir. Aktif programlamada, FPGA kendisi konfigürasyon dosyasını okur ve programlanır. Pasif programlamada ise, harici bir cihaz tarafından programlanır.
- JTAG ve Diğer Programlama Arayüzleri: FPGA, JTAG gibi programlama arayüzleri kullanılarak da programlanabilir. Bu arayüzler, FPGA’ye doğrudan bağlantı sağlayarak programlamayı mümkün kılar.
Sonuç
Bu yazıda, FPGA’lerin ne olduğunu, tarihçesini, mimarisini ve üretim sürecini ele aldık. FPGA’ler, esneklikleri ve performansları sayesinde dijital dünyada geniş bir kullanım alanına sahiptir. Bir sonraki bölümde, CPLD, ASIC ve FPGA teknolojilerini karşılaştırarak her birinin avantajlarını ve dezavantajlarını detaylandıracağız. Bu sayede, projeleriniz için en uygun teknolojiyi seçmenize yardımcı olacağız.
Bu yazı ilk olarak 11 Haziran 2024 tarihinde LinkedIn üzerinde yayımlanmıştır.
