Diensten

As easy as it gets

Wat is een FPGA (Field programmable gate array)?

Een FPGA is een elektronische chip zoals een microcontroller, maar met een andere interne structuur. Een FPGA bestaat uit een grote hoeveelheid eenvoudige configureerbare cellen (AND, OR, register, multiplier, RAM, …), verbonden door een gigantische hoeveelheid programmeerbare verbindingen. De hardware is dus programmeerbaar, terwijl bij een microcontroller de hardware grotendeels vastligt en de functie in software bepaald wordt. Het voordeel is dat een FPGA enorm veel bewerkingen tegelijk kan doen, in cellen die elkaar niet storen. Het nadeel is een doorgaans iets lagere kloksnelheid en een hogere kostprijs omwille van de tragere programmeerbare verbindingen.

Daarom heeft een FPGA slechts de voorkeur boven een microcontroller als die laatste de taak niet aankan. Oorzaken zijn vaak een tekort aan interfaces (bvb honderd PWM uitgangen of seriële poorten), niet beschikbare, zeer specifieke interfaces of een gebrek aan rekenkracht voor repetitieve taken (bvb JPEG decompressie). Het is perfect mogelijk om een microcontroller-kern in de FPGA te voorzien, zodat een deel van de taak in software kan uitgevoerd worden.

Het ontwerpproces van een FPGA bestaat in grote lijnen uit volgende stappen:

1. Specificatie: wat moet het doen, is een microprocessor een betere oplossing, wat mag het kosten?

2. Ontwerp in VHDL, dat is een ontwerptaal voor FPGA en ASIC, lijkt van ver een beetje op C, maar bevat uiteraard vele accenten die specifiek op hardware ontwerp toespitsen. Initiële verificatie gebeurt in een simulator, waarin de werkelijke gebruiksomstandigheden van de modules zo goed mogelijk nagebootst worden.

3. Compilatie naar de FPGA, dat gebeurt in software die specifiek is aan de FPGA leverancier. De VHDL code wordt omgezet in een programmeerpatroon voor de FPGA. Meteen wordt ook geverifieerd of de hardware aan de gewenste klokfrequentie betrouwbaar kan werken.

4. Monteer de FPGA op een PCB. FPGA’s bestaan in vele afmetingen en behuizingen. Ze moeten ook voorzien worden van de correcte voedingsspanningen en interface-signalen. PCB ontwerp of assistentie kunnen wij ook voorzien.

5. Test in hardware. Hier wordt het ontwerp uitgebreid getest in de reële gebruiksomgeving. Vaak levert dit nog onvolkomenheden op die in simulatie niet naar voren kwamen. Enkele iteraties over stappen 2-3 zijn gebruikelijk, soms moet ook stap 1 nog eens bekeken worden als de grenzen van het mogelijke overschreden worden.

5. Net zoals software hoeft het ontwerp niet bevroren te worden, wijzigingen zijn ook tijdens de levensduur van een ontwerp nog mogelijk. FPGA’s kunnen vaak geherprogrammeerd worden, zelfs tot bij de klant als een digitale verbinding ter beschikking is.

FPGA-engineering kan U helpen bij alle stappen van het ontwerpproces. Neem gerust contact op, en we bekijken samen of we van Uw idee een product kunnen maken.