+1 500 000 producten

7000 pakketten

+300 000 klanten uit 150 landen

QuickBuy Favorieten
Winkelwagen

Programmeerbare digitale FPGA-circuits

Datum van publicatie: 18-11-2025 🕒 10 min leestijd

FPGA-apparaten zijn al vele jaren commercieel beschikbaar, maar ondanks veel voordelen kan niet worden gezegd dat ze populair zijn in toepassingen. De belangrijkste redenen zijn de hoge kosten van de oplossing en het gebrek aan kennis over de toepassingen. De eerste van deze kenmerken heeft een negatieve invloed op de ontwerper of een andere besluitvormer met betrekking tot componenten, terwijl de laatste meestal de programmeur of embedded systeemontwerper beïnvloedt, die bedreven is in objectgeoriënteerde talen maar de hardwarebeschrijvingstaal niet begrijpt. In deze tekst zullen we geselecteerde praktische kenmerken van FPGA-apparaten onderzoeken en deze vergelijken met veel beter bekende en geaccepteerde microcontrollers. We zullen ook toepassingen aanwijzen waar het gebruik van FPGA onmisbaar is en die waar het "overbodig" wordt.

FPGA is de naam van een groep geïntegreerde schakelingen afgeleid van de eerste letters van de woorden Field-Programmable Gate Array. Deze apparaten kunnen na productie worden geprogrammeerd. Het programmeringsproces van FPGA wordt configuratie genoemd, omdat het inhoudt dat verbindingen worden gemaakt tussen kant-en-klare functionele blokken die binnen de structuur beschikbaar zijn. In tegenstelling tot typische digitale geïntegreerde schakelingen (poorten, registers, flip-flops, tellers, enz.) die een vaste functionaliteit hebben, kunnen FPGA's herhaaldelijk worden geprogrammeerd, wat flexibiliteit biedt bij het ontwerpen en testen van verschillende toepassingen.

Koop FPGA-apparaten

FPGA's bestaan uit programmeerbare logische blokken en programmeerbare interconnecties tussen hen. Deze apparaten kunnen niet alleen digitale blokken bevatten, maar ook analoog-naar-digitaalconverters, digitaal-naar-analoogconverters, processorcores (algemeen of DSP), interfaceblokken die samenwerking met externe apparaten mogelijk maken, of zelfs AI-ondersteunende eenheden die zijn verbonden via Network-on-Chip (NoC), een ingebouwd interconnectienetwerk dat datapakketten tussen blokken en componenten van het apparaat verzendt. Dankzij rijke functies en flexibele verbindingen kunnen FPGA-apparaten worden geconfigureerd om verschillende functies uit te voeren, zoals signaalverwerking, embedded systeemcontrole of gegevensverwerkingsversnelling.

Een van de belangrijkste voordelen van FPGA is de snelheid van berekening. Deze apparaten werken anders dan een microprocessor, die instructies sequentieel ophaalt en uitvoert. In FPGA kan het verwerkingsresultaat "onmiddellijk" verschijnen, alleen vertraagd door een kleine propagatietijd. Het is ook significant dat veel bewerkingen parallel kunnen worden uitgevoerd, in tegenstelling tot een microcontroller, die zelden gelijktijdige uitvoering van veel instructies ondersteunt.

Elk FPGA-apparaat bestaat uit drie groepen componenten:

  1. De basisbouwstenen van elke FPGA zijn logische blokken. Elk bevat een aantal basis logische functors en registers. Logische functors voeren logische bewerkingen uit, terwijl registers gegevens opslaan.
  2. Logische blokken zijn verbonden door een verbindingbus. Deze term moet echter niet worden verward met bijvoorbeeld een databus op een computer moederbord. In tegenstelling tot koperen sporen met een vaste topologie, zijn dit flexibel programmeerbare verbindingen tussen blokken die het mogelijk maken om ze bijna willekeurig te verbinden.
  3. De gehele configuratie wordt opgeslagen in niet-vluchtig configuratiemoederschap. In de meeste FPGA's is dit externe Flash/EEPROM-geheugen dat herhaaldelijk kan worden gewist en geschreven. Sommige FPGA-apparaten kunnen ingebouwd configuratiemoederschap hebben, maar dit is minder gebruikelijk. De FPGA laadt de configuratie bij inschakeling of harde reset. De beschikbaarheid van configuratiemoederschap maakt het eenvoudig om prototypes te bouwen en te testen en, in het geval van een afgewerkt, werkend apparaat, eenvoudig de functionaliteit bij te werken of te verbeteren. Dit is vooral waardevol in hardware die in kleine series wordt geproduceerd, waar het gebruik van FPGA aanzienlijk kosteneffectiever is dan het ontwerpen en produceren van speciale geïntegreerde schakelingen (ASIC).

