En FPGA med dubbla Armar
Stoppa in två hårda Cortex A9-kärnor, ett stycke programmerbar logik, diverse olika periferifunktioner och massvis med in- och utgångar på samma krets. Resultat blir Zynq, en helt ny familj som Xilinx hoppas ska locka konstruktörer av till exempel intelligent videoövervakning, kollisionsvarnare i bilar, industristyrning och telemetri.– Programmerbar logik var dyrt på den tiden och det fanns bara en enkel buss mellan FPGA-delen och processorn. I praktiken var det inte så stor skillnad mot att ha två separata kretsar, säger Stephane Monboisset på Xilinx.
Den här gången finns över 3000 interna in- och utgångar för att koppla ihop processorkärnorna med den programmerbara logiken. Sammantaget motsvarar det upp till 100 Gbit/s.
En annan skillnad som Stephane Monboisset lyfter fram är att man den här gången satsat på Arm, den inbyggnadsarkitektur som har störst spridning och därmed flest programmerare och flest färdiga IP-block. Xilinx har också anpassat alla sina egna IP-block till Arm-bussen AXI-4, för att ytterligare underlätta för användarna.
– Så att gå från PowerPC till Arm var inte ett särskilt svårt val.
De två A9-kärnorna har stöd för multimedia via Neon-instruktionerna och klarar flyttalsberäkningar (både enkel och dubbel precision). Men den maximala klockhastigheten stannar på 800 MHz. I en 28 nm-process hade man kunnat förvänta sig åtminstone det dubbla.
- Det är ett medvetet val och beror på att det räcker för att man med dubbla processorer ska kunna stödja nästan alla tillämpningar vi sett. Har man snabbare transistorer ökar läckaget och därmed effektförbrukningen, säger Stephane Monboisset.
Effekttänkandet märks även i FPGA-delen där man hämtat implementationen från de kommande 28 nm-familjerna Artix och Kintex, inte den högpresterande Virtex. Logikdelen kommer i fyra storlekar med block på 30k, 85k, 125k och 235k.
– FPGA-blocket ska göra grovjobbet medan processorn tar besluten.
Rent praktiskt innebär det att processordelen bootas först och att processorerna sedan laddar in den kod som för tillfället ska köras i FPGA:n. Delarna har separat spänningsmatning så att FPGA-delen kan stängas av när den inte behövs. Detsamma gäller för övrigt kärnorna. Behövs bara den ena kan den andra stängas av.
Men kretsen innehåller mycket mer än bara processorer och logik. För att den på allvar ska kunna konkurrera med assp:er och asicar har Xilinx fyllt på med 760 DSP-block, en rad olika kommunikationsgränssnitt liksom AD- och DA-omvandlare.
– De är inte av radioklass men räcker för till exempel motorstyrning.
De dubbla AD-omvandlarna har 12 bitars ordbredd och klarar 1 MSa/s.
För kommunikation med omvärlden finns 4 eller 12 transceivrar som klarar upp till 10,2 Gbit/s. Zynq kan också kopplas direkt till minnen som DDR2, DDR3, LPDDR2 och 2xQSPI liksom NOR- och NAND-flash.
Det finns åtta DMA-kanaler, två USB 2.0, två Gbit Ethernet liksom dubbla uppsättningar för Uart, Can, I2C och SPI.
De första provexemplaren kommer om nio månader och priset startar strax under 15 dollar i större volymer.
Sedan ungefär tio månader pågår utvecklingsarbetet hos utvalda kunder, däribland Agilent och National Instruments. För även om det dröjer tills kunderna kan testa designen i verkligheten finns redan nu en emulator att prova koden på.
Redan från start finns också ett helt ekosystem runt Zynq med operativsystem från Windriver, Petalogix och Micrium. Förutom Xilinx egna utvecklingsverktyg kan man använda verktyg från Arm, Windriver, Lauterbach, Codesourcery, National Instruments och Mentor Graphics. När väl kretsarna börjar samplas kommer även utvecklingsplattformar från Arm, Avnet Xylon och National Instruments.