Lauko programuojami vartų masyvai (FPGA) iš naujo apibrėžia skaitmeninio dizaino lankstumą, derindami aparatūros lygio našumą su perkonfigūruojama logika. Skirtingai nuo fiksuotų funkcijų lustų, FPGA gali būti pakartotinai užprogramuoti atlikti naujas užduotis, pagreitinti darbo krūvį arba prisitaikyti prie naujų standartų. Dėl unikalaus lygiagrečio apdorojimo ir neatidėliotino perkonfigūravimo jie yra naudingi duomenų centruose, ryšių, automobilių, gynybos ir dirbtinio intelekto valdomose įterptinėse sistemose.

Kas yra FPGA (lauko programuojamas vartų masyvas)?
FPGA yra perkonfigūruojamas integrinis grandynas, sudarytas iš programuojamų loginių elementų ir maršrutizavimo tinklų. Skirtingai nuo ASIC, kurie yra fiksuotos funkcijos įrenginiai, FPGA gali būti perprogramuojami pakartotinai, kad būtų įdiegtos pasirinktinės skaitmeninės grandinės, greitintuvai arba visos sistemos luste.
Programavimas lauke reiškia, kad loginius atnaujinimus galima atlikti net ir įdiegus. Bitų srauto perkonfigūravimas leidžia sureguliuoti našumą, atnaujinti funkcijas arba palaikyti protokolą nekeičiant aparatinės įrangos, sumažinant riziką ir laiką iki rinkos.
Kaip veikia FPGA?
FPGA veikia per konfigūruojamų loginių blokų (CLB) matricą, sujungtą programuojamu maršrutizavimu. Kiekvienas CLB atlieka specialią skaitmeninę logiką, o keli blokai veikia vienu metu, todėl galima atlikti lygiagrečius, deterministinius skaičiavimus.
Perkonfigūravimas naudoja bitų srauto failą, sugeneruotą iš HDL (VHDL arba Verilog), kuris apibrėžia, kaip veikia logika, maršruto parinkimas ir įvesties / išvesties. Tai leidžia vieną FPGA pakartotinai naudoti kelioms programoms tiesiog atnaujinant jo konfigūraciją.
FPGA vidinė struktūra