Figuur 1. Vereenvoudigd blokdiagram dat de structuur van een FPGA-apparaat illustreert

Verschillen tussen FPGA en CPLD

CPLD-apparaten (Complex Programmable Logic Device) waren de voorlopers van FPGA-apparaten en (ondanks minder functionaliteit) worden ze vandaag de dag aangeboden voor minder complexe toepassingen. De meeste grote leveranciers bieden een breed scala, beginnend bij de eenvoudigste versies die zijn aangeduid als PAL, die programmeerbare elementen en vaste delen bevatten die zijn voorbestemd om een bepaalde logische functie uit te voeren. Dit maakt het mogelijk om een enkele geïntegreerde schakeling te gebruiken in plaats van verschillende logische functors, maar biedt niet veel flexibiliteit voor toepassingen.

Koop CPLD-apparaten

In vergelijking met PAL zijn CPLD-apparaten complexer. Ze bevatten meer poorten, zijn uitgerust met niet-vluchtig geheugen en RAM, waardoor ze geschikt zijn voor complexere toepassingen. Bijvoorbeeld, Intel® plaatste veel PAL-blokken genaamd macrocellen in een enkele, uniforme circuitverpakking, waar alle ingangen beschikbaar zijn voor elke cel, en elke macrocel kan elke uitgang aansturen. De verbindingsstructuur wordt opgeslagen in elektrisch programmeerbaar geheugen dat configuratiemoederschap wordt genoemd, net als in FPGA. Dus, als CPLD's macrocellen, een programmeerbare verbindingbus en configuratiemoederschap hebben, hoe verschillen ze dan van FPGA's?

In vergelijking met FPGA's bevatten CPLD's aanzienlijk minder logische elementen en hebben ze geen LUT-arrays (look up tables). Ze hebben een meer geïntegreerde architectuur, met een veel kleiner aantal logische blokken, en implementeren complexere logische functies in elk blok. Veel verbindingen tussen blokken in CPLD zijn vooraf gedefinieerd in het productieproces en kunnen niet worden gewijzigd tijdens de configuratie van het apparaat. Ze worden niet gebruikt voor het creëren van zo complexe toepassingen als FPGA's, die miljoenen logische functors kunnen bevatten. Ter illustratie, een FPGA kan een processorcore modelleren, terwijl een CPLD nuttig is voor het implementeren van een adresdecoder die ermee samenwerkt.

Figuur 2. Macrocel van het MAX7000-serie apparaat (bron: documentatie van de fabrikant)

In de meeste FPGA-apparaten wordt de configuratie opgeslagen in extern geheugen, meestal aangesloten via een seriële interface. Configuratiegegevens worden bij elke inschakeling of harde reset naar het RAM van de FPGA gekopieerd. Dit creëert een vertraging bij het opstarten van het apparaat, groter voor complexere FPGA's, wat niet het geval is bij CPLD's die de configuratie in ingebouwd EEPROM-geheugen hebben opgeslagen.

