Dagens FPGA-kretsar närmar sig gårdagens grindmatriser. Det gäller grindantalet, verktyg såväl som konstruktionsmetodik.Den snabba kiselutvecklingen flyttar fram gränserna för vad som är möjligt att göra i en FPGA-krets. Kretsarna har blivit oerhört mycket större de sista åren, och redan nu finns exemplar med en halv miljon systemgrindar. Samtidigt sjunker priserna raskt för kretsar i mer modesta storlekar. Idag kan man därför använda FPGA-kretsar där det inte varit tänkbart för bara några år sedan.
Men FPGA-kretsarnas trumfkort är fortfarande korta ledtider, och därför gäller det att inte sjabbla bort produktiviteten i takt med att grindantalet ökar. FPGA-konstruktörernas arbetsgång närmar sig därför asickollegornas. Ett uppenbart exempel är att hårdvarubeskrivande språk som VHDL och Verilog samt syntes i det närmaste är en självklarhet när grindantalet räknas i tiotusental.
En annan viktig aspekt rör verifiering. En asickonstruktör gör sitt yttersta för att verifiera både funktion och timing innan kretsen släpps till tillverkning. Fallerar kretsen tar en ny vända flera månader plus att kiselleverantören vill ha nya engångskostnader i miljonkronorsklassen. För FPGA-konstruktören är det inte lika kinkigt. Fungerar inte kretsen kan man alltid bränna en ny, och traditionellt sett har simulering därför inte varit så populärt. Den inställningen är inte gångbar när antalet grindar skjuter i höjden. Komplexiteten blir helt enkelt för hög, och det tar för lång tid att fånga alla fel på kisel.
- Man måste simulera. Det är vansinne att försöka hitta alla fel i labbet, säger Kent Wallenrud, konsult med gedigen erfarenhet på området - de senaste 10 åren har han utvecklat nästan 50 FPGAer.
Simulering är standardFunktionell simulering före syntes hör därför till standardflödet numera. Men många nöjer sig fortfarande med statisk timinganalys efter placering och ledningsdragning - simulering med återmatade (backannoterade) tider är inte lika vanligt som vid asickonstruktion.
En annan intressant trend gäller antalet personer som är inblandade i en konstruktion. Det blir allt vanligare att ett antal konstruktörer delar på en FPGA. Annars har FPGA-användaren ofta ensam gjort såväl logisk konstruktion som placering- och ledningsdragning. Inom asickonstruktion har det däremot länge varit vanligt att ett team gör den logiska konstruktionen. Nu börjar det dyka upp verktygsstöd även för FPGA-team. Ett exempel är CPLD-leverantören Alteras nylanserade verktygssvit Quartus som utnyttjar en objektorienterad databas som projektmedlemmarna kan nå via ett nätverk.
Ytplanering - floorplan - är ett annat fenomen som lånats från asicmetodiken. Med ett verktyg för ytplanering kan konstruktören styra hur logiken placeras på kislet.
- Floorplan behövs absolut när kretsarna närmar sig 100 000 grindar. Då får man bättre timing och kortare place and rout-tider, säger Kent Wallenrud.
Ytplanering av kretsarFPGA-leverantören Xilinx är ett exempel på företag som erbjuder ytplanering av kretsar av det egna fabrikatet. Under året blev verktygsleverantören Synplicity först med ett kretsoberoende ytplaneringsverktyg för programmerbar logik.
När det gäller att välja syntesverktyg kan man konstatera att FPGA- och asicvärlden skiljer sig åt. Medan asicsyntesmarknaden länge dominerats av Synopsys, så är FPGA-fältet mer utspritt. Förutom kretsleverantörernas egna kretsspecifika synteserbjudande så kan man välja ett verktyg från exempelvis Synplicity, Exemplar, Orcad, Veribest eller Synopsys. Och valet är viktigt - syntesverktyget påverkar i allra högsta grad såväl timing som yta. För att få ett bra resultat måste verktyget vara anpassat för den kretsarkitektur man tänkt använda. Det måste ha detaljerad kunskap om kretsens logik, ledningsdragning, minnen, klockor, buffrar och in-och-utgångar.
- Man ska inte kompromissa om verktyg. Om man menar allvar med sin produkt så gäller det att leta upp det bästa verktyget på marknaden och köpa det. Känns det dyrt kan man jämföra med vad personalkostnaden blir för en extra månad, säger Kent Wallenrud.
Trots alla likheter mellan FPGA- och asickonstruktion kvarstår dock en fundamental skillnad. Medan FPGA-användaren själv implementerar konstruktionen med hjälp av kretsleverantörens verktyg för placering och ledningsdragning, så lämnar asicleverantören oftast sin syntetiserade nätlista till asicleverantören som gör fysisk konstruktion såväl som tillverkning.
Charlotta von Schultz