FPGA integruoja lanksčią loginę struktūrą ir specializuotus aparatūros blokus, kad būtų užtikrintas efektyvumas ir našumas:
• Konfigūruojami loginiai blokai (CLB): kiekviename CLB yra peržvalgos lentelės (LUT) ir šlepetės. LUT apibrėžia kombinuotą logiką, o "Flip-Flops" tvarko nuoseklų saugojimą ir laiko valdymą.
• DSP skiltys: atlikite dauginimo-kaupimo ir signalų apdorojimo operacijas, naudojamas filtruose, FFT ir AI išvadose.
• Blokuoti RAM (BRAM): lusto atmintis buferiams, peržvalgų lentelėms ir laikinai duomenų saugojimui.
• Didelės spartos siųstuvai-imtuvai: palaiko nuosekliuosius protokolus, tokius kaip PCIe, Ethernet ir JESD, kad būtų užtikrintas didelio pralaidumo įėjimas / išvestis.
• I/O blokai (IOB): FPGA sąsaja su išoriniais įrenginiais ir magistralėmis naudojant įvairius įtampos standartus.
FPGA funkcijos ir galimybės
• Tikras lygiagretumas: keli loginiai keliai vykdomi vienu metu, pasiekdami mažą delsą ir deterministinį elgesį, idealiai tinkantį signalų apdorojimui, valdymui realiuoju laiku ir duomenų srautiniam perdavimui.
• Dinaminis perkonfigūravimas: aparatūra gali būti atnaujinta lauke, leidžiant papildyti funkcijas, pataisyti klaidas ar keisti protokolą be pertvarkymo.
• Greitas aparatinės įrangos prototipų kūrimas: HDL pagrindu sukurtus dizainus galima sintetinti ir išbandyti per kelias valandas, pagreitinant inovacijas ir sumažinant riziką prieš ASIC gamybą.
• Pasirinktinis aparatinės įrangos spartinimas: galite kurti darbo krūviui būdingus duomenų kelius, skirtus dirbtinio intelekto išvadoms, 5G bazinei juostai arba tinklo maršruto parinkimui, subalansuojant greitį, galią ir pralaidumą.
FPGA programos
• Skaitmeninis signalo apdorojimas (DSP): FPGA efektyviai atlieka didelės spartos signalo operacijas, tokias kaip filtravimas, FFT, moduliacija / demoduliacija ir variklio valdymo kilpos. Jų lygiagretus apdorojimas leidžia atlikti tikslius, mažos delsos skaičiavimus, aktyvius radarams, sonarams ir belaidėms sistemoms.
• Ryšiai: naudojami tinklo infrastruktūroje paketų klasifikavimui, protokolų sujungimui, bazinės juostos apdorojimui ir maršrutizavimui. FPGA suteikia deterministinį laiką ir gali prisitaikyti prie besikeičiančių standartų, tokių kaip 5G, Ethernet ir optiniai transporto tinklai.
• Pramoninės sistemos: robotikos, mašininio matymo ir tikslaus judesio valdymo maitinimas. FPGA integruoja realaus laiko grįžtamojo ryšio kilpas, variklio tvarkykles ir jutiklių sąsajas viename luste, padidindami sistemos patikimumą ir sumažindami delsą.
• Automobiliai: randama ADAS (pažangiose vairuotojo pagalbos sistemose), jutiklių sintezėje ir transporto priemonės tinkle. Jie leidžia lygiagrečiai apdoroti vaizdo ir LiDAR duomenis, tuo pačiu laikantis griežtų saugos ir funkcinio patikimumo standartų (ISO 26262).
• Medicininė elektronika: reikalinga ultragarso, MRT ir duomenų rinkimo sistemose, kur greitas, deterministinis signalų apdorojimas užtikrina tikslumą. FPGA taip pat palaiko aparatinės įrangos lygio duomenų šifravimą ir mažos delsos vaizdų rekonstrukciją.
• Sauga ir gynyba: užtikrinkite aparatūros spartinimą šifravimui, iššifravimui, saugiam paleidimui ir autentifikavimui. Jų nefiksuota architektūra pagerina atsparumą atvirkštinei inžinerijai ir leidžia greitai atnaujinti algoritmus.
• Duomenų centrai ir dirbtinis intelektas: naudojamas darbo krūviui pagreitinti paieškos sistemose, dirbtinio intelekto išvadose, aukšto dažnio prekyboje ir saugojimo valdikliuose. FPGA užtikrina lygiagretų vykdymą su mažesnėmis energijos sąnaudomis nei GPU daugeliui specializuotų užduočių.
FPGA privalumai
| Kategorija | Svarbiausi dalykai |
|---|---|
| Veiklos rezultatai | Aparatūros lygio lygiagretumas ir deterministinis laikas |
| Perprogramavimas | Atnaujinimai po diegimo ir dizaino lankstumas |
| Laikas iki rinkos | Greita iteracija, momentinis aparatinės įrangos testavimas |
| Ekonomiškumas | Jokių kaukių ar gamybos išlaidų; Idealiai tinka mažiems ir vidutiniams kiekiams |
| Ilgaamžiškumas | Galima atnaujinti lauką, mažinant nusidėvėjimo riziką |
FPGA tipai
FPGA klasifikuojami pagal tai, kaip saugomi jų konfigūracijos duomenys ir ar įrenginį galima perprogramuoti po įdiegimo. Pagrindinė saugojimo technologija turi įtakos paleidimo laikui, galios elgsenai, radiacijos tolerancijai ir bendram sistemos saugumui.
SRAM pagrįsti FPGA

Tai yra labiausiai paplitęs ir universalus tipas. Konfigūracijos duomenys saugomi lakiuose SRAM elementuose, kurie praranda savo turinį atjungus maitinimą. Paleidžiant FPGA įkelia savo konfigūracijos bitų srautą iš išorinės atminties arba valdiklio. Jie pasižymi didžiausiu lankstumu, leidžia dažnai perkonfigūruoti ir greitai atnaujinti dizainą, todėl idealiai tinka prototipų kūrimui ir dinaminėms programoms.
Antisaugiklių FPGA