Een nadeel van FPGA in vergelijking met CPLD is de hogere toepassingskosten.

  • FPGA kan een speciaal, efficiënt voedingssysteem vereisen, waarin het noodzakelijk is om de inschakelvolgorde van individuele spanningen te controleren en op een specifieke manier te reageren in geval van een storing.
  • Configuratie opgeslagen in extern geheugen is kwetsbaar voor ongeautoriseerde toegang, wat belangrijk kan zijn voor de beveiliging van de toepassing.
  • FPGA-toepassingen die aanzienlijk meer externe componenten vereisen, zijn veel duurder.
  • De hoge prijs van FPGA's elimineert praktisch complexere apparaten in populaire toepassingen. CPLD's zijn niet zo kostbaar en kunnen met succes worden gebruikt in populaire elektronische apparaten, waarbij ze verschillende of zelfs tientallen logische apparaten vervangen. Echter, ondanks veel voordelen, wanneer een logische functie moet worden geïmplementeerd, zullen veel ontwerpers nog steeds de beter bekende microcontroller kiezen...

Tabel 1. Vergelijking van geselecteerde parameters van FPGA en CPLD-apparaten

Kenmerk/parameter CPLD FPGA
Toepassingsflexibiliteit Laag Hoog
Prijs Laag Hoog of zeer hoog
Toepassingsbeveiliging Hoog Kwetsbaar voor ongeautoriseerde toegang
Snelheid van werking Hoog Hoog
Capaciteit/grootte van toepassing Laag Hoog of zeer hoog
Hardwaretoepassing Eenvoudig Complex of zeer complex
Programmering In hardwareconfiguratietalen of door functionele schema's

Verschillen tussen FPGA en microcontroller

Functionele blokken ingebouwd in FPGA, vooral A/D-converters, D/A-converters, of interfacemodules voor externe apparaten, kunnen lijken op de omgeving van een microcontrollerkern. Een FPGA kan ingebouwd RAM en niet-vluchtig Flash-geheugen hebben, maar deze gelijkenis is misleidend.

Moderne, geavanceerde FPGA-apparaten zijn functioneel complexer dan geavanceerde, complexe microcontrollers. Bijvoorbeeld, het verbinden van functionele blokken binnen een FPGA kan gebruikmaken van NoC (Network on Chip) technologie, waarbij binnen de structuur van de geïntegreerde schakeling datapakketten worden verzonden met behulp van bussen die worden beheerd door ingebouwde schakelaars. Dit is nuttig voor signaalverwerking en -conditionering en voor algoritmen die gebruikmaken van machine learning en kunstmatige intelligentie.

De snelheid van FPGA-operatie in vergelijking met een microcontroller is werkelijk verbazingwekkend. Dit komt omdat een typische microcontrollerkern instructies één voor één ophaalt en uitvoert. Om de gegevensverwerking te versnellen, laadt het sommige bewerkingen uit naar perifere eenheden (bijv. gegevensoverdracht naar en van geheugen via DMA), maar dit verandert niet het operationele ritme. In FPGA's, afhankelijk van de configuratie, verzendt de FPGA meestal het antwoord onmiddellijk na ontvangst van gegevens en kan bovendien veel threads gelijktijdig uitvoeren. Vergeet niet, bijvoorbeeld, dat het evalueren van een signaal niet inhoudt dat één monster wordt genomen en vervolgens in de volgende stap wordt geëvalueerd, maar verwijst naar een bepaald evaluatieschema dat beschikbaar is als een netwerk van verbonden logische functors, zodat het beschikbaar kan zijn met een nauwkeurigheid tot de propagatietijd van het apparaat.

Een microcontroller bevat een processor kern, RAM, ROM, Flash, en perifere apparaten, zoals in- en uitgangen, timers, A/D- en D/A-converters op een enkele geïntegreerde schakeling. Het is ontworpen om specifieke taken uit te voeren. Hoewel sommige modules kunnen worden in- of uitgeschakeld om energie te besparen, kan hun functionaliteit niet worden gedefinieerd. Het is vastgelegd tijdens de productie, inclusief de werking en verbinding van blokken. Een microcontroller is enigszins als een microcomputer die op een klein printplaat binnen een enkele verpakking is gemonteerd. Het wijzigen van de configuratie vereist het aanpassen van de printplaat, inclusief circuitsporen, componentplaatsing en hun onderlinge verbindingen.

