# Alanda programlanabilir kapı dizisi
FPGA (Field Programmable Gate Array - Alanda Programlanabilir Kapı Dizileri), programlanabilir mantık blokları ve bu bloklar arasındaki ara bağlantılardan oluşan ve geniş uygulama alanlarına sahip olan sayısal tümleşik devrelerdir. Tasarımcının ihtiyaç duyduğu mantık işlevlerini gerçekleştirme amacına yönelik olarak üretilmiştir. Dolayısıyla her bir mantık blokunun işlevi kullanıcı tarafından düzenlenebilmektedir. FPGA ile temel mantık kapılarının ve yapısı daha karmaşık olan devre elemanlarının işlevselliği artırılmaktadır. Alanda programlanabilir ismi verilmesinin nedeni, mantık bloklarının ve ara bağlantıların imalat sürecinden sonra programlanabilmesidir.


## FPGA yapısı.
FPGA, programlanabilir mantık blokları, bu blok dizisini çevreleyen giriş-çıkış blokları ve ara bağlantılar olmak üzere düzenlenebilir üç ana bölümden oluşur. Programlanabilir mantık blokları, ara bağlantılar içerisine gömülü şekilde bulunur.
Programlanabilir mantık bloklarının yapılandırılması ve bu bloklar arasındaki iletişim ara bağlantılar sayesinde gerçekleşir.
Giriş çıkış blokları, ara bağlantılar ile bütünleşmiş devrenin paket bacakları arasındaki ilişkiyi sağlar.


### Tipik FPGA mantık bloku yapısı.
Tipik FPGA mantık bloku, 4 girişli LUT (Look up table) (başvuru çizelgesi) yapısı ve flip-flop gibi diğer mantık elemanlarından oluşur.
4 girişli LUT yapısı, değişik mantıksal işlemleri yürütür. Çıkış verileri isteğe bağlı olarak yazmaçta saklanır.


## Uygulama alanları.
Düşük maliyetli olması ve tasarım sırasında kullanıcıya esneklik sağlaması sebebiyle kullanımı gittikçe yaygınlaşmıştır. Savunma, sayısal işaret işleme, uzay, tıbbi görüntüleme ve otomotiv, FPGA' nın uygulama alanlarından bazılarıdır.
FPGA'ler özellikle paralel işlem gerektiren uygulamalarda yaygın olarak kullanılmaktadır.


## Programlama ve tasarım.
FPGA'in içerisine gömülecek devrenin tasarımı 2 yolla yapılmaktadır. Birincisi şematik tasarımla (Şematik) devre elemanlarının teker teker yerleştirilip aralarındaki bağlantıların şematik üzerinde yapılmasıdır. İkincisi ise Donanım tanımlama dili olan Verilog veya VHDL'den birini kullanarak tasarlanacak devrenin davranışı tanımlamaktır.


## Üretici firmalar.
FPGA üreten firmalardan bazıları şunlardır;
  - Xilinx
  - Altera
  - Actel
  - Lattice Semiconductor
  - QuickLogic


## Tasarım şekilleri.
  - Şematik tabanlı tasarım
  - HDL
  - C/C++
  - DSP
  - Gömülü sistemler


## Üretim teknikleri.
  - SRAM: SRAM temelli yapılandırma hücreleri kullanılır. SRAM tekniğinin olumlu yanı, tasarım fikirlerinin hızlı bir şekilde geliştirilebilir ve sınanabilir olmasıdır. Olumsuz yanı ise sistemin her açılışında aygıtın yapılandırılma zorunluluğudur.
  - Antifuse: Olumsuz yanı, bir kez programlanır olmasıdır. Bu özelliğinden dolayı uygulama geliştirme için tercih edilmez.
  - EPROM: Silinebilme ve yeniden programlanabilme özelliğine sahiptir. EPROM yongaları üzerine açılan pencere vasıtasıyla program belli bir zaman güneş ışığına ve morötesi ışınlara tutularak silinmektedir.
  - EEPROM: Elektrikle silinip programlanabilme özelliğine sahiptir.
  - Flash: Bazı çeşitleri devre içinde programlanabilirdir.
  - Fuse: Bir kez programlanır.