Antisaugiklių įtaisai naudoja nuolatines laidžias jungtis, susidariusias programavimo metu. Užprogramavus jų negalima keisti, todėl jie yra vienkartiniai programuojami (OTP). Jų konfigūracija iš prigimties yra saugi ir labai atspari radiacijai, todėl jie pirmenybė teikiama aviacijos, gynybos ir misijai svarbiose sistemose, kur patikimumas nusveria perkonfigūravimą.
"Flash" pagrindu veikiantys FPGA

"Flash" pagrindu veikiantys FPGA saugo savo konfigūraciją nepastovioje "flash" atmintyje tiesiai luste. Jie išlaiko savo sąranką net ir išjungus ir siūlo akimirksniu įjungti be išorinės konfigūracijos atminties. Jie yra perprogramuojami, tačiau jų ciklai yra riboti, palyginti su SRAM tipais, todėl užtikrinamas geras lankstumo ir greito paleidimo balansas.
EEPROM pagrįsti FPGA

Šie įrenginiai konfigūracijai saugoti naudoja lusto EEPROM elementus. Kaip ir "flash" FPGA, jie yra nepastovūs ir gali būti perprogramuoti kelis kartus. EEPROM FPGA yra patvarūs ir patikimi, tinkami įterptinėms ir pramoninėms sistemoms, kur reikalingas saikingas perprogramavimas ir duomenų saugojimas.
Hibridiniai FPGA
Hibridiniai FPGA sujungia SRAM ir nepastovią saugyklą, pvz., "flash", kad būtų pasiektas lankstumas ir greitas veikimas. SRAM dalis suteikia perkonfigūravimą, o "flash" skyriuje yra paleidimo konfigūracija, leidžianti greitai paleisti be išorinės atminties. Jie idealiai tinka mažos galios arba saugai svarbioms konstrukcijoms, kur greitas inicijavimas ir pritaikymas yra būtini.
FPGA vs ASIC vs mikrovaldiklis

