Matrica e portave e programueshme në terren

parapamje|Një FPGA Stratix IV nga Altera
 Një **matricë portash e programueshme në terren** (**FPGA**) është një lloj qarku i integruar i konfigurueshëm që mund të programohet në mënyrë të përsëritur pas prodhimit. FPGA-të janë një nëngrup i pajisjeve logjike të referuara si pajisje logjike të programueshme (PLD). Ato përbëhen nga një matricë blloqesh logjike të programueshme, të lidhura në rrjet, të cilat mund të konfigurohen "në terren" për t'u ndërlidhur me njëra-tjetrën dhe për të kryer funksione të ndryshme dixhitale. FPGA-të shpesh përdoren në prodhimin me sasi të kufizuar të produkteve të përsonalizuara, si dhe në kërkim dhe zhvillim, ku kostoja më e lartë e njësive individuale nuk paraqet problem dhe ku krijimi dhe prodhimi i një qarku të personalizuar nuk do të ishte i vlefshëm. Zbatime të tjera përfshijnë sektorët e telekomunikacionit, automobilistik, hapësinor dhe industrial, të cilët përfitojnë nga fleksibiliteti, shpejtësia e lartë e përpunimit të sinjalit dhe aftësitë e përpunimit paralel.

Një konfigurim FPGA zakonisht shkruhet duke përdorur një gjuhë përshkrimi të harduerit (HDL), si p.sh. VHDL, e ngjashme me ato që përdoren për qarqet e integruara specifike për aplikacionin (ASIC). Në të kaluarën, konfigurimet përshkruheshin përmes diagramëve të qarqeve.

Blloqet logjike të një FPGA-je mund të konfigurohen për të kryer funksione komplekse kombinuese ose të veprojnë si porta logjike të thjeshta, si AND dhe XOR. Në shumicën e FPGA-ve, këto blloqe përfshijnë edhe elementë memorieje, të cilët mund të jenë flip-flop të thjeshtë ose blloqe më të avancuara memorieje.  Shumë FPGA mund të riprogramohen për të zbatuar funksione të ndryshme logjike, duke mundësuar llogaritje fleksibile dhe të rikonfigurueshme, të ngjashme me ato që kryhen përmes softuerit kompjuterik.

FPGA-të gjithashtu luajnë një rol në zhvillimin e sistemeve të integruara, falë aftësisë së tyre për të nisur zhvillimin e softuerit të sistemit paralelisht me harduerin, për të mundësuar simulime të hershme të performancës së sistemit  dhe për të lejuar testime të ndryshme dhe përsëritje të projektimit para finalizimit të arkitekturës së sistemit. 

FPGA-të përdoren gjithashtu gjerësisht gjatë zhvillimit të ASIC-ve, për të përshpejtuar procesin e simulimit.

## Historia 
Industria FPGA lindi nga memoria e programueshme vetëm për lexim (PROM) dhe pajisjet logjike të programueshme (PLD). Të dyja, si PROM-et ashtu edhe PLD-të, mund të programoheshin si në fabrikë ashtu edhe në terren (të programueshme në terren). 

Altera u themelua në vitin 1983 dhe, në vitin 1984, prezantoi pajisjen e parë logjike të riprogramueshme në industri – EP300 – e cila kishte një dritare kuarci në paketim që u mundësonte përdoruesve ta ndriçonin matricën me një llambë ultravjollcë për të fshirë qelizat EPROM që mbanin konfigurimin e pajisjes. 

Xilinx prodhoi grupin e parë të portave të programueshme në terren, të gatshme në treg, në vitin 1985  XC2064.  XC2064 kishte porta të programueshme dhe ndërlidhje të programueshme midis tyre, duke shënuar fillimin e një teknologjie dhe tregu të ri. Pajisja përmbante 64 blloqe logjike të konfigurueshme (CLB), secili me nga dy tabela kërkimi me tre hyrje (LUT). 

Më 1987, Qendra e Luftës Sipërfaqësore Detare financoi një eksperiment të propozuar nga Steve Casselman për të zhvilluar një kompjuter që do të zbatonte 600,000 porta të riprogramueshme. Casselman arriti sukses dhe një patentë në lidhje me sistemin u dha më 1992. 

Altera dhe Xilinx vazhduan të pamposhtur dhe u rritën me shpejtësi nga viti 1985 deri në mesin e viteve 1990, kur u shfaqën konkurrentët, duke gërryer një pjesë të konsiderueshme të pjesës së tyre të tregut. Deri më 1993, Actel (më vonë Microsemi, tani Microchip) zinte rreth 18 përqind të tregut. 

