Nieuwe ontwikkelingen maken FPGA’s bruikbaar voor iedereen

o26-technologie-fpga

FPGA’s zijn de werkpaarden van de embedded systemen. Ze zijn flexibel, want telkens opnieuw programmeerbaar. Ze zijn voor steeds meer toepassingen te gebruiken. Hun prijs blijft gelijk of daalt zelfs. En dankzij toegankelijke programmeertalen is het gebruik niet langer voorbehouden aan logica-specialisten.

Artikel uit Objective 26, 2016 - ook beschikbaar in pdf

FPGA’s krijgen steeds meer mogelijkheden en rekenkracht aan boord bij een stabiele prijs. Dat maakt ze aantrekkelijk voor een bredere doelgroep en voor een groeiend aantal toepassingen. Low-end FPGA’s zitten tegenwoordig al in massagoederen, zoals tv’s, vanwege hun flexibiliteit. Een producent kan daarmee makkelijk nieuwe features aan zijn product toevoegen en hoeft daar geen nieuwe chip voor te maken. Voorheen gebruikten fabrikanten ASIC’s voor deze toepassingen: een op maat gemaakt IC, waarvan de functionaliteit ligt vastgebakken in silicium. Daarentegen is de functionaliteit van een FPGA eenvoudig aan te passen. Waar de ASIC specifiek wordt gemaakt voor een tv past die ene FPGA misschien wel in een tv, een wasmachine én een audioset.

Wat is een FPGA?
Een FPGA is een chip die je kunt programmeren. Je kunt een FPGA vullen met logische schakelingen zoals je een cd-r kan vullen met muziek of data. De schakelingen van de pc-processor liggen onveranderlijk vast op de chip. Op een FPGA kun je als gebruiker zelf aangeven welke digitale schakelingen je op de chip wilt hebben (logische poorten, zoals AND, OR, en NOT). Met die logische poorten kun je uiteindelijk ook weer een processor maken. Een FPGA is daarmee dus ‘flexibeler’ in wat je kunt maken. Bovendien kun je het ontwerp naderhand nog aanpassen (zoals je een cd-rw opnieuw kunt beschrijven).

Imago van complexiteit

Maar er hangt ook een aura van complexiteit rond deze programmeerbare logica-chips. Het programmeren van een FPGA vergt specialistische kennis. Het is toch echt wat anders dan het schrijven van een computerprogramma. Waardoor veel bedrijven denken “FPGA’s, da’s niks voor mij.” Fabrikanten van FPGA’s zijn zich bewust van deze drempel en ontwikkelen gereedschappen om het programmeren te vereenvoudigen en zo een grotere doelgroep te bereiken. Met deze gereedschappen verschuift het FPGA-programmeren naar software programmeren. Zo kan een softwareprogrammeur vanuit zijn denk- en werkwijze een probleem vastleggen, waarna gereedschappen dat omzetten naar FPGA-code. Dit toenemende gebruiksgemak bespreken we later nog. We kijken nu eerst naar de technische ontwikkelingen in FPGA’s. Deze chips volgen dezelfde lijn als de rest van de chipindustrie: elke generatie kan meer, tegen gelijke of lagere prijs. Maar FPGA’s zijn toch ook een buitencategorie chips met hun eigen dynamiek, waarbij sommige ontwikkelingen vooral de prijs drukken en andere ontwikkelingen de prestaties stuwen.

Battle of the fabs

Marktleiders Altera en Xilinx hebben geen eigen waferfab om hun FPGA’s te produceren. Sinds jaar en dag zitten beide bedrijven bij TSMC voor hun productie. Altera is recent gefuseerd met Intel en gaat haar high-end producten in de fabriek van Intel laten maken. Een interessante stap, omdat de verschillende productieprocessen tot grotere verschillen leiden tussen de high-end devices van beide leveranciers. Uiteraard claimen beide partijen het beste te kunnen bieden met ‘hun’ fabriek. We zullen binnenkort gaan zien hoe dit uitpakt. Voor de low-end devices blijven beide partijen bij TSMC, waar ze ook niet de nieuwste productieprocessen zullen volgen vanwege de hoge R&D-kosten.

