Field-Programmable Gate Array

Et Field-programmable gate array (ofte forkortet til FPGA) er en elektronisk komponent, der bruges til at opbygge rekonfigurerbare digitale kredsløb. Det betyder, at en FPGA er forskellig fra en logisk gate, fordi en logisk gate har en fast funktion. I modsætning hertil har en FPGA en udefineret funktion på fremstillingstidspunktet. Før FPGA'en kan anvendes i et kredsløb, skal den programmeres, dvs. rekonfigureres.

FPGA'er er integrerede kredsløb i kategorien programmerbare logiske enheder eller PLD'er. FPGA'er er de mest effektive, mest fleksible og også de dyreste af PLD-typerne. En ulempe ved FPGA'er i forhold til andre PLD'er er, at de ikke husker deres design, når strømmen afbrydes. En FPGA har derfor brug for en separat konfigurationshukommelseschip, som indeholder FPGA-designet. Når FPGA'en får strømmen tilbage, læser en fast del af FPGA'en konfigurationen fra konfigurationshukommelseschippen. Når FPGA'en er konfigureret, kan den udføre den funktion, som den har fået tildelt af designet.

En FPGA er forskellig fra en mikroprocessor eller mikrocontroller. En FPGA er i sin grundform ikke i stand til at køre software. Først når FPGA'en får en konfiguration, der indeholder en processor-arkitektur, kan den køre software.

FPGA-producenter leverer ingeniørsoftware til Windows og nogle gange også til Linux til udvikling af design til FPGA'er. Designet er normalt skrevet i computerfiler, der kan læses af mennesker, og som kaldes et hardwarebeskrivelsessprog (HDL). De mest populære er VHDL og Verilog. Hardwarebeskrivelsessprog kan i høj grad sammenlignes med programmeringssprog. Men HDL'er har til formål at designe digitale logiske kredsløb, mens programmeringssprog designer software.

FPGA-tekniksoftwaren skal oversætte den abstrakte HDL-kode til de logikelementer, der er tilgængelige i den valgte FPGA. Det kaldes logiksyntese. Derefter foretages en proces med place and route for at placere logikelementerne i FPGA'en. Resultatet er en bitfil, som kan programmeres i FPGA'en eller konfigurationshukommelsen. Dette gøres normalt med en USB-programmør, der er tilsluttet FPGA'ens JTAG-port.

Da FPGA'en er et integreret kredsløb, kan en FPGA-producent beslutte at tilføje andre almindeligt anvendte integrerede kredsløbskomponenter. Disse faste dele kaldes kerner. Det drejer sig f.eks. om Ethernet-controllere eller endog en komplet processorarkitektur. For forskellige markedssegmenter som f.eks. forsvar, medicin, kommunikation og robotteknologi forsøger FPGA-producenten at tilføje det mest værdifulde sæt af disse ekstra kerner.

Zoom


Intern struktur

FPGA'er er generelt bygget på programmerbare logikelementer og programmerbare forbindelser. En af logikelementernes byggesten er en programmerbar opslagstabel (LUT). En LUT kan programmeres til at udstede en hvilken som helst værdi på baggrund af indgangsværdier. På denne måde kan en LUT programmeres til at være en hvilken som helst type logik med det samme antal ind- og udgange. F.eks. kan en LUT med 2 indgange og 1 udgang programmeres til at emulere logikken i en AND, OR, NAND, NOR, XOR osv. med 2 indgange. Udgangen af denne LUT kan enten gemmes ved hjælp af et register eller forbindes med indgangen til andre LUT'er. Ved hjælp af en programmerbar mux kan FPGA'en programmeres til at vælge det registrerede eller ikke-registrerede output. Denne kombination af en LUT, et register og en mux er den generelle struktur for et logisk element.

Til at forbinde disse logiske elementer sammen anvendes pass-transistorer. Transistorerne kan programmeres til enten at forbinde et signal eller ej, hvilket giver FPGA'en mulighed for at forbinde logiske elementer meget specifikt. Hvis f.eks. udgangen af et logikelement skal tilføre indgangen til et andet logikelement, kan pass-transistoren programmeres til at forbinde disse to ledninger sammen og matche den specificerede logik. Mellem logikelementerne og pass-transistorerne kan en compiler tage en hardwarebeskrivelse fra en HDL, skabe logikken for logikelementerne og forbinde dem sammen ved hjælp af pass-transistorerne.

Spørgsmål og svar

Spørgsmål: Hvad er et FPGA (field-programmable gate array)?


A: En FPGA (field-programmable gate array) er en elektronisk komponent, der anvendes til at opbygge rekonfigurerbare digitale kredsløb. Den har en udefineret funktion på fremstillingstidspunktet og skal programmeres eller rekonfigureres, før den kan bruges i et kredsløb.

Spørgsmål: Hvordan adskiller en FPGA sig fra en logisk gate?


Svar: En FPGA adskiller sig fra en logisk gate, fordi en logisk gate har en fast funktion, mens en FPGA har en udefineret funktion på fremstillingstidspunktet.

Spørgsmål: Hvilken type integreret kredsløb er en FPGA?


Svar: En FPGA er et integreret kredsløb i kategorien programmerbare logiske enheder eller PLD'er.

Spørgsmål: Hvilke ulemper er der ved at bruge FPGA'er i forhold til andre PLD'er?


A: En ulempe ved at bruge FPGA'er i forhold til andre PLD'er er, at de ikke husker deres design, når strømmen afbrydes, så de har brug for en separat konfigurationshukommelseschip, som indeholder designet. De er også dyrere end andre typer PLD'er.

Spørgsmål: Hvordan programmerer man en FPGA?


A: For at programmere en FPGA bruger ingeniører ingeniørerne teknisk software til Windows eller Linux til at udvikle design skrevet i hardware beskrivelsessprog som VHDL og Verilog. Softwaren oversætter derefter denne kode til de logikelementer, der er tilgængelige på de valgte FGPA'er, og placerer dem med place and route-processer, som skaber en bitfil, der kan programmeres enten i konfigurationshukommelsen eller direkte i selve FGPA'en med en USB-programmør, der er tilsluttet dens JTAG-port.

Spørgsmål: Er mikroprocessorer og mikrocontrollere magen til FGPA'er?


A: Nej, mikroprocessorer og mikrocontrollere er forskellige fra FGPA'er, fordi de i deres grundform ikke kan køre software; kun når de får en konfiguration, der indeholder processorarkitektur, har de denne evne.

AlegsaOnline.com - 2020 / 2023 - License CC3