Vitet '90 ishin një periudhë rritjeje të shpejtë për FPGA-të, si në sofistikimin e qarqeve ashtu edhe në vëllimin e prodhimit. Në fillim të viteve 1990, FPGA-të u përdorën kryesisht në telekomunikacion dhe rrjetëzim. Deri në fund të dekadës, ato gjetën rrugën e tyre në aplikimet e konsumatorit, automobilave dhe industrisë. 

Deri në vitin 2013, Altera (31%), Xilinx (36%) dhe Actel (10%) së bashku përfaqësonin afërsisht 77% të tregut të FPGA-ve. 

Kompani si Microsoft kanë filluar të përdorin FPGA-të për të përshpejtuar sisteme me performancë të lartë dhe me kërkesa të larta llogaritëse (si qendrat e të dhënave që operojnë motorin e tyre të kërkimit Bing), për shkak të avantazhit të performancës për vat që ofrojnë FPGA-të.  Microsoft filloi të përdorë FPGA-të për të përshpejtuar Bing në vitin 2014, dhe në vitin 2018, nisi t’i vendosë FPGA-të në ngarkesa të tjera pune të qendrave të të dhënave për platformën e tyre të cloud computing Azure. 

Që më 2019, gjenerata moderne e FPGA-ve është integruar me arkitektura të tjera si motorët IA për të synuar ngarkesat e punës në fushën e inteligjencës artificiale. 

### Rritja 
Afatet kohore të mëposhtme ilustrojnë zhvillimin dhe përparimet kryesore në dizajnin e FPGA-ve në fusha të ndryshme.

#### Portat 
* 1987: 9,000 porta, Xilinx 
* 1992: 600,000, Qendra e Luftës Sipërfaqësore Detare 
* Fillimi i viteve 2000: miliona 
* 2013: 50 milionë, Xilinx 

#### Madhësia e tregut 
* 1985: FPGA-ja e parë komerciale Xilinx XC2064  
* 1987: 14 milionë dollarë
*  : >385 milionë dollarë
* 2005: 1.9 miliardë dollarë 
* Vlerësimi për 2010-ën:
* 2.75 miliardë dollarë
* 2013: 5.4 miliardë dollarë 
* Vlerësimi për 2020-ën: 9.8 miliardë dollarë 

Një *fillim dizajni* është një dizajn i ri i personalizuar për zbatim në një FPGA.

* 2005: 80,000 
* 2008: 90,000 

## Dizajn 
FPGA-të bashkëkohore kanë porta logjike dhe blloqe RAM të bollshme për të zbatuar llogaritjet komplekse dixhitale. FPGA-të mund të përdoren për të zbatuar çdo funksion logjik që një ASIC mund të kryejë. Mundësia për të përditësuar funksionalitetin pas transportimit, rikonfigurimi i pjesshëm i një pjese të dizajnit  dhe kostot e ulëta jo-përsëritëse të inxhinierisë (NRE) në krahasim me një dizajn ASIC (pavarësisht kostos përgjithësisht më të lartë për njësi), ofrojnë përparësi për shumë aplikime. 

Meqenëse dizajnet FPGA përdorin shpejtësi shumë të shpejta I/O dhe autobusë të dhënash dypalëshe, paraqitet një sfidë të verifikohet koha e saktë e të dhënave të vlefshme brenda kohës së konfigurimit dhe kohës së mbajtjes.  Planifikimi i dyshemesë ndihmon në ndarjen e burimeve brenda FPGA-ve për të përmbushur këto kufizime kohore.

Disa FPGA kanë veçori analoge përveç funksioneve dixhitale. Karakteristika më e zakonshme analoge është një shpejtësi e programueshme e ndryshimit (slew rate) në secilin pin dalës. Kjo i lejon përdoruesit të vendosë shpejtësi të ulëta në pin-e të ngarkuara lehtë që përndryshe do të zileshin ose do të çiftëzoheshin në mënyrë të papranueshme, ndërsa vendos shpejtësi më të larta në kanale me shpejtësi të lartë të ngarkuara shumë që përndryshe do të funksiononin shumë ngadalë.   Gjithashtu të zakonshme janë qarqet drejtuese të oscilatorëve me kristal kuarci, oscilatorët RC në çip dhe sythat e bllokuara me fazë me oscilatorë të integruar të kontrolluar nga voltazhi që përdoren për gjenerimin dhe menaxhimin e orës, si dhe për orët transmetuese serializues-deserializues me shpejtësi të lartë (SERDES) dhe rikuperimin e orës së marrësit. Mjaft të zakonshëm janë krahasuesit diferencialë në pin-et hyrëse të projektuar për t'u lidhur me kanalet e sinjalizimit diferencial. Disa FPGA me sinjal të përzier kanë konvertues periferikë analog-në-dixhital (ADC) të integruar dhe konvertues dixhital-në-analog (DAC) me blloqe kushtëzimi të sinjalit analog, duke i lejuar ata të funksionojnë si një sistem në një çip (SoC).  Pajisje të tilla e zbehin vijën ndarëse midis një FPGA-je, e cila mbart njëshe dhe zero dixhitale në strukturën e saj të brendshme të programueshme të ndërlidhjes, dhe grupit analog të programueshëm në terren (FPAA), i cili mbart vlera analoge në strukturën e saj të brendshme të programueshme të ndërlidhjes.

