Configureerbaar DSP-blok brengt floating point naar Altera-FPGA

Reading time: 4 minutes

Author:

Voor zijn nieuwe FPGA-generatie op 28 nanometer heeft Altera een nieuw type DSP-blok ontwikkeld met een instelbare databreedte. Andere belangrijke troef:  floating-pointvermenigvuldigingen.

De juiste balans tussen herconfigureerbaarheid en vastgelegde functionaliteit in FPGA‘s is lastig te vinden. Herconfigureerbaarheid is natuurlijk de kracht van de FPGA, maar komt met een zekere overhead ten opzichte van applicatiespecifieke hardware. FPGA-makers doorspekken hun programmeerbare silicium daarom met hardwareblokken als I/O- en geheugencontrollers, processorcores en DSP-blokken, die aanzienlijk efficiënter werken. Maar het is niet makkelijk om iedereen hierin tevreden te stellen. Wat voor de ene toepassing goed werkt, kan voor de andere de plank volledig misslaan.

Dit conflict speelt zich ook af binnen DSP-blokken. Traditioneel kunnen deze getallen van 18 bit met elkaar vermenigvuldigen. ’In de draadloosmarkt is tachtig tot negentig procent van de bewerkingen achttien bij achttien, maar in radar is dat maar vijftig procent, de andere helft is 18 bij 25. En bij video is alles weer achttien bij achttien of minder‘, vertelt Michael Parker van Altera. Hij was nauw betrokken bij de ontwikkeling van het nieuwe type DSP-blok voor Altera‘s nieuwe 28-nanometergeneratie.

Het resultaat is een exemplaar waarvan de databreedte instelbaar is, althans tot op zeker hoogte. Een blok kan worden opgedeeld in drie vermenigvuldigers van negen bij negen, twee van achttien bij achttien, een van 27 bij 27 of een van achttien bij 36. Ook kunnen DSP-blokken efficiënt aan elkaar worden geschakeld: vier blokken leveren een vermenigvuldiger op van 54 bij 54 bits. ’Je krijgt dus een hele reeks aan nauwkeurigheden die veel beter passen bij wat je nodig hebt‘, vertelt Parker. ’Niet traploos, maar wel met een groot aantal versnellingen in je versnellingsbak.‘

Maar voor niks gaat de zon op en flexibiliteit brengt transistoroverhead met zich mee. Volgens Altera is die echter zeer klein en wordt die makkelijk gecompenseerd door de besparingen uit de flexibiliteit. ’Als we tegenwoordig naar onze klanten gaan, dan vragen we niet alleen hoeveel vermenigvuldigers ze nodig hebben, maar ook naar de precisie. Als je de berekening dan doet, blijkt bijna altijd dat dat in significant minder hardware resulteert dan met vaste breedtes‘, aldus Parker.

Overtuigingskracht

Met de nieuwe DSP-architectuur introduceert Altera nóg een belangrijke troef: floating-pointvermenigvuldigingen in de DSP-hardware. ’Floating point is lastig in FPGA‘s vanwege de manier waarop de IEEE-notatie werkt‘, legt Parker uit. ’Daarom is 99 procent van de FPGA-markt fixed point. Wij en ook anderen hebben wel floating-pointfuncties op laag niveau in hardwareblokken, maar je hebt nog steeds veel routinghardware nodig vanwege inefficiënties in het formaat en voor normalisatie na een bewerking.‘

Dit probleem is te omzeilen via tooling: het bedrijf heeft de DSP Builder-tool die algoritmes vanuit Simulink direct vertaalt naar efficiënte FPGA-code. ’Aan de randen gebruiken we IEEE, maar intern hebben we ons eigen formaat. Hiermee kunnen we bijvoorbeeld vermenigvuldigers gebruiken in plaats van barrel shifters‘, ligt Parker toe. En de nieuwe DSP-blokken zijn groot genoeg om de bewerkingen aan te kunnen.

Deze aanpak is alleen beschikbaar voor een Simulink-gebaseerde beschrijving van het algoritme. ’Je hebt een hoogniveaubeschrijving van je algoritme nodig. Het zou monnikenwerk zijn om dit in Verilog of VHDL te doen‘, zegt Parker, die echter wel mogelijkheden ziet om het in de toekomst op te nemen in een C-gebaseerde flow.

Efficiënte floating-pointberekeningen openen de deur naar allerlei nieuwe toepassingsgebieden voor het herprogrammeerbare silicium. Bij Mimo-zendontvangtechnologie (multiple input, multiple output) is het overgrote deel van de bewerkingen bijvoorbeeld fixed point, maar er is ook een kleine matrixinversie nodig die veel makkelijker is uit te voeren in floating point. ’Er zijn ook low-end applicaties die van floating point kunnen profiteren. Bij motoren gebruik je een PID-controleloop met een lage snelheid, typisch rond de vijfhonderd kilohertz. Je zou dus een goedkope FPGA kunnen gebruiken. Maar je hebt een heel groot dynamisch bereik nodig‘, geeft Parker als voorbeeld. Bovendien kun je ook nadenken over andere precisies dan enkel of dubbel die de IEEE-standaard voorschrijft. Deze twee nauwkeurigheden zijn gekozen om aan de databreedtes van processoren tegemoet te komen, maar FPGA‘s hebben daar geen boodschap aan. Een tussenoplossing is dus best mogelijk.

Parker beseft dat het nog wel flink wat overtuigingskracht zal vergen om de feature aan de man te brengen. ’Omdat deze efficiënte floating point zo nieuw is, zijn mensen sceptisch. We werken nu met een onafhankelijke derde partij om dit te benchmarken.‘

Defensie-industrie

Naast de Simulink-route ondersteunt Altera het programmeren van de DSP-blokken ook op de traditionele manieren, zij het zonder de efficiënte floating-pointimplementatie. Verschillende megafuncties zijn beschikbaar en via de Quartus-tooling kan het DSP-blok worden geselecteerd en geconfigureerd. Om het direct kloppen van Verilog- of VHDL-code te vereenvoudigen, levert Altera codevoorbeelden mee die de synthesesoftware gegarandeerd op de juiste manier mapt naar de DSP-blokken. Gebruikers kunnen deze templates kopiëren en direct in hun code gebruiken of eventueel nog een beetje aanpassen.

De nieuwe DSP-blokken hebben op de high-end Stratix-lijn een speciale efficiënte 18-bij-25-modus voor FFT-filters – een belangrijke toepassing in de lucratieve defensie-industrie. De Arria- en Cyclone-lijnen komen de draadloosmarkt tegemoet met een extra terugkoppelregister en vermenigvuldiger in de DSP-blokken, zodat twee onafhankelijke DSP-filterkanalen in één blok gezet kunnen worden voor efficiënte FIR-filters.