Een FPGA-apparaat is opgebouwd uit programmeerbare logische blokken die zijn verbonden door configureerbare interconnecties. Functors kunnen worden gecombineerd tot verschillende functionele blokken die verschillende logische bewerkingen kunnen uitvoeren, en moderne geavanceerde FPGA-apparaten maken gebruik van zeer geavanceerde verbindings-technologieën zoals NoC.

Het programmeren van FPGA (en CPLD) bestaat uit het definiëren van logische verbindingen en functies met behulp van hardwarebeschrijvingstalen (HDL) zoals VHDL of Verilog. Configuratie, vooral voor eenvoudigere apparaten, kan ook worden gedaan met behulp van een logische schema, waarbij typische logische componenten worden geplaatst en verbonden. Het configureren van FPGA vereist kennis van digitaal circuitontwerp. Het programmeren van een microcontroller gebruikt structurele of objectgeoriënteerde programmeertalen. Tegenwoordig bewegen de meeste toepassingen zich weg van low-level assembler naar high-level talen zoals C, C++, Java en anderen. Microcontrollerprogrammering lijkt op programmeren van "grote" computers, waardoor het gemakkelijker is voor de meeste programmeurs, die vaak geen kennis hebben van de werking en optimalisatie van logische blokken. Het FPGA-programma-geheugen slaat configuratie op, terwijl het microcontroller-geheugen opdrachten en parameters opslaat.

Tabel 2. Vergelijking van geselecteerde parameters van microcontrollers en FPGA

Kenmerk/parameter Microcontroller FPGA
Toepassingsflexibiliteit Hoog Hoog
Prijs Laag of gemiddeld Hoog of zeer hoog
Toepassingsbeveiliging Kwetsbaar voor ongeautoriseerde toegang Kwetsbaar voor ongeautoriseerde toegang
Snelheid van werking Laag in vergelijking met FPGA Hoog
Geheugencapaciteit / grootte van toepassing Van zeer klein tot zeer groot Hoog of zeer hoog
Hardwaretoepassing Eenvoudig Complex of zeer complex
Mogelijkheid van analoge werking Geen of beperkt
Programmering In assembler of high-level talen In hardwareconfiguratietalen

Verschillen tussen FPGA en ASIC

De belangrijkste eigenschap van ASIC-apparaten, zoals hun naam aangeeft, is dat ze zijn ontworpen om een specifieke taak uit te voeren. Dit kan bijvoorbeeld het ontvangen en decoderen van een radiosignaal zijn, het aansturen van een specifiek displaymodel, of andere. Merk op dat ASIC niet noodzakelijk programmeerbaar hoeft te zijn, hoewel er commercieel beschikbare zijn die een processor kern bevatten waarvoor toepassingen kunnen worden gemaakt.

De grens tussen een typische geïntegreerde schakeling en een ASIC-apparaat is zeer dun. Ze worden voornamelijk gescheiden door de productievolume; ASIC's worden in kleinere aantallen geproduceerd in vergelijking met massaal geproduceerde geïntegreerde schakelingen. Veel fabrikanten bieden geïntegreerde schakelingen aan zonder aan te geven of ze massaal geproduceerd of ASIC's zijn.

De architectuur van een ASIC wordt gedefinieerd door de ontwerper en kan na de productie niet meer worden gewijzigd. Gewoonlijk, wanneer ASIC's een processor kern hebben, is er geen programma-ontwikkeling vereist, alleen het instellen van enkele specifieke parameters. Evenzo worden het type communicatie met de omgeving en gegevensformaten gedefinieerd tijdens het ontwerp, en zelfs als schakelen tussen verschillende types mogelijk is, kunnen er geen wijzigingen worden aangebracht.

In vergelijking met het configureren van FPGA is het ASIC-ontwerpproces complexer en kostbaarder, mogelijk vereist het specialistische kennis die verder gaat dan digitaal circuitontwerp, maar het eindproduct is meer geoptimaliseerd voor specifieke toepassingen, prestaties en energie-efficiëntie.