### Blloqe logjike 
parapamje|Shembull ilustrimi i thjeshtuar i një qelize logjike (LUT&nbsp;– tabela e kërkimit, FA&nbsp;– mbledhës i plotë, DFF&nbsp;– Flip-flop i tipit D )
Arkitektura më e zakonshme FPGA përbëhet nga një grup blloqesh logjike të quajtura blloqe logjike të konfigurueshme (CLB) ose blloqe të grupeve logjike (LAB) (në varësi të shitësit), panele hyrje/daljeje dhe kanale rrugëzimi.  Në përgjithësi, të gjitha kanalet e rrugëzimit kanë të njëjtën gjerësi (numër sinjalesh). Panele të shumëfishta hyrje/daljeje mund të përshtaten në lartësinë e një rreshti ose gjerësinë e një kolone brenda grupit.

Një qark aplikacioni duhet të zbatohet në një FPGA me burime adekuate. Ndërsa numri i blloqeve logjike dhe I/O-ve të kërkuara përcaktohet lehtësisht nga dizajni, numri i kanaleve të rrugëzimit i nevojshëm mund të variojë dukshëm, madje edhe në dizajne me të njëjtën sasi logjike. Për shembull, një ndërprerës kryq kërkon shumë më tepër rrugëzim sesa një grup sistolik me të njëjtin numër portash. Meqenëse kanalet e pashfrytëzuara të rrugëzimit rrisin koston (dhe ulin performancën) e FPGA-së pa ofruar ndonjë përfitim, prodhuesit e FPGA-ve përpiqen të sigurojnë saktësisht mjaftueshëm kanale në mënyrë që shumica e dizajneve që përshtaten në aspektin e tabelave të kërkimit (LUT) dhe I/O mund të rrugëzohet. Kjo përcaktohet nga vlerësime si ato të nxjerra nga rregulla e Rent-it ose nga eksperimentet me dizajne ekzistuese.

Zakonisht, një bllok logjik përbëhet nga disa qeliza logjike. Një qelizë tipike përbëhet nga një LUT me 4 hyrje, një mbledhës i plotë (FA) dhe një flip-flop i tipit D. LUT mund të ndahet në dy LUT me 3 hyrje. Në *modalitetin normal,* ato kombinohen në një LUT me 4 hyrje përmes multiplekserit të parë (mux). Në modalitetin *aritmetik*, daljet e tyre e ushqejnë mbledhësin. Përzgjedhja e modalitetit programohet në mux-in e dytë. Dalja mund të jetë sinkrone ose asinkrone, në varësi të programimit të mux-it të tretë. Në praktikë, i gjithë mbledhësi ose pjesë të tij ruhen si funksione në LUT për të kursyer hapësirë.   

### Blloqe të forta 
Familjet moderne të FPGA-ve zgjerojnë aftësitë e mësipërme duke përfshirë funksionalitete të nivelit më të lartë të implementuara në silikon. Integrimi i këtyre funksioneve në qark zvogëlon sipërfaqen e kërkuar dhe u jep këtyre funksioneve performancë më të lartë krahasuar me ndërtimin e tyre nga primitivë logjikë. Shembuj të këtyre përfshijnë shumëzuesit, blloqet gjenerike DSP, procesorët e integruar, logjikën I/O me shpejtësi të lartë dhe memoriet e integruara.

FPGA-të e nivelit të lartë mund të përmbajnë marrës-transmetues shumë-gigabit me shpejtësi të lartë dhe bërthama IP (Intellectual Property) të integruara, të tilla si bërthama procesori, njësi kontrolli të aksesit në mediumin Ethernet, kontrollues PCI ose PCI Express dhe kontrollues të memories së jashtme. Këto bërthama gjenden së bashku me strukturën e programueshme, por ato janë ndërtuar nga transistorë në vend të LUT-ve, kështu që ato kanë performancë dhe konsum energjie në nivel ASIC pa konsumuar një sasi të konsiderueshme burimesh të strukturës, duke lënë më shumë nga struktura të lira për logjikën specifike të aplikacionit. Marrës-transmetuesit shumë-gigabit gjithashtu përmbajnë qarqe kushtëzimi të sinjalit me performancë të lartë së bashku me serializues dhe deserializues me shpejtësi të lartë, komponentë që nuk mund të ndërtohen nga LUT-të. Funksionaliteti i shtresës fizike (PHY) të nivelit të lartë, i tillë si kodimi i linjës, mund të zbatohet ose jo së bashku me serializuesit dhe deserializuesit në logjikën e fortë, varësisht nga FPGA-ja.

