Han menar att tillämpningen bör avgöra vilken FPGA som passar bäst att använda i slutänden, en från Xilinx eller en från Altera.
Idealet är att först analysera konstruktionen och sedan välja krets helt utifrån vilka resurser som behövs i form av olika mjuka och hårda makron, olika IP-block, olika minnesarkitektur och så vidare. Själva koden skiftar däremot inte mellan FPGA-fabrikaten, vilket gör övergången relativt enkel. Och investeringen i nya verktyg kan betala sig om man får en mer optimal och därmed billigare lösning.
- De flesta dyra verktyg som VHDL-verktyg, simulatorer och syntesverktyg, är rätt generella. Billigare verktyg som "place and route" är däremot specifika och måste bytas ut.
Tänk över fpga-valet
Ett företag som ska använda en FPGA för första gången kan å andra sidan tjäna på att ta hänsyn till vilka andra produkter som det kan tänkas använda FPGAer i framöver. För till syvende och sist är allt en prisfråga. Och stora volymer kan ge det mest fördelaktiga priset även om man kanske tvingas överdimensionera i någon viss produkt.
Amerikanska Berkley Design Technology (BDTI), vars affärsidé är att hjälpa företag att välja rätt DSP-lösning, kom med rapporten "FPGA for DSP" under förra året.
I rapporten pekar BDTI på flera skillnader i Xilinx och Alteras arkitekturer värda att betrakta utifrån DSP-perspektivet. Speciellt intressant är det att studera variationer i de två företagens hårda realiseringar, då dessa inte förändras lika ofta som programvaror och utvecklingsverktyg.
Minnesarkitekturen är ett exempel på detalj som skiljer stort mellan företagens kretsar med speciellt DSP-fokus. Altera har tre olika storlekar på minnesblocken i Stratix-familjen, medan Xilinx kretsar i Virtex Pro-familjen har en.
Logik som minne
Altera har ett stort antal små minnen som rymmer 512 bitar, färre antal minnesblock som rymmer 4 kbit samt än färre block om 589 824 bitar. Xilinx olika minnesblock rymmer 18 kbit. Den totala mängden inbyggt minne skiljer däremot inte nämnvärt mellan en Stratix-krets och en Virtex Pro i samma prisklass.
Mängden utspridda småminnen i Stratix ger en hög minnesbandbredd, vilket är attraktivt i DSP-tillämpningar som ju vanligtvis är dataintensiva. Slutsatsen är att Alteras arkitektur ger högre minnesbandbredd än Xilinx förutsatt att man enbart utnyttjar det inbygga minnet.
Men så enkelt är det inte för Xilinx stöder något som kallas distribuerat RAM. Det innebär att den LUT-baserade (look-up-table) rekonfigurerbara logiken kan användas för att skapa ytterligare minneskapacitet.
En LUT ger 16 minnespositioner. Genom att använda ett antal logikblock som små utspridda minnen går det att öka minnebandbredden på chipset drastiskt. Samma möjlighet finns inte hos Stratix arkitektur, som också är LUT-baserad men skiljer helt på minne och logik.
- Xilinx arkitektur passar bättre än Alteras där det distribuerade minnets dubbelnatur kan användas i sin egenskap av shiftregister som platshållare till delresultat. Det kan vara i interpolering, decimering, halvbandsfilter och multikanalfilter, säger Tryggve Mathiesen på Tietoenator.
Ytterligare en skillnad i arkitekturerna är att Xilinx största Virtex Pro-kretsar innehåller fler hårda multiplikatorer än Alteras största Stratix-kretsar. Tillämpningar som kräver intensiv multiplicering kan dra fördelar av många hårda multiplikatorer.
Flexibla dsp-block
Från ett DSP-perspektiv är emellertid Stratix inbyggda DSP-block också mycket intressanta. Varje block kombinerar multiplikatorer, adderare, subtraherare, ackumulatorer och register. Ett block kan fungera som en eller flera multiplikatorer, två eller fyra multiply-adder eller upp till två multiply-accumulate.
- DSP-blocken är flexibla och kan arbeta upp till 300 MHz, eftersom det finns inbyggda register på in- och utgångarna. I praktiken skulle jag vilja påstå att ett DSP-block motsvarar åtta stycken multiplikatorer hos Xilinx, säger Patrik Norrgård på Altera.
DSP-blocken ger med största sannolikhet högre prestanda än vad som går att uppnå med hårda multiplikatorer kombinerat med konfigurerbar logik. Det förutsätter dock att tillämpningen kan utnyttja blockets funktionalitet och inte bara delar av det, som exempelvis vid ren multiplikation.
En FPGA signalbehandlar snabbare än en DSP
Anna Wennberg