Chips aan elkaar plakken (2,5D of 3D)

Een FPGA bevat een heleboel verschillende onderdelen die tot voor kort allemaal met hetzelfde productieproces werden gemaakt. Immers, dat is de essentie van een IC: een geïntegreerd circuit. Maar voor een high-speed transceiver heb je andere technologie nodig dan voor geheugen. Door de belangrijkste onderdelen op aparte chips te fabriceren, kun je voor elk onderdeel de beste procestechnologie kiezen en zo de hoogste prestaties voor elk onderdeel halen. De losse chips worden vervolgens op chipniveau met elkaar verbonden en afgemonteerd in één behuizing (package). Dankzij die samenstelling van losse chips ben je veel flexibeler. Je zou zelfs zover kunnen gaan dat je klanten zelf hun FPGA laat samenstellen: zoveel I/O, zoveel transceivers, zoveel geheugen, etc.

o26-technologie-fpga-2

Snelheidswinst met gestapelde chips

Deze chip-op-chip plaktechniek (ook wel 2,5D of 3D genoemd) is ook nog eens een manier om snelheid te winnen. De signalen hoeven niet meer via bedrading en PCB naar de volgende chip. Ze gaan nu direct van de ene chip naar de andere chip, op hoge snelheid en met grote bandbreedtes. Voor snelle geheugentoegang wordt de geheugenchip direct op de FPGA-chip gezet. De geheugenchips zelf worden ook een stuk sneller met deze chip-op-chip stapeltechniek. Eén van de veelbelovende opvolgers van het huidige DDR4-geheugen heet Hybrid Memory Cube (HMC) en stapelt geheugenchips op elkaar om zo veel snellere dataverbindingen te maken. De compacte HMC-geheugens zijn een factor 15 sneller dan DDR4 en gebruiken tot 70% minder energie. De verwachting is dat we HMC zeker in FPGA-designs gaan terug zien.

Dure doosjes

De bandbreedte van een high-end FPGA haalt tegenwoordig wel een Tbit/s. Dat is alsof je in krap tien seconden een complete harde schijf van een TB leeg trekt (of 25 dvd’s per seconde). Die snelheid heeft een keerzijde, want uiteindelijk moeten de signalen van de chip af naar de buitenwereld. De chips worden aangesloten en afgemonteerd in een handzame en degelijke behuizing: een package. Bij deze snelheden luistert het ontwerp van de package zeer nauw om de signalen nog fatsoenlijk naar binnen en buiten te krijgen. Dit drijft de prijs van een package op, dus bij het kiezen van een device moet je ook goed kijken in welke package je hem wilt hebben.

FPGA SOC

FPGA’s worden vaak samen met een processor gebruikt. Een FPGA is goed in het parallel verwerken van grote hoeveelheden data. En een processor is goed in sequentiële of random bewerkingen. Fabrikanten spelen daarop in door een hardware processor bij de FPGA in te bouwen. Een dergelijke combinatie heet een FPGA System on Chip (SoC). De gebruiker kan een besturingssysteem op de processor zetten en daar gewone software op programmeren. Zo heeft hij het beste uit twee werelden. In het verleden hadden alleen sommige high-end FPGA’s een hardware processor aan boord. Tegenwoordig zien we ook in de low-end FPGA’s een hardware processor opduiken. Het zijn volwaardige (ARM-)processors die we vrij recent nog vonden in onze telefoons en geschikt zijn om een complete desktop-omgeving te draaien. Overigens kun je ook met FPGA-code een processor bouwen en dat noemen we een softcore. Technolution heeft een eigen softcore gebouwd voor safety en security toepassingen.

