Wat is FPGA?

LSI waarvan de gebruiker na de productie de logische configuratie kan herschrijven. Wordt gebruikt voor prototypes, producten in kleine oplagen en de verificatie van ASIC's.

Japanse benaming: FPGA

“FPGA” komt voor in 11 oefenvragen uit 6 onderwerpen, bijv. LSI-ontwerpflow en EDA, Hardwarebeschrijvingstalen en verificatie, Logische schakelingen.

Vakgebied: LSI-ontwerpflow en EDA

Wat er in een FPGA zit

Een field-programmable gate array (FPGA) is een raster van configureerbare logische blokken die via programmeerbare interconnect met elkaar zijn verbonden. Elk logisch blok bevat lookup tables (LUT's): kleine geheugens waarvan de opgeslagen bits een waarheidstabel definiëren en waarvan de ingangen multiplexers aansturen die de uitgang selecteren, zodat een LUT met k ingangen elke functie van k ingangen kan implementeren. Flipflops slaan de toestand op. Moderne devices bevatten ook harde blokken zoals block RAM, DSP-multiply-accumulate-eenheden, klokmanagers, snelle seriële transceivers en soms processorcores. In de meeste FPGA's staat de configuratie in SRAM-cellen en wordt die bij het inschakelen vanuit extern flashgeheugen geladen.

Van HDL naar bitstream

Ontwerpen worden geschreven in een hardwarebeschrijvingstaal zoals Verilog of VHDL. Synthese beeldt de logica af op LUT's, flipflops en harde blokken en herkent daarbij standaardcodeerpatronen: een registerarray die synchroon met de klok wordt geschreven en gelezen, wordt als block RAM afgeleid, terwijl een asynchrone leesoperatie flipflops of gedistribueerd geheugen kan worden. Place-and-route wijst daarna resources en verbindingen toe, statische timinganalyse controleert de klokfrequentie, en het resultaat is een bitstream die in het device wordt geladen. Verwerkingsblokken worden vaak gekoppeld via standaard on-chip-interfaces zoals AXI4-Stream.

FPGA versus ASIC

Een FPGA heeft geen maskers of fabricagedoorlooptijd nodig en kan in het veld worden herprogrammeerd, zodat bugs en nieuwe functies na levering kunnen worden opgelost. De prijs is overhead: door de configureerbare routing en LUT's is dezelfde functie trager, verbruikt ze meer vermogen en neemt ze veel meer oppervlak in dan in een application-specific integrated circuit (ASIC), en de stukprijs is hoger. ASIC's winnen bij grote volumes zodra hun hoge initiële engineering- en maskerkosten over veel eenheden zijn verdeeld; FPGA's winnen bij prototypes, kleine volumes en snel veranderende eisen.

Waar je ze tegenkomt

FPGA's zitten in communicatieapparatuur, test- en meetinstrumenten, video- en signaalverwerkingsketens, industriële besturing en accelerators in datacenters. Ze zijn ook essentieel voor de verificatie van grote SoC's: door het ontwerp op FPGA's af te beelden (FPGA-prototyping) draait het ordes van grootte sneller dan softwaresimulatie, zodat echte besturingssystemen en applicaties kunnen draaien voordat er silicium is. Hardware-emulators dienen hetzelfde doel met beter zicht op interne signalen, terwijl FPGA-prototypes over het algemeen sneller draaien.

Nu oefenen: vragen over FPGA

Welke eigenschap van een FPGA is juist?

  1. ADe schakeling ligt bij de productie vast en kan niet worden gewijzigd
  2. BHet is een component uitsluitend voor analoge schakelingen
  3. CDe gebruiker kan na de productie de opbouw van de logische schakeling herschrijven
Antwoord en toelichting tonen

Antwoord: C. De gebruiker kan na de productie de opbouw van de logische schakeling herschrijven

Een FPGA is een component waarvan de logische blokken met kleine waarheidstabellen (LUT) en de manier waarop de bedrading is verbonden na de productie met configuratiegegevens kunnen worden herschreven. Omdat productietijd en maskerkosten zoals bij een ASIC ontbreken, wordt hij gebruikt voor prototypes, kleine oplagen en apparatuur waarvan de functies moeten worden bijgewerkt. Doordat extra schakelingen voor het herschrijven nodig zijn, is een ASIC bij dezelfde schakeling sneller, zuiniger en kleiner. Het is geen component alleen voor analoog.

Welke methode wordt bij de verificatie van grote SoC's gebruikt om de ontworpen schakeling op speciale hardware of een FPGA te laten werken en in combinatie met software snel te verifiëren?

  1. AEmulatie en FPGA-prototyping
  2. BDRC
  3. CCMP
Antwoord en toelichting tonen

Antwoord: A. Emulatie en FPGA-prototyping

Logische simulatie in software wordt bij grote schakelingen zo traag dat één seconde werking dagen kost. Als de schakeling op een emulator of FPGA wordt geïmplementeerd, kan enkele ordes sneller worden geverifieerd en kunnen softwareontwikkeling en -verificatie al vóór de chip er is plaatsvinden, terwijl een echt besturingssysteem en echte applicaties draaien. Het verschil is dat een emulator interne signalen gemakkelijk observeerbaar maakt en een FPGA-prototype sneller is.

Veelgestelde vragen

Waar staat FPGA voor?

FPGA staat voor field-programmable gate array: een chip waarvan de logica en bedrading na de productie door de gebruiker kunnen worden geconfigureerd, in het veld, in plaats van tijdens de fabricage vast te liggen.

Wat is het verschil tussen een FPGA en een microcontroller?

Een microcontroller heeft een vaste processor die software-instructies na elkaar uitvoert. Een FPGA heeft geen vaste functie; de hardware zelf wordt geconfigureerd, zodat veel bewerkingen elke klokcyclus parallel kunnen lopen, ten koste van een moeilijkere ontwerpflow.

Behoudt een FPGA zijn configuratie als de voeding uit is?

De meeste FPGA's slaan hun configuratie op in SRAM en verliezen die bij het uitschakelen; bij elk inschakelen laden ze een bitstream opnieuw uit een extern flashgeheugen. Sommige families gebruiken on-chip flash of eenmalig programmeerbare antifuses en zijn niet-vluchtig.

“FPGA” in de toelichting

Vragen met “FPGA” (11)

  1. Welke eigenschap van een FPGA is juist?
  2. Welke methode wordt bij de verificatie van grote SoC's gebruikt om de ontworpen schakeling op speciale hardware of een FPGA te laten werken en in combinatie met software snel te verifiëren?
  3. Hoe wordt de bovenstaande beschrijving in het algemeen behandeld bij logische synthese voor FPGA's?
  4. Welke functie van een multiplexer is juist?
  5. Welke uitspraak over het standaardcelontwerp (standard cell) is juist?
  6. Welke ontwerpmethode ontwerpt afmetingen en plaatsing van transistors één voor één met de hand om prestaties en oppervlak tot het uiterste te optimaliseren?
  7. Welke methode maakt vooraf een gemeenschappelijke basis (master) met overal transistors en ontwerpt en produceert per product alleen de bedradingslagen?
  8. Hoe heet een LSI die speciaal voor een bepaalde toepassing of klant is ontworpen?
  9. Welk voorbeeld van een programmeermechanisme voor parallelle berekeningen op GPU's e.d., dat ook voor andere GPU's dan die van NVIDIA kan worden gebruikt, is juist?
  10. Welke uitspraak over de kenmerken van one-hot-codering bij het coderen van toestanden van een toestandsmachine is juist?
  11. Welke eigenschap van AXI4-Stream is juist?

Vergelijkingen met deze term

Verwante termen

Numerieke apertuur (NA) ASIC (application-specific integrated circuit) Logische synthese Plaatsing en routering (place and route) SoC (system on chip) Multiplexer GPU CUDA OpenCL Shared memory

Naar de woordenlijst