ASIC's worden gebruikt in toepassingen die hoge prestaties vereisen met een laag energieverbruik en miniatuurafmetingen. Specialisatie stelt hen in staat om uitstekende praktische parameters te bieden. Bovendien zijn ASIC's meestal direct klaar voor gebruik na het solderen of plaatsen in een socket en hoeven ze geen configuratie van extern geheugen te laden. Ze kunnen ook gemengde functionaliteit hebben of puur analoog zijn. Dit is niet mogelijk met FPGA's, die zeer hoge prestaties bieden door parallelle verwerking van digitale gegevens, na conversie van analoog naar digitaal en vice versa.

Klaar-voor-gebruik ASIC's kunnen vele malen goedkoper zijn dan FPGA's. Ze zijn veel duurder en tijdrovender om te ontwerpen, maar deze kosten worden gecompenseerd over typisch grote volumes. Dit gaat ten koste van het gebrek aan herconfiguratiemogelijkheid, maar dat is niet altijd nodig. Evenals microcontrollers, kunnen FPGA's worden gebruikt om ASIC's te prototypen, maar ASIC's kunnen de werking van FPGA niet modelleren. Natuurlijk bedoelen we hier modelleren dat het mogelijk maakt om een nuttige configuratie voor FPGA op te nemen, niet alleen het bereiken van een vergelijkbare functionaliteit.

Tabel 3. Vergelijking van geselecteerde parameters van ASIC en FPGA

Kenmerk/parameter ASIC FPGA
Toepassingsflexibiliteit Zeer laag Hoog
Prijs Laag of gemiddeld Hoog of zeer hoog
Toepassingsbeveiliging Hoog Kwetsbaar voor ongeautoriseerde toegang
Snelheid van werking Hoog Hoog
Capaciteit/grootte van toepassing Laag of geen Hoog of zeer hoog
Hardwaretoepassing Eenvoudig Complex of zeer complex
Mogelijkheid van analoge werking Afhankelijk van ontwerp Geen of beperkt
Programmering Beperkte mogelijkheden of niet vereist In hardwareconfiguratietalen

Bibliografie:

  • Control Engineering Poland – FPGA in automatisering - www.controlengineering.pl/uklady-fpga-w-automatyce-nowe-mozliwosci-i-zastosowania
  • Lattice Semiconductor – FPGA in Industrie 4.0 - www.latticesemi.com/en/Blog/2022/12/20/23/00/2022-How-FPGAs-Can-Make-Industry-4-Work
  • Wikipedia – Vierde industriële revolutie - www.pl.wikipedia.org/wiki/Czwarta_rewolucja_przemysłowa
  • Ontwerp van embedded systemen in FPGA-apparaten - www.helion.pl/pobierz-fragment/projektowanie-systemow-wbudowanych-w-ukladach-fpga-valery-salauyou-adam-klimowicz,e_321i/pdf
  • De kracht van geheugen – Elektronika Praktyczna - www.ep.com.pl/files//2012.pdf
  • Wikipedia – Field-Programmable Gate Array (FPGA) - www.pl.wikipedia.org/wiki/Bezpośrednio_programowalna_macierz_bramek
  • FPGA-Based System Design – Wayne Wolf - www.eeeforum.weebly.com/uploads/1/0/2/5/10254481/fpga1.pdf
  • “Real-Time Image Processing on FPGA” – SpringerLink - www.link.springer.com/chapter/10.1007/978-3-642-24106-2_18

Transfer Multisort Elektronik (TME) is een van ’s werelds grootste distributeurs van elektronische componenten, elektrotechnische onderdelen, werkplaatsuitrusting en industriële automatisering. De catalogus bevat meer dan 1.500.000 producten van 1.300 toonaangevende fabrikanten. De moderne logistieke centra van TME in Łódź en Rzgów (Polen), met een totale oppervlakte van meer dan 40.000 m², verzenden dagelijks bijna 6.000 pakketten naar klanten in meer dan 150 landen.

TME investeert ook in de ontwikkeling van kennis en vaardigheden van jonge ingenieurs en elektronicahobbyisten via het TME Education-project, en ondersteunt de technologische gemeenschap door het organiseren van de TechMasterEvent -serie, die innovatie en kennisuitwisseling bevordert.

rightColumnPicture rightColumnPicture

VERDER LEZEN