Lauke programuojamų vartų masyvas (angl. Field-programmable gate array)

Lauko programuojamų vartų masyvas (dažnai sutrumpintai vadinamas FPGA) yra elektroninis komponentas, naudojamas perkonfigūruojamoms skaitmeninėms grandinėms kurti. Tai reiškia, kad FPGA skiriasi nuo loginių vartų, nes loginiai vartai turi fiksuotą funkciją. Tuo tarpu FPGA turi neapibrėžtą funkciją gamybos metu. Prieš naudojant FPGA grandinėje, ji turi būti užprogramuota, t. y. perkonfigūruota.

FPGA yra programuojamų loginių įtaisų arba PLD kategorijai priskiriami integriniai grandynai. FPGA yra našiausi, lanksčiausi ir brangiausi iš visų PLD tipų. FPGA trūkumas, palyginti su kitais PLD, yra tas, kad jie neprisimena savo projekto, kai atjungiamas maitinimas. Todėl FPGA reikia atskiros konfigūracijos atminties mikroschemos, kurioje būtų saugomas FPGA projektas. Kai FPGA vėl įjungiamas maitinimas, fiksuota FPGA dalis nuskaito konfigūraciją iš konfigūracijos atminties lusto. Sukonfigūravus FPGA, ji galės atlikti projekte numatytą funkciją.

FPGA skiriasi nuo mikroprocesoriaus ar mikrovaldiklio. FPGA savo pagrindine forma negali paleisti programinės įrangos. Tik tada, kai FPGA suteikiama konfigūracija, kurioje yra procesoriaus architektūra, ji gali paleisti programinę įrangą.

FPGA gamintojai teikia inžinerinę programinę įrangą, skirtą "Windows", o kartais ir "Linux", skirtą FPGA projektams kurti. Projektas paprastai rašomas žmogui suprantamais kompiuteriniais failais, vadinamais aparatinės įrangos aprašymo kalba (HDL). Populiariausios yra VHDL ir Verilog. Aparatūros aprašymo kalbos labai panašios į programavimo kalbas. Tačiau HDL skirtos skaitmeninėms loginėms grandinėms projektuoti, o programavimo kalbomis projektuojama programinė įranga.

FPGA inžinerinė programinė įranga turi išversti abstraktų HDL kodą į pasirinktoje FPGA esančius loginius elementus. Tai vadinama logine sinteze. Tuomet loginiams elementams išdėstyti FPGA plokštėje atliekamas vietos nustatymo ir maršruto parinkimo procesas. Rezultatas - bitų failas, kurį galima programuoti FPGA arba konfigūracijos atmintyje. Paprastai tai daroma USB programatoriumi, prijungtu prie FPGA JTAG prievado.

Kadangi FPGA yra integrinis grandynas, FPGA gamintojas gali nuspręsti pridėti kitų įprastai naudojamų integrinių grandynų komponentų. Šios fiksuotos dalys vadinamos branduoliais. Tai, pavyzdžiui, Ethernet valdikliai arba net visa procesoriaus architektūra. Skirtinguose rinkos segmentuose, pavyzdžiui, gynybos, medicinos, ryšių ir robotikos, FPGA gamintojas stengiasi pridėti vertingiausią šių papildomų branduolių rinkinį.

Zoom


Vidinė struktūra

FPGA paprastai yra sukurti iš programuojamų loginių elementų ir programuojamų jungčių. Vienas iš loginių elementų blokų yra programuojama paieškos lentelė (LUT). LUT galima užprogramuoti taip, kad ji išvestų bet kokią įvesties reikšmę. Tokiu būdu LUT gali būti užprogramuota kaip bet kokio tipo loginis elementas, turintis tokį patį įėjimų ir išėjimų skaičių. Pavyzdžiui, 2 įėjimų ir 1 išėjimo LUT galima užprogramuoti taip, kad imituotų 2 įėjimų AND, OR, NAND, NOR, XOR ir t. t. logiką. Šios LUT išvestį galima išsaugoti naudojant registrą arba prijungti prie kitų LUT įvesties. Naudojant programuojamąjį mux, FPGA galima užprogramuoti taip, kad ji pasirinktų registruotą arba neregistruotą išėjimą. Šis LUT, registro ir mux derinys yra bendroji loginio elemento struktūra.

Šiems loginiams elementams sujungti naudojami praleidžiamieji tranzistoriai. Tranzistorius galima užprogramuoti taip, kad jis arba sujungtų signalą, arba ne, taip suteikiant FPGA galimybę labai konkrečiai sujungti loginius elementus. Pavyzdžiui, jei vieno loginio elemento išėjimas maitins kito loginio elemento įėjimą, praleidžiamąjį tranzistorių galima užprogramuoti taip, kad jis sujungtų šiuos du laidus ir atitiktų nurodytą logiką. Tarp loginių elementų ir praleidžiamųjų tranzistorių kompiliatorius gali paimti aparatūros aprašymą iš HDL, sukurti loginių elementų logiką ir sujungti juos naudojant praleidžiamuosius tranzistorius.

Klausimai ir atsakymai

K: Kas yra programuojamų vartų masyvas (FPGA)?


A.: Lauke programuojamų vartų masyvas (FPGA) yra elektroninis komponentas, naudojamas perkonfigūruojamoms skaitmeninėms grandinėms kurti. Gamybos metu jo funkcija neapibrėžta, todėl prieš naudojant grandinėje jis turi būti užprogramuotas arba perkonfigūruotas.

K: Kuo FPGA skiriasi nuo loginių vartų?


A.: FPGA skiriasi nuo loginių vartų tuo, kad loginiai vartai turi fiksuotą funkciją, o FPGA turi neapibrėžtą funkciją gamybos metu.

K: Kokio tipo integrinis grandynas yra FPGA?


A.: FPGA yra integrinis grandynas, priklausantis programuojamų loginių įtaisų arba PLD kategorijai.

K: Kokie yra kai kurie FPGA naudojimo trūkumai, palyginti su kitais PLD?


A: Vienas iš FPGA trūkumų, palyginti su kitais PLD, yra tas, kad jie neprisimena savo projekto, kai atjungiamas maitinimas, todėl jiems reikia atskiros konfigūracijos atminties mikroschemos, kurioje būtų saugomas projektas. Be to, jie yra brangesni už kitų tipų PLD.

K: Kaip programuojama FPGA?


A.: Norėdami programuoti FPGA, inžinieriai naudoja "Windows" arba "Linux" inžinerinę programinę įrangą, kad sukurtų projektus, parašytus aparatinės įrangos aprašymo kalbomis, tokiomis kaip VHDL ir Verilog. Tada programinė įranga išverčia šį kodą į loginius elementus, esančius pasirinktame FPGA, ir išdėsto juos, naudodama vietos ir maršruto nustatymo procesus, taip sukurdama bitų failą, kurį galima užprogramuoti konfigūracijos atmintyje arba tiesiogiai pačiame FPGA, naudojant USB programatorių, prijungtą prie JTAG prievado.

Klausimas: Ar mikroprocesoriai ir mikrovaldikliai yra panašūs į FGPA?


A: Ne, mikroprocesoriai ir mikrovaldikliai skiriasi nuo FGPA, nes savo pagrindine forma jie negali paleisti programinės įrangos; tik gavę konfigūraciją, kurioje yra procesoriaus architektūra, jie turi tokią galimybę.

AlegsaOnline.com - 2020 / 2023 - License CC3