Field-programmable gate array

En Field-programmable gate array (ofta förkortat FPGA) är en elektronisk komponent som används för att bygga omkonfigurerbara digitala kretsar. Det innebär att en FPGA skiljer sig från en logisk grind, eftersom en logisk grind har en fast funktion. En FPGA har däremot en odefinierad funktion vid tillverkningstillfället. Innan FPGA:n kan användas i en krets måste den programmeras, dvs. omkonfigureras.

FPGA:er är integrerade kretsar i kategorin programmerbara logiska enheter eller PLD:er. FPGA:er är de mest flexibla och flexibla, men också de dyraste av PLD-typerna. En nackdel med FPGA:er jämfört med andra PLD:er är att de inte kommer ihåg sin konstruktion när strömmen tas bort. En FPGA behöver därför ett separat konfigurationsminneschip som håller FPGA-konstruktionen. När strömmen återförs till FPGA:n läser en fast del av FPGA:n konfigurationen från konfigurationsminneschipet. När FPGA:n är konfigurerad kan den utföra den funktion som den fick genom konstruktionen.

En FPGA skiljer sig från en mikroprocessor eller mikrokontroller. En FPGA i sin grundform kan inte köra programvara. Det är först när FPGA:n får en konfiguration som innehåller en processorarkitektur som den kan köra programvara.

FPGA-tillverkare tillhandahåller programvara för Windows och ibland även för Linux för att utveckla konstruktioner för FPGA:er. Konstruktionen skrivs vanligen i människoläsbara datafiler som kallas HDL (Hardware Description Language). De mest populära är VHDL och Verilog. Hårdvarubeskrivningsspråk är starkt jämförbara med programmeringsspråk. Men syftet med HDL:er är att konstruera digitala logikkretsar medan programmeringsspråk konstruerar programvara.

FPGA-programvaran måste översätta den abstrakta HDL-koden till de logikelement som finns tillgängliga i den valda FPGA:n. Detta kallas logiksyntes. Därefter sker en process med place and route för att placera logikelementen i FPGA:n. Resultatet är en bitfil som kan programmeras i FPGA:n eller konfigurationsminnet. Detta görs vanligtvis med en USB-programmerare som är ansluten till FPGA:ns JTAG-port.

Eftersom FPGA:n är en integrerad krets kan FPGA-tillverkaren besluta att lägga till andra vanliga integrerade kretsar. Dessa fasta delar kallas kärnor. Dessa är till exempel Ethernet-kontroller eller till och med en komplett processorarkitektur. För olika marknadssegment, t.ex. försvar, medicin, kommunikation och robotteknik, försöker FPGA-tillverkaren att lägga till den mest värdefulla uppsättningen av dessa extra kärnor.

Zoom


Intern struktur

FPGA:er bygger i allmänhet på programmerbara logikelement och programmerbara sammankopplingar. En byggsten av logiska element är en programmerbar Lookup Table (LUT). En LUT kan programmeras för att ge ut vilket värde som helst med hjälp av ingångsvärden. På detta sätt kan en LUT programmeras till att vara vilken typ av logik som helst med samma antal ingångar och utgångar. Till exempel kan en LUT med 2 ingångar och 1 utgång programmeras för att efterlikna logiken hos en AND, OR, NAND, NOR, XOR, etc. med 2 ingångar. Utgången från denna LUT kan antingen sparas med hjälp av ett register eller anslutas till ingången till andra LUT:er. Med hjälp av en programmerbar mux kan FPGA:n programmeras för att välja den registrerade eller icke-registrerade utgången. Denna kombination av en LUT, ett register och en mux är den allmänna strukturen för ett logiskt element.

För att ansluta dessa logiska element till varandra används passeringstransistorer. Transistorn kan programmeras för att antingen ansluta en signal eller inte, vilket ger FPGA:n möjlighet att mycket specifikt ansluta logiska element till varandra. Om t.ex. utgången från ett logiskt element kommer att matcha ingången till ett annat, kan passeringstransistorn programmeras så att den ansluter dessa två ledningar till varandra och matchar den specificerade logiken. Mellan de logiska elementen och passeringstransistorerna kan en kompilator ta en maskinvarubeskrivning från en HDL, skapa logiken för de logiska elementen och koppla ihop dem med hjälp av passeringstransistorerna.

Frågor och svar

F: Vad är en fältprogrammerbar grindmatris (FPGA)?


S: En fältprogrammerbar gate array (FPGA) är en elektronisk komponent som används för att bygga rekonfigurerbara digitala kretsar. Den har en odefinierad funktion vid tillverkningstillfället och måste programmeras eller omkonfigureras innan den kan användas i en krets.

F: Hur skiljer sig en FPGA från en logisk grind?


S: En FPGA skiljer sig från en logisk grind eftersom en logisk grind har en fast funktion medan en FPGA har en odefinierad funktion vid tillverkningstillfället.

Fråga: Vilken typ av integrerad krets är en FPGA?


S: En FPGA är en integrerad krets i kategorin programmerbara logiska enheter (PLD).

F: Vilka är nackdelarna med att använda FPGA:er jämfört med andra PLD:er?


S: En nackdel med FPGA:er jämfört med andra PLD:er är att de inte kommer ihåg sin konstruktion när strömmen tas bort, så de behöver ett separat konfigurationsminneschip som håller konstruktionen. De är också dyrare än andra typer av PLD:er.

F: Hur programmerar man en FPGA?


S: För att programmera en FPGA använder ingenjörer teknisk programvara för Windows eller Linux för att utveckla konstruktioner som är skrivna i hårdvarubeskrivningsspråk som VHDL och Verilog. Programvaran översätter sedan denna kod till de logikelement som finns tillgängliga på de utvalda FGPA:erna och placerar dem med hjälp av place and route-processer, vilket skapar en bitfil som kan programmeras antingen i konfigurationsminnet eller direkt i själva FGPA:n med hjälp av en USB-programmerare som är ansluten till dess JTAG-port.

F: Är mikroprocessorer och mikrokontroller likadana som FGPA:er?


S: Nej, mikroprocessorer och mikrokontroller skiljer sig från FGPA:er eftersom de i sin grundform inte kan köra programvara; det är först när de får en konfiguration som innehåller processorarkitektur som de har denna förmåga.

AlegsaOnline.com - 2020 / 2023 - License CC3