Samenvatting Field programmabale gate arrays (FPGA’s) zijn heel aantrekkelijk als ontwerpplatform voor digitale systemen. FPGA’s zijn ge¨ıntegreerde schakelingen die geprogrammeerd of geconfigureerd kunnen worden nadat ze geproduceerd zijn. Door een FPGA te configureren, kan deze het gedrag vertonen van om het even welke digitale schakeling. Zoals ook elke digitale schakeling kan gebouwd worden als een ASIC (Application Specific Integrated Circuit). Door hun flexibiliteit zijn FPGA-implementaties een aantrekkelijk alternatief voor ASIC-implementaties met een kleine oplage, omdat de NRE-kost en dus het economisch risico voor FPGA’s veel lager ligt dan voor ASIC’s. Voor FPGA’s moeten namelijk geen dure maskers geproduceerd worden zoals het geval is voor ASIC’s. Verder kan het ontwerp op een hoger niveau gebeuren door de beschikbaarheid van goede ontwerpsoftware en eenvoudige verificatie. Daarenboven wordt de time-to-market verkort omdat het ontwerp de flexibiliteit van de FPGA overerft en het ontwerp dus kan aangepast worden na verkoop. Natuurlijk is de flexibiliteit van een FPGA niet kosteloos. Een FPGA-implementatie zal altijd meer chipoppervlak verbruiken, een lagere prestatie hebben en meer vermogen verbruiken dan zijn ASIC-tegenhanger. Dynamische herconfiguratie. Dit laatste is vooral het geval wanneer statische configuratie van de FPGA gebruikt wordt. Bij statische configuratie wordt de FPGA enkel geconfigureerd wanneer het systeem wordt aangezet. Daarna wordt de configuratie niet meer veranderd. Het is echter mogelijk om de configuratie van een FPGA te wijzigen tijdens de werking. Deze techniek heet Dynamische Herconfiguratie. Dynamische herconfiguratie maakt het mogelijk verschillende functionaliteiten die niet gelijktijdig worden gebruikt te multiplexen in de tijd. Op een ASIC, zou elk van deze functiov
naliteiten ge¨ımplementeerd worden in een apart gebied van de chip dat een groot deel van de tijd zou stil liggen, omdat slechts een van de functionaliteiten nodig is op elk moment. Omdat de functionaliteiten nooit gelijktijdig gebruikt worden, kan op een FPGA, met behulp van dynamische herconfiguratie, hetzelfde gebied gebruikt worden voor al de functionaliteiten. Wanneer een andere functionaliteit nodig is, kan deze functionaliteit eenvoudig ingeladen worden in het gebied. Aangezien de ASIC-chipoppervlakte groeit met het aantal functionaliteiten, terwijl de FPGA-oppervlakte constant blijft, kan door gebruik te maken van dynamische herconfiguratie de oppervlakte-effici¨entie verbeterd worden. Er is zelfs een punt waar de oppervlakte-efficientie van de FPGA de oppervlakte-effici¨entie van de ASIC overstijgt. Dit zou het geval kunnen zijn voor toepassingen als software defined radio. Hoewel FPGA’s in principe al sinds hun ontstaan, in de jaren 80, kunnen geherconfigureerd worden, wordt dynamische herconfiguratie nog nauwelijks toegepast buiten het laboratorium. Dit komt door de hogere complexiteit van het ontwerp en de zeer beperkte software-ondersteuning. Deze doctoraatsthesis heeft als doel om dynamische herconfiguratie uit het onderzoekslaboratorium te halen en het gebruik ervan mogelijk te maken in de echte wereld, waar krappe budgetten het ontwerpen op een laag ontwerpsniveau niet toelaten en software-ondersteuning dus absoluut noodzakelijk is. Ik concentreerde mij op een veelbelovende vorm van dynamische herconfiguratie, namelijk Dynamische Circuit-specialisatie (DCS), waarvoor tot nu toe geen software-ondersteuning beschikbaar was. Bij conventionele dynamische herconfiguratie, die ik Configuration Swapping noem, is het mogelijk om te wisselen tussen een beperkte verzameling van discrete functionaliteiten. Bij DCS daarentegen, wordt de configuratie van de FPGA gespecialiseerd voor specifieke parameterwaarden, wat niet mogelijk is met configuration swapping. Het toepassingsdomein wordt dus uitbreid. Voorheen moesten DCSimplementaties zonder software-ondersteuning vervaardigd worden op het niveau van de FPGA-architectuur. Dit impliceert een grote ontwikkelingstijd door zeer gespecialiseerde ontwikkelaars en is dus erg duur. In dit werk, beschrijf ik een methodologie die het ontwerp van DCS-systemen naar het RT-niveau tilt en de verdere verfijning automatiseert. De automatisch gegenereerde DCS-systemen vi
hebben een kwaliteit die vergelijkbaar is met die van systemen die handmatig werden gerealiseerd op het architecturaal ontwerpsniveau. Door het ontwerpsniveau naar het RT-niveau te tillen worden de ontwikkelkosten van het DCS-systeem sterk gereduceerd. Dynamische Circuit-specialisatie is een techniek die het mogelijk maakt een FPGA-configuratie dynamisch te specialiseren voor de waarden van een aantal parameters. Het algemene idee van DCS is dat elke keer dat de parameters van waarde veranderen, de FPGA geconfigureerd wordt met een configuratie die gespecialiseerd is voor de nieuwe waarden van de parameters. Aangezien gespecialiseerde configuraties kleiner en sneller zijn dan hun generieke tegenhangers, is de hoop dat de implementatie van het volledige systeem effici¨enter wordt door het gebruik van DCS. De belangrijkste uitdaging bij het bouwen van een DCS-systeem is het feit dat de gespecialiseerde configuraties snel moeten worden gegenereerd tijdens de uitvoering van het systeem en dat deze configuraties tegelijkertijd van goede kwaliteit (grootte en snelheid) moeten zijn. Anders zal de effici¨entie van een DCS-implementatie lager zijn dan de effici¨entie van de klassieke implementatie. Geparametriseerde configuraties. De technieken voor het snel genereren van gespecialiseerde configuraties die in dit werk beschreven worden, zijn allen gebaseerd op het nieuwe concept van Geparametriseerde Configuraties. Dit zijn meerwaardige Boolese functies die de gespecialiseerde FPGA-configuratie uitdrukken als een functie van de parameterwaarden. Zodra een geparametriseerde configuratie gevonden is, houdt het genereren van een gespecialiseerde configuratie voor een bepaalde parameterwaarde niet meer in dan het evalueren van de geparametriseerde configuratie voor die parameterwaarde. Deze configuratie kan vervolgens gebruikt worden om de FPGA te herconfigureren. Het is belangrijk om hier op te merken dat, in tegenstelling tot het genereren van een FPGA-configuratie met conventionele methodes, het evalueren van een geparametriseerde configuratie niet NP-compleet is. Het nieuwe concept van een geparametriseerde configuratie vormt de basis van dit proefschrift, maar een grote uitdaging is het genereren van een geparametriseerde configuratie startende vanuit een RT-niveau beschrijving van de generieke functionaliteit die moet worden ge¨ımplementeerd. De beschrijvii
ving wordt een geparametriseerde HDL-beschrijving genoemd. Een geparametriseerde HDL-beschrijving is een normale HDLbeschrijving waarin een onderscheid wordt gemaakt tussen reguliere ingangen en parameteringangen. In dit werk, beschrijf ik twee methodes die automatische generatie van geparametriseerde configuraties mogelijk maken vanuit een geparametriseerde HDLbeschrijving. De methodes maken gebruik van dezelfde stappen als de methodes die gebruikt worden voor het genereren van conventionele FPGA-configuraties: synthese, technology mapping, plaatsing en routering. TLUT-methode. De eerste methode wordt de TLUT-methode genoemd. In de geparametriseerde configuraties geproduceerd door de TLUT-methode worden alleen de configuratiebits van de waarheidstabellen uitgedrukt als een Boolese functie van de parameterwaarden. Alle andere configuratiebits zijn statisch. Alleen de LUT’s herconfigureren kan leiden tot zeer snelle herconfiguratie, maar aan de andere kant zal dit niet altijd leiden tot de meest compacte implementatie. Voor de TLUT-methode moet enkel de technology mapping sterk aangepast worden. In dit proefschrift geef ik een gedetailleerde beschrijving van een aangepaste technologie mapper genaamd TMAP. TMAP is een nieuwe technology mapper die een circuit van logische poorten afbeeldt op een circuit van Tunable LUT’s (TLUTs). In plaats van een statische waarheidstabel, hebben deze LUT’s een waarheidstabel die wordt uitgedrukt als een Boolese functie van de parameters. Ik toon aan dat TMAP even goed schaalt als conventionele LUT-mappers en dat de complexiteit van de evaluatie van de waarheidstabellen lineair schaalt met de grootte van het logische circuit waarvan vertrokken wordt. Naast de theoretische TLUT-methode, heb ik tevens een aantal praktische implementaties gemaakt die zich richten op commerci¨ele FPGA’s, in mijn geval de Xilinx Virtex-II Pro. Deze implementaties tonen aan dat DCS niet alleen in theorie mogelijk is, maar ook in de praktijk, met commercieel beschikbare FPGA’s. TCON-methode. Voor een tweede methode, heb ik de eerste stappen gezet naar het genereren van geparametriseerde configuraties waarin ook de routeringsbits van de FPGA worden uitgedrukt als een functie van de parameters. Deze methode heet de TCONviii
methode. Voor bepaalde toepassingen, kan het herconfigureren van interconnecties leiden tot verdere vermindering van de vereiste FPGA-middelen, verhoging van de prestatie en het verlagen van het energieverbruik. Aan de andere kant heeft dit als nadeel dat de herconfiguratie meer tijd kan vergen omdat er meer bits moeten geherconfigureerd worden, en in tegenstelling tot de bits van de waarheidstabellen, zijn deze bits willekeurig verspreid in de configuratie-geheugenruimte. De TCON-methode vereist drastische veranderingen aan zowel de technology mapper, de plaatser en de routeerder. De fundamentele verandering in de TCON-methode is de vervanging van het net, een interconnectie met een bron en meerdere doelen, met de Tunable Connection (TCON). Een TCON heeft een aantal bronnen en een aantal doelen en zijn parameteringangen bepalen hoe deze doelen en bronnen met elkaar verbonden zijn. De technology mapper moet het logisch circuit nu afbeelden op een mengsel van TLUT’s en TCON’s en de routeerder moet nu TCON’s routeren in plaats van netten. Dit werk bevat een schets van een TCON technology mapper en een volledig ge¨ımplementeerde TCON-routeerder, de pattern router. De pattern router werd gebruikt om grote herconfigureerbare schakelnetwerken te implementeren met veelbelovende resultaten op het gebied van de gebruikte FPGA-middelen en de prestatie. Behalve de pattern router bevat dit werk ook een beschrijving van een andere, beter schaalbare TCON-routeerder, de Connection Router genaamd. Samengevat toont dit werk aan dat het ontwerp van DCSsystemen naar een hoger abstractieniveau, met name het RT-niveau, getild kan worden, zonder afbreuk te doen aan de kwaliteit van de uiteindelijke implementatie en dat dit kan worden gedaan voor commercieel verkrijgbare FPGA’s. Op deze manier wordt de toepasbaarheid van FPGA’s en meer specifiek die van dynamische herconfiguratie uitgebreid.
ix