Door de fusie van Altera met Intel komt een volgende stap in zicht: Intel processors die een stuk FPGA-technologie aan boord hebben om bepaalde rekenactiviteiten te versnellen. Het zou een significante boost kunnen geven aan de inzet van programmeerbare logica in allerhande rekenintensieve pc-applicaties. Daarmee komen we wel terug bij de kernvraag waar alle FPGA-partijen mee worstelen: hoe ga je die FPGA-technologie toegankelijk maken? Want er is maar een beperkte groep mensen die op FPGA’s kan programmeren. Daar kan hogere niveau synthese helpen, zoals HLS en OpenCL.

RISC-V softcore
Wij ontwikkelen met RISC-V een eigen softcore voor safety- en securitytoepassingen. RISC-V is een breed gedragen open-source processor architectuur als alternatief voor ARM, MIPS en Intel. Dankzij het open-source karakter kan iedereen zijn eigen hard- of softcore maken. Zo kun je de softcore een-op-een overzetten naar een andere FPGA.

Lees meer over dit onderwerp in dit artikel uit Bits & Chips.

Doelgroep vergroten met toegankelijke gereedschappen

Xilinx en Altera ontwikkelden methodes om het programmeren van FPGA’s te vergemakkelijken met een hogere programmeertaal. Hiermee kan de gebruiker zijn ontwerp in een hogere abstractievorm maken, waarna de gereedschapset het ontwerp omzet in FPGA-code. De strategie van beide bedrijven verschilt wel een beetje. Altera heeft initieel gekozen voor OpenCL; een taal die door een consortium van bedrijven wordt ondersteund. OpenCL wordt gebruikt om parallelle berekeningen uit te voeren op grafische processors (GPU’s). Daarmee zet Altera in op de markt voor insteekkaarten voor pc’s om zo een alternatief te bieden voor de industriële GPU-markt. Een FPGA is niet altijd heel veel sneller dan een GPU, maar wel een factor tien zuiniger. Als je daar een heel datacenter mee moet inrichten is dat een serieuze overweging.

Xilinx zette initieel vooral in op standalone systemen en biedt het gereedschap Vivado HLS. Hiermee kan een softwareprogrammeur een deel van zijn programma omzetten naar FPGA-code, zonder verdere kennis te hoeven hebben van FPGA’s. Inmiddels heeft Xilinx ook een OpenCL-oplossing en we zien Altera ook support gaan bieden voor standalone systemen.

Het geschikt maken voor software programmeurs heeft wisselend resultaat. Want zowel bij HLS als OpenCL moet de gebruiker enige kennis hebben van de onderliggende architectuur om te weten hoe je er de maximale performance uit haalt. Beide bedrijven streven naar meer toegankelijkheid. Hoewel de startpunten verschillen, zien we de concurrenten naar elkaar toe schuiven met het bedienen van zowel pc-insteekkaarten als embedded applicaties.

Wat betekenen deze ontwikkelingen voor de gebruiker

Als FPGA’s meer gebruiksgemak krijgen, worden ze ook voor onze klanten toegankelijker. De klant krijgt zijn basisplatform met FPGA’s waarna hij zelf in de praktijk zijn algoritmes kan vernieuwen. Hiermee is de klant in staat om zelf verbeteringen of nieuwe functionaliteit aan zijn product toe te voegen zonder diepgaande kennis van programmeerbare logica of FPGA’s. In steeds meer nichemarkten wint de FPGA het van de ASIC op prijs en performance, omdat het te kostbaar is om voor deze nichemarkten de ASIC’s in de nieuwste productieprocessen te maken. Voor Technolution betekent dat ook dat we op steeds meer plekken FPGA’s kunnen gebruiken. Dat biedt voor ons en onze klant veel meer mogelijkheden, nu en in de toekomst.

Contact:

Gerelateerde items

Veiligheid dankzij open source processorarchitectuur RISC-V

Lees verder

Publicatie

Vertrouwen in autonome processen - systems of systems

Lees verder

Publicatie

Smart Cable Guard voorspelt kabelstoringen op afstand

Lees verder

Publicatie

Industriële machines worden complexer én eenvoudiger

Lees verder

Publicatie