FPGA

Väljas programmeeritav väravate massiivi (sageli lühendatult FPGA) on elektrooniline komponent, mida kasutatakse rekonfigureeritavate digitaalahelate ehitamiseks. See tähendab, et FPGA erineb loogikaväravast, sest loogikaväraval on fikseeritud funktsioon. Seevastu FPGA-l on valmistamise ajal määratlemata funktsioon. Enne kui FPGAd saab kasutada vooluahelas, tuleb see programmeerida, st ümber konfigureerida.

FPGAd on programmeeritavate loogikaseadmete ehk PLDde kategooriasse kuuluvad integraallülitused. FPGAd on PLD-tüübist kõige suurema jõudlusega, kõige paindlikumad ja ka kõige kallimad. FPGA-de puuduseks võrreldes teiste PLD-dega on see, et nad ei mäleta oma disaini, kui voolu välja lülitatakse. Seetõttu vajab FPGA eraldi konfiguratsioonimälu kiipi, mis hoiab FPGA disaini. Kui FPGA-le antakse vool tagasi, loeb FPGA fikseeritud osa konfiguratsioonimälu kiibilt konfiguratsiooni. Pärast seda, kui FPGA on konfigureeritud, on ta võimeline täitma funktsiooni, mis on talle disainiga antud.

FPGA erineb mikroprotsessorist või mikrokontrollerist. FPGA ei ole oma põhivormis võimeline tarkvara käivitama. Ainult siis, kui FPGA-le antakse konfiguratsioon, mis sisaldab protsessorarhitektuuri, on ta võimeline tarkvara käivitama.

FPGA tootjad pakuvad projekteerimistarkvara Windowsile ja mõnikord ka Linuxile, et töötada välja projekte FPGAde jaoks. Disain on tavaliselt kirjutatud inimesele loetavates arvutifailides, mida nimetatakse riistvarakirjelduskeeleks (HDL). Kõige populaarsemad on VHDL ja Verilog. Riistvarakirjelduskeeled on tugevalt võrreldavad programmeerimiskeeltega. Kuid HDL-ide eesmärk on projekteerida digitaalseid loogikahelaid, samas kui programmeerimiskeeled kavandavad tarkvara.

FPGA projekteerimistarkvara peab tõlkima abstraktse HDL-koodi valitud FPGAs olemasolevateks loogikaelementideks. Seda nimetatakse loogikasünteesiks. Seejärel toimub loogikaelementide paigutamine FPGAs loogikaelementide paigutamise ja marsruutimise protsess. Tulemuseks on bitifail, mida saab programmeerida FPGAsse või konfiguratsioonimällu. Seda tehakse tavaliselt USB-programmeerija abil, mis on ühendatud FPGA JTAG-porti.

Kuna FPGA on integraallülitus, võib FPGA tootja otsustada lisada muid üldkasutatavaid integraallülituse komponente. Neid fikseeritud osi nimetatakse südamikuteks. Need on näiteks Ethernet-kontrollerid või isegi täielik protsessor-arhitektuur. Erinevate turusegmentide, näiteks kaitse-, meditsiini-, side- ja robootikavaldkondade jaoks püüab FPGA tootja lisada kõige väärtuslikumad täiendavad südamikud.

Zoom


Sisemine struktuur

FPGAd põhinevad üldiselt programmeeritavatel loogikaelementidel ja programmeeritavatel ühendustel. Üheks loogikaelementide ehitusplokiks on programmeeritav lookup table (LUT). LUT-i saab programmeerida nii, et see väljastab mis tahes väärtuse, mille sisendväärtused on antud. Seega saab LUT-i programmeerida nii, et see oleks mis tahes tüüpi loogika, millel on sama arv sisendeid ja väljundeid. Näiteks saab programmeerida 2 sisendiga ja 1 väljundiga LUT-tabelit, et jäljendada 2 sisendiga AND, OR, NAND, NOR, XOR jne. loogikat. Selle LUTi väljundit saab kas salvestada registri abil või ühendada teiste LUTide sisendiga. Kasutades programmeeritavat muxi, saab FPGA-d programmeerida nii, et see valib registreeritud või registreerimata väljundi. Selline LUTi, registri ja muxi kombinatsioon on loogikaelemendi üldine struktuur.

Nende loogikaelementide ühendamiseks kasutatakse läbipääsutransistoreid. Transistori saab programmeerida nii, et see ühendab signaali või ei ühenda seda, andes FPGA-le võimaluse ühendada loogikaelemendid omavahel väga spetsiifiliselt. Näiteks kui ühe loogikaelemendi väljund toidab teise loogikaelemendi sisendit, saab läbipääsutransistori programmeerida nii, et see ühendab need kaks juhtme kokku ja vastab määratud loogikale. Loogikaelementide ja läbipääsutransistoride vahel saab kompilaator võtta HDL-i riistvarakirjelduse, luua loogikaelementide loogika ja ühendada need omavahel läbipääsutransistoride abil.

Küsimused ja vastused

K: Mis on programmeeritav väravasüsteem (FPGA)?


V: Väljas programmeeritav väravate massiivi (FPGA) on elektrooniline komponent, mida kasutatakse rekonfigureeritavate digitaalsete vooluahelate ehitamiseks. Selle funktsioon on valmistamise ajal määratlemata ja see tuleb programmeerida ehk ümber konfigureerida, enne kui seda saab kasutada vooluahelas.

K: Mille poolest erineb FPGA loogikaväravast?


V: FPGA erineb loogikaväravast, sest loogikaväraval on fikseeritud funktsioon, samas kui FPGA-l on valmistamise ajal määratlemata funktsioon.

K: Millist tüüpi integraallülitus on FPGA?


V: FPGA on programmeeritavate loogikaseadmete ehk PLDde kategooriasse kuuluv integraallülitus.

K: Millised on FPGA-de kasutamise puudused võrreldes teiste PLD-dega?


V: Üks puudus FPGAde kasutamisel võrreldes teiste PLDdega on see, et nad ei mäleta oma disaini, kui voolu välja lülitatakse, seega vajavad nad eraldi konfiguratsioonimälu kiipi, mis hoiab disaini. Samuti on need kallimad kui muud tüüpi PLD-d.

K: Kuidas programmeeritakse FPGA-d?


V: FPGA programmeerimiseks kasutavad insenerid Windowsile või Linuxile mõeldud inseneritarkvara, et töötada välja riistvara kirjeldamise keeltes, nagu VHDL ja Verilog, kirjutatud projekte. Seejärel tõlgib tarkvara selle koodi valitud FGPAs olemasolevateks loogikaelementideks ja paigutab need place and route protsesside abil, mis loob bitifaili, mida saab programmeerida kas konfiguratsioonimällu või otse FGPAsse ise, kasutades selle JTAG-porti ühendatud USB-programmeerijat.

K: Kas mikroprotsessorid ja mikrokontrollerid on sarnased FGPA-dega?


V: Ei, mikroprotsessorid ja mikrokontrollerid erinevad FGPAdest, sest põhilisel kujul ei saa ta tarkvara käivitada; ainult siis, kui talle antakse protsessorarhitektuuri sisaldav konfiguratsioon, on tal see võime.

AlegsaOnline.com - 2020 / 2023 - License CC3