| Funkcija | FPGA | ASIC | Mikrovaldiklis (MCU) |
|---|---|---|---|
| Vykdymo modelis | Lygiagrečiai – pasirinktiniai aparatūros keliai | Fiksuota tranzistoriaus lygio logika | Nuoseklus procesoriaus nurodymų vykdymas |
| Perprogramavimas | Visiškai perkonfigūruojama aparatinė įranga | Nėra po pagaminimo | Tik programinės įrangos lygis |
| Veiklos rezultatai | Didelis – konkrečios paskirties lygiagretumas | Labai didelis – optimizuotas silicis | Vidutinis – bendrosios paskirties valdymas |
| Energijos vartojimo efektyvumas | Vidutinis, priklauso nuo naudojimo | Puikus – optimizuotas pagal užsakymą | Tinka mažos galios sistemoms |
| NRE išlaidos | Žemas–vidutinis | Labai didelis | Žemas |
| Laikas iki rinkos | Greitas – perprogramuojamas ir kartotinis | Lėtas – pilnas kaukės / fab procesas | Greita – paruošta aparatūra |
| Lankstumas | Puikus - aparatūra iš naujo apibrėžta bet kuriuo metu | Nėra — fiksuota architektūra | Ribotas – tik programinės įrangos lankstumas |
| Idealus naudojimas | Deterministiniai darbo krūviai realiuoju laiku | Masinė gamyba, fiksuota logika | Valdymo užduotys ir paprastos įterptosios funkcijos |
FPGA kūrimo įrankiai
FPGA projektavimui reikalingi specializuoti programinės įrangos rinkiniai, apimantys kiekvieną kūrimo etapą – sintezę, modeliavimą, laiko analizę, vietą ir maršrutą bei galutinio įrenginio programavimą. Šios integruotos įrankių grandinės taip pat siūlo derinimo, aparatinės įrangos stebėjimo ir optimizavimo paslaugas, kad supaprastintų darbo eigą.
Pagrindinės FPGA įrankių grandinės:
• Xilinx (AMD): "Vivado Design Suite" ir "ISE WebPACK" palaiko dizaino įvedimą per HDL arba blokines diagramas, teikdami pažangius laiko optimizavimo, IP integravimo ir lusto derinimo įrankius, tokius kaip "ChipScope".
• "Intel": "Quartus Prime" siūlo vieningą HDL projektavimo, sintezės ir tikrinimo platformą, kurioje yra tokie įrankiai kaip "Signal Tap" tiesioginiam derinimui ir "Platform Designer" sistemos integravimui.
• Grotelių puslaidininkiai: Radiant ir Diamond įrankiai skirti mažos galios ir ekonomiškai optimizuotiems įrenginiams, siūlant grafinio dizaino aplinką ir galios analizės funkcijas.
• Mikroschema (Microsemi): Libero SoC integruoja sintezės, modeliavimo ir SmartDebug įrankius, skirtus bendrovės PolarFire ir IGLOO FPGA.
Daugumoje įrankių grandinių taip pat yra iš anksto patikrinti IP branduoliai sąsajoms (SPI, UART, PCIe, Ethernet), DSP blokams ir atminties valdikliams, leidžiantys greitai pakartotinai naudoti dizainą ir sutrumpinti pateikimo į rinką laiką. Be to, modeliavimo aplinkos, tokios kaip "ModelSim" arba "Vivado Simulator", padeda patvirtinti logiką prieš aparatinės įrangos testavimą.
Pagrindiniai FPGA gamintojai
Pasaulinėje FPGA rinkoje dominuoja keli pagrindiniai gamintojai, kurių kiekvienas specializuojasi unikaliose našumo pakopose ir taikymo srityse. Jų produktų šeimos skiriasi loginiu tankiu, energijos vartojimo efektyvumu, įterptosiomis funkcijomis ir tikslinėmis pramonės šakomis.
| Gamintojas | Įrenginių šeimos | Pagrindinis dėmesys / stipriosios pusės |
|---|---|---|
| AMD (Xilinx) | "Spartan", "Artix", "Kintex", "Virtex", "Zynq" | Siūlo platų asortimentą nuo ekonomiškų "Spartan" įrenginių iki aukščiausios klasės "Virtex" ir "Zynq" SoC. Daugiausia dėmesio skiriama įterptinėms sistemoms, dirbtinio intelekto spartinimui ir didelės spartos ryšiams. Zynq šeima integruoja ARM procesorius hibridinėms FPGA-CPU architektūroms. |
| "Intel" (anksčiau "Altera") | Ciklonas, Arria, Stratix | Užtikrina keičiamo dydžio našumą nuo mažos galios "Cyclone" įrenginių iki didelio našumo "Stratix" serijos. Stiprus buvimas duomenų centruose, tinkluose ir debesų spartinime, glaudžiai integruojantis į "Intel" skaičiavimo ekosistemą. |
| Grotelių puslaidininkiai | iCE40, ECP5, CrossLink | Specializuojasi mažuose, energiją taupančiuose FPGA, optimizuotuose krašto kompiuterijai, vizijai ir daiktų interneto programoms. Žinomas dėl momentinio įjungimo galimybių ir mažų energijos sąnaudų, idealiai tinka mobiliosioms arba akumuliatorinėms sistemoms. |
| Mikroschema (Microsemi) | "PolarFire", "SmartFusion" | Daugiausia dėmesio skiriama radiacijai atspariems ir saugiems aviacijos, gynybos ir pramonės kontrolės FPGA. "PolarFire" įrenginiai subalansuoja mažą galią su stipriomis DSP ir SERDES galimybėmis, o "SmartFusion" integruoja FPGA audinį su ARM Cortex-M branduoliais. |
Dažni FPGA projektavimo iššūkiai
FPGA sistemų projektavimas apima greičio, galios ir logikos panaudojimo pusiausvyrą. Bendri iššūkiai:
• Laiko uždarymas: užtikrinimas, kad visi loginiai keliai atitiktų sąrankos / sulaikymo laiko reikalavimus keliuose laikrodžio domenuose.
• Energijos ir šilumos valdymas: didelis panaudojimas padidina dinaminę galią; Tokie metodai kaip laikrodžio vartai ir galią suvokiantis išdėstymas sumažina šilumą.
• Išteklių naudojimas: efektyvus LUT, BRAM ir DSP blokų naudojimas apsaugo nuo perkrovos ar nepakankamo panaudojimo.
• Dizaino sudėtingumas: algoritmų vertimas į lygiagrečią aparatinę įrangą reikalauja stiprių HDL ir laiko apribojimų įgūdžių.
Ateities FPGA tendencijos
FPGA vystosi iš perkonfigūruojamų loginių įrenginių į visiškai hibridines skaičiavimo platformas. Pagrindiniai pokyčiai:
• AI ir ML pagreitis: matricos ir tenzorių skaičiavimo variklių integravimas neuroniniams tinklams ir analizei.
• Hibridinės SoC platformos: įterptieji procesoriaus branduoliai (pvz., ARM Cortex) kartu su FPGA logika, kad būtų sukurtas vieningas programinės ir aparatinės įrangos dizainas.
• Pažangūs puslaidininkiniai mazgai: 7 nm ir mažesnės geometrijos padidina tankį, našumą ir energijos vartojimo efektyvumą.
• Dalinis ir dinaminis perkonfigūravimas: leidžia realiuoju laiku atnaujinti adaptyvių ir svarbių sistemų aparatinės įrangos dalis.
• Debesyje priglobtos FPGA paslaugos: tokios platformos kaip AWS F1 ir Azure NP integruoja FPGA, kad būtų galima pagreitinti mastelio keitimą pagal poreikį.
Išvada
FPGA sujungia programinės įrangos pritaikomumą ir aparatinės įrangos tikslumą, suteikdami naujos kartos skaičiavimui neprilygstamą lankstumą ir greitį. Technologijoms tobulėjant link dirbtinio intelekto pagreitinimo, hibridinių SoC ir realiojo laiko krašto žvalgybos, FPGA ir toliau įrodo savo vertę, siūlydami ateičiai paruoštą sprendimą, kuris prisitaiko, plečiasi ir diegia naujoves kartu su sparčiai besikeičiančia skaitmenine aplinka.
Dažnai užduodami klausimai [DUK]
Kokia kalba programuojamas FPGA?
FPGA paprastai programuojami naudojant aparatūros aprašymo kalbas (HDL), tokias kaip VHDL ir Verilog. Šios kalbos apibūdina grandinės elgseną ir struktūrą, o ne nuoseklias instrukcijas. Šiuolaikiniai įrankiai taip pat palaiko aukšto lygio sintezę (HLS), leidžiančią kūrėjams naudoti C/C++ arba Python automatiškai generuoti HDL.
Ar FPGA gali paleisti operacines sistemas, kaip tai daro procesoriai?
Ne, FPGA neveikia operacinių sistemų, nes jie įgyvendina aparatūros grandines, o ne instrukcijų vamzdynus. Tačiau SoC FPGA (pvz., Xilinx Zynq) integruoja ARM procesorius, leidžiančius Linux arba įterptąsias OS veikti kartu su programuojama logika hibridiniams aparatinės ir programinės įrangos dizainams.
Kuo FPGA skiriasi nuo GPU?
GPU yra optimizuotas lygiagrečioms matematinėms operacijoms fiksuotose architektūrose, o FPGA leidžia dizaineriams kurti pasirinktinius aparatinės įrangos vamzdynus, pritaikytus konkrečiai užduočiai. FPGA užtikrina mažesnę delsą ir didesnį determinizmą, o GPU pasižymi pralaidumu ir slankiojo kablelio našumu dirbtinio intelekto ir grafikos darbo krūviams.
Kodėl FPGA yra svarbūs dirbtiniam intelektui ir mašininiam mokymuisi?
FPGA įgalina pasirinktines duomenų srauto architektūras, kurios tiksliai atitinka neuroninių tinklų modelius, sumažina delsą ir maksimaliai padidina energijos vartojimo efektyvumą. Jie naudojami dirbtinio intelekto išvadoms, realiojo laiko analizei ir krašto žvalgybai, kur lankstumas, atnaujinamumas ir maža galia yra svarbesni nei neapdorotas skaičiavimo tankis.
Kaip atnaujinti arba perprogramuoti FPGA lauke?
FPGA perprogramuojamas įkeliant naują bitų srauto failą, paprastai sugeneruotą naudojant HDL arba HLS projektavimo įrankius. Šis atnaujinimas gali būti atliekamas naudojant JTAG, "flash" atmintį arba nuotolinę konfigūraciją per Ethernet. Toks perprogramavimas leidžia atnaujinti aparatinės įrangos lygio funkcijas nekeičiant fizinio lusto.