20 November 2025 –
Mijn eerste FPGA avontuur
Afgelopen week ben ik eindelijk zelf met FPGA-programmeren aan de slag gegaan. Gesprekken afgelopen week met vakgenoten op Elektor Live 2025 ! maakten me zó enthousiast dat ik meteen twee FPGA development boards bij DigiKey bestelde. Toen de bubbelenvelop binnenkwam, ging het mes erin — daarin zaten twee Trenz FPGA CYC1000 boards. Een FPGA is simpel gezegd een chip waarin je zélf digitale logica bouwt – Field Programmable Gate Array – poorten in de chip die je zelf kunt programmeren. Een compact stuk programmeerbare hardware waarin je zelf logica bouwt. Geen software op een CPU, maar echte schakelingen in VHDL of Verilog: counters, state-machines, filters en interfaces — allemaal parallel en razendsnel uitgevoerd door de FPGA. Ik koos voor dit board omdat het klein (68×28 mm), betaalbaar (€45) is en een 12 MHz klok heeft voor animaties en timing.


Handig formaat, veel mogelijkheden
Het FPGA board heeft acht onboard LEDs, kan via JTAG of Arrow USB-Blaster geprogrammeerd worden en bevat een LIS3DH-accelerometer die X,Y,Z-bewegingen meet in 16-bit resolutie, binnen ±2g tot ±16g. Handig voor vibratiemeting, tap-detectie, free-fall of als digitale waterpas. Daarnaast heeft de CYC1000 in totaal 49 I/O-lijnen, waarvan 33 bruikbaar als GPIO. En door de Arduino-MKR compatibele header kun je zo meerdere HATs aansluiten. Twee buttons (Reset + User), acht LEDs met serieweerstanden, UART op pin én via USB-bridge — kortom: een compleet en verrassend krachtig bordje. Met 24.624 logic elements kun je tienduizenden TTL-achtige poorten opbouwen en complete 74xx-chips nabootsen.
Benodigdheden voor deze FPGA setup
Voor het programmeren van dit FPGA board gebruik ik:
– Trenz CYC1000 met Intel® Cyclone® 10 LP 10CL025-C8, 8 MByte SDRAM, 8 Mbyte Flash
– Quartus Prime Lite tool chain software
– USB-A <->Micro USB2 connector

Starten met Quartus Prime Lite
Tijd om de koe bij de horens te vatten. De toolchain (Quartus Prime Lite) is gratis en bevat alles: projectbeheer, synthese, place-and-route, timinganalyse, pin-assignment en de ingebouwde programmer. Ideaal voor een eerste kennismaking, maar het is wel écht een toolchain: je moet weten wat je doet. Je moet denken als hardware-ontwerper, niet als softwarebouwer — en dat kost even schakelen.


Eerste drempel: programmeren lukt eindelijk
Mijn eerste struikelblok was de Arrow USB-Blaster laten herkennen. Na wat compatibiliteitsgedoe en het wisselen van kabel werd hij eindelijk gedetecteerd. Toen ontdekte ik dat programmeren een soort tweetrapsraket is: compileren, flashen, converteren en nóg eens flashen. Toen dit eenmaal duidelijk was, besloot ik alles visueel te documenteren. Omdat Quartus talloze FPGA-families ondersteunt, moet je ook exact aangeven welke pin bij welk signaal hoort — anders knippert er helemaal niks.
De eerste ‘Blink’ werkt echt
De Trenz-documentatie helpt goed: stap voor stap instellen, 50 pagina’s lang. Na wat foutjes corrigeren kreeg ik uiteindelijk mijn eerste ‘Blink’ als ‘Hello World’ werkend. Daarna volgde een slow-counter op de 12 MHz klok, snelheid omhoog en omlaag, en even later knipperden alle acht LEDs. Toen kwam het mooie moment: een looplicht maken met een richting-bit. Uiteindelijk bouwde ik een Michael Knight (KITT) looplicht — en dat op pure logische poorten, zonder CPU. Mooi om te zien werken.



Terug naar mijn eerste soldeerbout
De logica zelf fascineert me enorm. Veertig jaar geleden soldeerde ik SN7400-chips op experimenteerprintjes en wire-wrap boards. Nu simuleert een chipje van 11×11 mm meer dan 26.000 van die poorten, realtime en volledig parallel. Dat raakt mijn nostalgie én mijn technische hart. Het lijkt qua gedrag zelfs op een PLC: voorspelbare logica, geen software-loop, geen runtime. Alleen is een FPGA vele malen sneller.
PLC versus FPGA in de praktijk
Een PLC voert software sequentieel uit, met een vaste scan-cyclus — overzichtelijk en industrieel betrouwbaar. Een FPGA bouwt fysieke logica in de chip zelf, 100% parallel. PLC’s zijn makkelijk te programmeren, gestandaardiseerd en ideaal voor machinebesturing. FPGA’s zijn razendsnel, flexibel en perfect voor custom logica, signaalverwerking en prototyping. PLC’s reageren in milliseconden, FPGA’s in nanoseconden. Het zijn twee totaal verschillende werelden, maar beide hebben hun eigen charme.


Eerste echte succesmoment
Mijn Knight-Rider animatie loodste me door de hele tool-chain. In top.v omschreef ik de logica, bouwde een slow-counter, implementeerde richtingslogica en liet de LEDs heen en weer lopen. Toen ik het resultaat op het bord zag oplichten, was dat echt zo’n maker-momentje: “Yes — dit heb ik dus helemaal zelf gebouwd.” De volgende stap wordt de accelerometer inlezen, en daarna I²C-sensoren en een OLED-display aansluiten.
Leren denken als hardware-ontwerper
Het werken met een FPGA dwingt me tot echt hardware-denken: parallelisme, timing, flipflops, LUTs, routing. De toolchain vraagt discipline, maar dat hoort erbij. VHDL en Verilog lijken op code, maar beschrijven in werkelijkheid de logica die fysiek in de chip komt. Het voelt eigenlijk als LEGO voor elektronica: bouwstenen, verbindingen, structuren. Je ziet precies hoe je ontwerp door Quartus verandert in echte hardware. Dat geeft een vorm van low-level controle die je met software nooit krijgt — en dat voelt geweldig.

Einde van deze eerste FPGA-ronde
Het CYC1000-board blijkt een superhandige krachtpatser. Soms even puzzelen, maar dat hoort bij het vak. Ik moest lachen toen ik ontdekte dat er “gewoon” al een accelerometer op zat — voelde als een gratis extraatje. Veel dingen die vanzelfsprekend zijn in microcontroller-land blijken in FPGA-land totaal anders te werken. Maar iedere stap levert concrete inzichten op die ik later weer nodig ga hebben — zeker richting high-speed sensoring en AI-edge ideeën. Eén ding is duidelijk: voor mij krijgt dit verhaal zeker een vervolg.