### Bërthama e butë 
parapamje|Një sistem Xilinx Zynq-7000 i programueshëm në një çip
Një qasje alternative për përdorimin e procesorëve makro të fortë është përdorimi i bërthamave IP të procesorëve të butë që zbatohen brenda logjikës FPGA. Nios II, MicroBlaze dhe Mico32 janë shembuj të procesorëve të njohur me bërthamë të butë. Shumë FPGA moderne programohen në *kohën e ekzekutimit*, gjë që ka çuar në idenë e informatikës së rikonfigurueshme ose sistemeve të rikonfigurueshme (CPU që rikonfigurohen vetë për t'iu përshtatur detyrës aktuale). Përveç kësaj, arkitektura të reja jo-FPGA kanë filluar të shfaqen. Mikroprocesorët e konfigurueshëm nga softueri, siç është Stretch S5000, miratojnë një qasje hibride duke ofruar një sërë bërthamash procesori dhe bërthamash të programueshme të ngjashme me FPGA në të njëjtin çip.

### Integrimi 
Në vitin 2012, qasja arkitekturore e trashë u çua një hap më tej duke kombinuar blloqet logjike dhe ndërlidhjet e FPGA-ve tradicionale me mikroprocesorë të integruar dhe periferikë të lidhur për të formuar një sistem të plotë në një çip të programueshëm. Shembuj të teknologjive të tilla hibride mund të gjenden në Xilinx Zynq-7000 SoC të programueshëm , i cili përfshin një procesor 1.0 GHz ARM Cortex-A9 MPCore me dy bërthama të integruar brenda strukturës logjike të FPGA-së , ose në FPGA-në Altera Arria V, e cila përfshin një procesor 800 MHz ARM Cortex-A9 MPCore me dy bërthama. Atmel FPSLIC është një tjetër pajisje e tillë, e cila përdor një procesor AVR në kombinim me arkitekturën logjike të programueshme të Atmel. Pajisjet Microsemi SmartFusion përfshijnë një bërthamë procesori të fortë ARM Cortex-M3 (me deri në 512 kB blic dhe 64 kB RAM) dhe pajisje periferike analoge siç janë konvertuesit analog-në-dixhital me shumë kanale dhe konvertuesit dixhital-në-analog në strukturën e tyre FPGA të bazuar në memorien flash &#x5B; ''* &#x5D;.

### Sinjalizimi i orës 
Pjesa më e madhe e logjikës brenda një FPGA është logjikë sinkrone që kërkon një sinjal ore. FPGA-të përmbajnë rrjete të dedikuara globale dhe rajonale të rrugëzimit për orën dhe rivendosjen, zakonisht të implementuara si një pemë H, kështu që ato mund të dorëzohen me shtrembërim minimal. FPGA-të mund të përmbajnë komponentë analogë të lakut të bllokuar me fazë ose të lakut të bllokuar me vonesë për të sintetizuar frekuenca të reja të orës dhe për të menaxhuar luhatjet. Dizajnet komplekse mund të përdorin orë të shumëfishta me frekuenca dhe faza të ndryshme, secila duke formuar domene të veçanta të orës. Këto sinjale të orës mund të gjenerohen lokalisht nga një oscilator ose ato mund të rikuperohen nga një rrjedhë të dhënash. Duhet të tregohet kujdes kur ndërtohen qarqe që kryqëzojnë domenin e orës për të shmangur metastabilitetin. Disa FPGA përmbajnë blloqe RAM me dy porta që janë të afta të punojnë me orë të ndryshme, duke ndihmuar në ndërtimin e FIFO-ve dhe tamponëve me dy porta që lidhin domenet e orës.

### Arkitekturat 3D 
Për të zvogëluar madhësinë dhe konsumin e energjisë së FPGA-ve, shitës të tillë si Tabula dhe Xilinx kanë prezantuar arkitekturat 3D ose të grumbulluara. Pas prezantimit të FPGA-ve të serisë 28 nm të saj, Xilinx tha se disa nga pjesët me dendësinë më të lartë në ato linja produktesh FPGA do të ndërtohen duke përdorur matrica të shumëfishta në një paketë, duke përdorur teknologji të zhvilluar për ndërtimin 3D dhe montimet e matricave të grumbulluara.

Qasja e Xilinx-it grumbullon disa (tre ose katër) matrica FPGA aktive krah për krah në një ndërfaqës silikoni që është një copë e vetme silikoni që mbart ndërlidhje pasive . Ndërtimi me shumë shtresa lejon gjithashtu që pjesë të ndryshme të FPGA-së të krijohen me teknologji të ndryshme procesi, pasi kërkesat e procesit janë të ndryshme midis vetë pëlhurës FPGA dhe transmetuesve serialë me shpejtësi shumë të lartë 28 Gbit/s. Një FPGA e ndërtuar në këtë mënyrë quhet *FPGA heterogjene*.

Qasja heterogjene e Alterës bazohet në përdorimin e një FPGA monolite të vetme dhe në integrimin e matricave dhe komponentëve të tjerë drejtpërdrejt në FPGA, duke përdorur teknologjinë e urës së ndërlidhjes multi_die (EMIB) që është integruar nga Intel. 

## Programimi 
Për të përcaktuar sjelljen e FPGA-së, përdoruesi ofron një dizajn në një gjuhë përshkrimi hardueri (HDL) ose si një dizajn skematik. Forma HDL është më e përshtatshme për strukturat e mëdha sepse është e mundur të specifikohet sjellja funksionale e nivelit të lartë në vend që të vizatohet çdo pjesë me dorë. Megjithatë, futja skematike mund të lejojë vizualizim më të lehtë të një dizajni dhe moduleve përbërëse të tij.

Me anë të një mjeti automatizimi elektronik të dizajnit, gjenerohet një listë rrjeti e hartuar sipas teknologjisë. Lista rrjeti mund të përshtatet më pas me arkitekturën aktuale të FPGA-së duke përdorur një proces të quajtur *vend dhe rrugë*, i cili zakonisht kryhet nga softueri pronësor i kompanisë FPGA. Përdoruesi do të validojë rezultatet duke përdorur analizën e kohës, simulimin dhe teknika të tjera verifikimi dhe validimi. Pasi të përfundojë procesi i dizajnit dhe validimit, skedari binar i gjeneruar, zakonisht duke përdorur softuerin e pronarit të shitësit FPGA, përdoret për të rikonfiguruar FPGA-në. Ky skedar transferohet në FPGA nëpërmjet një ndërfaqeje seriale (JTAG) ose në një pajisje memorieje të jashtme siç është një EEPROM.

HDL-të më të zakonshme janë VHDL dhe Verilog. Gjuha grafike e programimit LabVIEW e National Instruments (ndonjëherë e referuar si *G*) ka një modul shtesë FPGA të disponueshëm për të synuar dhe programuar harduerin FPGA. Verilog u krijua për të thjeshtuar procesin duke e bërë gjuhën më të fuqishme dhe fleksibile. Verilog ka një sintaksë të ngjashme me C-në, ndryshe nga VHDL që bazohet në Ada.

Për lehtësuar të projektimin e sistemeve komplekse në FPGA, ekzistojnë biblioteka me funksione dhe qarqe komplekse të gatshme që janë testuar dhe optimizuar për të përshpejtuar projektimin. Këto qarqe të gatshme zakonisht quhen *bërthama të pronësisë intelektuale (IP)* dhe janë të disponueshme nga shitësit e FPGA-ve dhe furnizuesit e IP-së të palëve të treta. Ato rrallë janë falas dhe zakonisht lëshohen sipas licencave pronësore. Qarqe të tjera të gatshme janë të disponueshme nga komunitetet e zhvilluesve si OpenCores (zakonisht lëshohen sipas licencave të lira dhe me burim të hapura si GPL, BSD ose licenca të ngjashme). Projektime të tilla njihen si harduer me burim të hapur.

Në një rrjedhë tipike të projektimit, një zhvillues aplikacionesh FPGA do të simulojë projektimin në faza të shumëfishta gjatë gjithë procesit të projektimit. Fillimisht, përshkrimi RTL në VHDL ose Verilog simulohet duke krijuar mjedise testimi për të simuluar sistemin dhe për të vëzhguar rezultatet. Më pas, pasi motori i sintezës e ka hartuar projektimin në një listë rrjetesh, lista rrjetesh përkthehet në një përshkrim në nivel porte ku simulimi përsëritet për të konfirmuar që sinteza është kryer pa gabime. Së fundmi, projektimi implementohet në FPGA në të cilën pikë vlerat e vonesës së përhapjes mund të shënohen përsëri në listën rrjetesh dhe simulimi mund të ekzekutohet përsëri me këto vlera.

Kohët e fundit, OpenCL (Gjuha e Hapur e Llogaritjes) është duke u aplikuar nga programuesit për të përfituar nga performanca dhe efikasiteti i energjisë që ofrojnë FPGA-të. OpenCL u lejon programuesve të zhvillojnë kod në gjuhën e programimit C . Për më shumë informacion, shihni sintezën e nivelit të lartë dhe C në HDL.

Shumica e FPGA-ve mbështeten në një qasje të bazuar në SRAM për programim. Këto FPGA janë të programueshme dhe të riprogramueshme brenda sistemit, por kërkojnë pajisje të jashtme nisjeje. Për shembull, memoria flash ose pajisjet EEPROM mund të ngarkojnë përmbajtje në SRAM të brendshëm që kontrollon rrugëzimin dhe logjikën. Implementimi i SRAM-së bazohet në CMOS.

Alternativa më të rralla ndaj qasjes SRAM përfshijnë:

* Siguresa: e programueshme një herë. Bipolare. E vjetëruar.
* Anti-sigurues: i programueshëm një herë. CMOS. Shembuj: Familjet Actel SX dhe Axcelerator; familja Quicklogic Eclipse II .
* PROM: teknologji memorieje vetëm për lexim të programueshme. E programueshme një herë për shkak të paketimit plastik&#x5B; *'' &#x5D;. I vjetëruar.
* EPROM: teknologji memorieje vetëm për lexim dhe programim e fshishme. E programueshme një herë, por me dritare, mund të fshihet me dritë ultravjollcë (UV). CMOS. E vjetëruar.
* EEPROM: teknologji memorieje e programueshme vetëm për lexim, e fshishme elektrikisht. Mund të fshihet, madje edhe në paketime plastike. Disa, por jo të gjitha pajisjet EEPROM, mund të programohen brenda sistemit. CMOS.
* Flash: teknologjia EPROM me fshirje të flash-it. Mund të fshihet, madje edhe në paketime plastike. Disa, por jo të gjitha pajisjet flash, mund të programohen brenda sistemit. Zakonisht, një qelizë flash është më e vogël se një qelizë ekuivalente EEPROM dhe, për këtë arsye, është më pak e kushtueshme për t'u prodhuar. CMOS. Shembull: Familja Actel ProASIC . Në atë periudhë, ata kontrollonin gati 90 përqind të tregut.

Si Xilinx ashtu edhe Altera ofrojnë softuer të patentuar për automatizimin e projektimit elektronik për Windows dhe Linux (ISE / Vivado dhe Quartus) i cili u mundëson inxhinierëve të projektojnë, analizojnë, simulojnë dhe sintetizojnë (kompilojnë) projektet e tyre  .

Në mars të vitit 2010, Tabula njoftoi teknologjinë e tyre FPGA që përdor logjikë të multipleksuar në kohë dhe ndërlidhje që pretendon kursime të mundshme të kostos për aplikacionet me dendësi të lartë . Më 24 mars 2015, Tabula zyrtarisht u mbyll .

Më 1 qershor 2015, Intel njoftoi se do të blinte Altera për afërsisht 16.7 miliardë dollarë amerikanë dhe transaksioni u finalizua më 30 dhjetor 2015 .

Më 27 tetor 2020, AMD njoftoi se do të blinte Xilinx dhe përfundoi blerjen me vlerë rreth 50 miliardë dollarë amerikanë në shkurt 2022 .

Në shkurt të vitit 2024, Altera u bë përsëri e pavarur nga Intel .

Prodhues të tjerë përfshijnë:

## Aplikacionet 
Një FPGA mund të përdoret për të zgjidhur çdo problem të llogaritshëm. FPGA-të mund të përdoren për të zbatuar një mikroprocesor të butë, siç është Xilinx MicroBlaze ose Altera Nios II. Por avantazhi i tyre qëndron në faktin se ato janë dukshëm më të shpejta për disa aplikime për shkak të natyrës së tyre paralele dhe optimalitetit në aspektin e numrit të portave të përdorura për procese të caktuara .

FPGA-të u prezantuan fillimisht si konkurrentë të pajisjeve komplekse logjike të programueshme (CPLD) për të zbatuar logjikën ngjitëse për qarqet e shtypura. Ndërsa madhësia, aftësitë dhe shpejtësia e tyre u rritën, FPGA-të morën përsipër funksione shtesë deri në atë pikë sa disa tani tregtohen si sisteme të plota në çipa (SoC). Veçanërisht me futjen e shumëzuesve të dedikuar në arkitekturat FPGA në fund të viteve 1990, aplikacionet që tradicionalisht kishin qenë rezerva e vetme e procesorëve të sinjalit dixhital (DSP) filluan të përdorin FPGA-të në vend të tyre  .

Evoluimi i FPGA-ve ka nxitur një rritje në përdorimin e këtyre pajisjeve, arkitektura e të cilave lejon zhvillimin e zgjidhjeve harduerike të optimizuara për detyra komplekse, të tilla si segmentimi i imazhit 3D MRI, transformimi diskret 3D i valëzave, rindërtimi tomografik i imazhit ose sistemet PET/MRI  . Zgjidhjet e zhvilluara mund të kryejnë detyra intensive llogaritëse me përpunim paralel, janë të riprogramueshme dinamikisht dhe kanë një kosto të ulët, ndërsa në të njëjtën kohë plotësojnë kërkesat e vështira në kohë reale që lidhen me imazherinë mjekësore.

Një tjetër trend në përdorimin e FPGA-ve është përshpejtimi i harduerit, ku mund të përdoret FPGA për të përshpejtuar pjesë të caktuara të një algoritmi dhe për të shpërndarë një pjesë të llogaritjes midis FPGA-së dhe një procesori të përgjithshëm. Motori i kërkimit Bing është i njohur për miratimin e përshpejtimit FPGA për algoritmin e tij të kërkimit në vitin 2014 . , FPGA-të po shohin përdorim në rritje si përshpejtues të IA-së, duke përfshirë Project Catapult të Microsoft-it  dhe për përshpejtimin e rrjeteve nervore artificiale për aplikacionet e të mësuarit automatik.

Në fillim,  FPGA-të u rezervuan për aplikacione specifike vertikale ku vëllimi i prodhimit është i vogël. Për këto aplikacione me vëllim të ulët, çmimi shtesë që kompanitë paguajnë në koston e pajisjeve për njësi për një çip të programueshëm është më i përballueshëm sesa shpenzimet e zhvillimit të bëra për krijimin e një ASIC. Shpesh një çip i bërë me porosi do të ishte më i lirë nëse do të prodhohej në sasi më të mëdha, por FPGA-të mund të zgjidhen për të sjellë shpejt një produkt në treg. Deri në vitin 2017, dinamikat e reja të kostos dhe performancës zgjeruan gamën e aplikacioneve të zbatueshme &#x5B; '** &#x5D;.

Përdorime të tjera për FPGA-të përfshijnë:

* Hapësirë (me forcim rrezatimi ).
* Modulet e sigurisë së harduerit .
* Transaksione financiare me shpejtësi të lartë .
* Retrokompjuterizimi (p.sh. projektet MARS dhe MiSTer FPGA).
* Analizues diferencialë dixhitalë të integruar në shkallë të gjerë, një formë e një kompjuteri analog të bazuar në elementë të llogaritjes dixhitale .

### Përdorimi nga ushtria e Shteteve të Bashkuara 
FPGA-të luajnë një rol vendimtar në komunikimet moderne ushtarake, veçanërisht në sisteme si Sistemi i Përbashkët Taktik i Radios (JTRS) dhe në pajisje nga kompani të tilla si Thales dhe Harris Corporation. Fleksibiliteti dhe programueshmëria e tyre i bëjnë ato ideale për komunikimet ushtarake, duke ofruar përpunim të sinjalit të personalizueshëm dhe të sigurt. Në JTRS, të përdorur nga ushtria amerikane, FPGA-të ofrojnë përshtatshmëri dhe përpunim në kohë reale, thelbësore për përmbushjen e standardeve të ndryshme të komunikimit dhe metodave të enkriptimit .

## Siguria 
Lidhur me sigurinë e harduerit, FPGA-të kanë si avantazhe ashtu edhe disavantazhe në krahasim me ASIC-të ose mikroprocesorët e sigurt. Fleksibiliteti i FPGA-ve i bën modifikimet keqdashëse gjatë fabrikimit një rrezik më të ulët . Më parë, për shumë FPGA, rrjedha e biteve të projektimit ekspozohej ndërsa FPGA e ngarkonte atë nga memoria e jashtme, zakonisht gjatë ndezjes. Të gjithë shitësit kryesorë të FPGA-ve tani ofrojnë një spektër zgjidhjesh sigurie për projektuesit, siç është enkriptimi dhe vërtetimi i rrjedhës së biteve. Për shembull, Altera dhe Xilinx ofrojnë enkriptim AES (deri në 256-bit) për rrjedhat e biteve të ruajtura në një memorie flash të jashtme. Funksionet fizike të paklonueshme (PUF) janë qarqe të integruara që kanë nënshkrimet e tyre unike dhe mund të përdoren për të siguruar FPGA-të duke zënë shumë pak hapësirë hardueri .

FPGA-të që ruajnë konfigurimin e tyre brenda në memorien flash jo të paqëndrueshme, siç është ProAsic i Microsemi-t ose pajisjet e programueshme XP2 të Lattice, nuk e ekspozojnë rrjedhën e biteve dhe nuk kanë nevojë për enkriptim. Klientët që kërkojnë një garanci më të lartë të rezistencës ndaj ndërhyrjeve mund të përdorin FPGA-të anti-shkrirje me funksion shkrimi një herë, nga shitës të tillë si Microsemi.

Me FPGA-të dhe SoC-të e saj Stratix 10, Altera prezantoi një Menaxher të Pajisjeve të Sigurta dhe funksione fizike të paklonueshme për të ofruar nivele të larta mbrojtjeje kundër sulmeve fizike .

Në vitin 2012, studiuesit Sergei Skorobogatov dhe Christopher Woods demonstruan se disa FPGA mund të jenë të ndjeshme ndaj qëllimeve armiqësore. Ata zbuluan se një dobësi kritike e derës së pasme ishte prodhuar në silikon si pjesë e Actel/Microsemi ProASIC3, duke e bërë atë të prekshëm në shumë nivele, si riprogramimi i çelësave të kriptos dhe të aksesit, qasja në rrjedhën e pakriptuar të biteve, modifikimi i veçorive të silikonit të nivelit të ulët dhe nxjerrja e të dhënave të konfigurimit .

Në vitin 2020, një dobësi kritike (e quajtur Starbleed)  u zbulua në të gjitha FPGA-të Xilinx të serisë 7, e cila e bëri të padobishëm enkriptimin e bitstream-it. Nuk ka zgjidhje alternative dhe Xilinx nuk prodhoi një rishikim të harduerit. Pajisjet UltraScale dhe versionet më të vona, të cilat tashmë kishin dalë në treg në atë kohë, nuk u prekën &#x5B; **' &#x5D;.

## Teknologji të ngjashme 
Historikisht, FPGA-të kanë qenë më të ngadalta, më pak efikase në energji dhe në përgjithësi kanë ofruar më pak funksionalitet sesa homologët e tyre ASIC fiks. Një studim nga viti 2006 tregoi se dizajnet e zbatuara në FPGA kërkojnë mesatarisht 40 herë më shumë sipërfaqe, tërheqin 12 herë më shumë energji dinamike dhe funksionojnë me një të tretën e shpejtësisë së zbatimeve përkatëse ASIC .

Avantazhet e FPGA-ve përfshijnë aftësinë për të riprogramuar pajisjet në terren për të rregulluar defektet ose për të bërë përmirësime të tjera. Disa FPGA kanë aftësinë e rikonfigurimit të pjesshëm që lejon që një pjesë e pajisjes të riprogramohet ndërsa pjesët e tjera vazhdojnë të funksionojnë. Avantazhe të tjera mund të përfshijnë kohë më të shkurtër për t'u hedhur në treg dhe kosto më të ulëta inxhinierike jo-përsëritëse. Shitësit gjithashtu mund të ndjekin një rrugë të mesme përmes prototipimit FPGA zhvillimin e pajisjeve të tyre prototip në FPGA, por prodhimin e versionit të tyre përfundimtar si një ASIC pasi dizajni të jetë kryer. Kjo ndodh shpesh edhe me dizajnet e reja të procesorëve.

Dallimet kryesore midis CPLD-ve dhe FPGA-ve janë arkitekturore. Një CPLD ka një strukturë relativisht kufizuese që përbëhet nga një ose më shumë matrica logjike të programueshme të shumës së produkteve, të cilat ushqejnë një numër relativisht të vogël regjistrash të taktuar. Si rezultat, CPLD-të janë më pak fleksibile, por kanë avantazhin e vonesës më të parashikueshme të përhapjes.  Arkitekturat FPGA, nga ana tjetër, dominohen nga ndërlidhja, gjë që i bën shumë më fleksibile, por edhe shumë më komplekse për t'u projektuar ose të paktën kërkojnë softuer më kompleks të automatizimit të projektimit elektronik (EDA). Një tjetër dallim midis FPGA-ve dhe CPLD-ve është ai i madhësisë, pasi FPGA-të zakonisht janë shumë më të mëdha për nga burimet sesa CPLD-të. Zakonisht vetëm FPGA-të përmbajnë funksione më komplekse të ngulitura, si mbledhës, shumëzues, memorie dhe serializues/deserializues. Një tjetër dallim i zakonshëm është se CPLD-të përmbajnë memorie flash të ngulitur për të ruajtur konfigurimin e tyre, ndërsa FPGA-të zakonisht e ruajnë konfigurimin e tyre në SRAM dhe kërkojnë memorie të jashtme jo të paqëndrueshme për ta inicializuar atë gjatë ndezjes. Kur një dizajn kërkon ndezje të menjëhershme të thjeshtë, në përgjithësi preferohen CPLD-të. Ndonjëherë përdoren si CPLD-të ashtu edhe FPGA-të në një dizajn të vetëm sistemi. Në këto dizajne, CPLD-të në përgjithësi kryejnë funksione logjike ngjitëse .

## Shih edhe 
* Kartë FPGA Mezzanine
* Karta FPGA CRUVI është standardi i kartës bijë FPGA i Grupit të Standardizimit për Teknologjitë e Ndërtuara eV (SGET)
* Lista e simuluesve HDL

## Lidhje të jashtme 
* 
* Migrating from MCU to FPGA

## Referime