Skriv ut
FPGA:an har länge varit en självskriven följeslagare till processorn. Den har tagit hand om monotona och beräkningskrävande uppgifter vilket gett processorn möjlighet att ägna sig åt operativsystemet och att betjäna användaren. På senare tid har vi fått se ett antal produkter där de omaka kamraterna samsas på samma kiselbit. Och ska man tro Xilinx och Altera blir kombinationen allt vanligare framöver.
– Vi har fått bra respons från kunderna så det är den troligaste vägen framåt, säger Stefano Zammattio på Altera.

Har får medhåll av Giles Peckham på Xilinx.

– Du får en plattform som är skalbar allt eftersom behovet av prestanda och storlek ändrar sig.

Det här är inte första gången de två företagen försöker sig på att kombinera en processor med en FPGA. Tidigare försök blev inga succéer. Xilinx hade hårda PowerPC-kärnor i Virtexfamiljen en tid medan Altera använde en tidig Armkärna i Excaliburfamiljen.

En viktig skillnad idag är att Zynq från Xilinx och SoC-familjerna från Altera kan betraktas som ett processorsystem med tillhörande FPGA-block. Och som bekant finns det massvis med programmerare för Arm och massvis med kod som kan återanvändas.

Många förbindelser

En annan viktig skillnad är att den förra generationen av systemkretsar saknade den tighta koppling som numera finns mellan de två delarna. Tidigare var det lite som att ha två separata kretsar med få förbindelser.

Andra argument för att slå ihop de två kretsarna är att energiförbrukningen går ned samtidigt som man spar kortyta. Och ska man tro Xilinx och Altera blir det dessutom billigare med en krets än med två separata.

Fast å andra sidan finns det ett närmast oändligt antal kombinationer av FPGA:er och processorer så varför skulle just en dubbelkärnig Cortex-A9 vara det optimala valet?

– I princip vill alla köra Linux och då är det en bra processor, säger Simon George på Xilinx.

Även om Linux är dominerade finns det ungefär ett dussin andra operativsystem att välja på.

A9:an var en av de vassaste kärnorna i Cortexfamiljen när Xilinx och Altera fastnade för den för ett par år sedan. Att säga att den är passé idag är att ta i men tittar man på smartmobiler och läsplattor har de redan övergett A9:an för nyare modeller samtidigt som få varianter av Xilinx och Alteras systemkretsar kommit i produktion. FPGA:erna toppar volymmässigt tre till fem år efter lansering.

– Vi siktade högt och levererar i mitten, konstaterar Simon ­George.

Och de enklare varianterna av Cortex, det vill säga M-familjen, faller automatiskt bort. Den som behöver något så enkelt kan lika gärna använda en mjuk processor, som Alteras Nios eller Xilinx Microblaze. Bägge kan dra runt ett ett begränsat Linuxsystem även om det inte går särskilt fort.

– Idag vill de flesta klocka med ett par hundra megaherz och det klarar man inte med en mjuk processor, säger Stefano Zammattio.

Stor spännvidd
Så att både Xilinx och Altera fastnade för samma processornkärna är rätt naturligt. Fast i
FPGA-tappningen är den inte alls lika snabb som i de implementationer man hittar hos styrkretstillverkarna. I Xilinx och Alteras tappningar stannar klockhastigheten på 600 MHz till 1 GHz beroende på modell.

– Med vårt koncept avlastar FPGA:an processorn så man behöver inte de riktigt höga klockhastigheterna, säger Giles Peckham.

Tittar man istället på FPGA-delen så finns Zynq i fem varianter med 28 k, 85 k, 125 k, 350 k och 440 k logikceller. De två första har hämtat FPGA-logiken från Artix-7-familjen medan de tre sistnämnda fått den från Kintex-7.

Cyclone SoC finns i fyra varianter med 25 k, 40 k, 85 k och 110 k uppslagstabeller medan Arria SoC ska komma med 350 k eller 460 k uppslagstabeller.
'
Alla varianter har förhållandevis mycket logik. Själva processordelen upptar inte särskilt stor kiselyta även om det såklart tickar in royalty till Arm för varje krets som säljs.

Andra hårda block som finns på vissa av kretsarna är snabba transceivrar för externa bussar som PCI Express. De ligger mellan 3 och 10 Gbit/s och man kan få upp till 30 stycken beroende på modell och hastighet.

– Ser vi efterfrågan på andra saker kan vi integrera det också, säger Stefano Zammattio.

Kommer fler hårda block

Konkurrenten Xilinx har redan annonserat att företaget kommer med ytterligare en hård kärna i nästa generation men om det blir en grafikprocessor eller något annat än höljt i dunkel.

Xilinx kretsar i Zynqfamiljen bootar alltid processordelen först. Processorn bestämmer sedan vad som ska laddas i FPGA-delen. Dessutom kan processorn stänga av matningen till FPGA:an om den inte behövs för tillfället. Innehållet går såklart förlorat och måste laddas in igen.

Alteras kretsar lämnar öppet för om processor- eller FPGA-delen ska bootas först eller om de ska bootas parallellt.

– Ibland vill man boota så snabbt som möjlig och då är det bra att kunna göra det parallellt i andra fall kan man låta processordelen bestämma vilken fil som ska laddas i FPGA:an, säger Stefano Zammattio.

Eller så kanske man vill börja med att ladda in en krypterad fil i FPGA:an som skyddar koden.

I Alteras kretsar går det att stänga av bussen mellan processordelen och PFGA:an liksom själva FPGA:an för att spara ström. Eller så kan man stänga av klockan till FPGA-delen för att på så sätt spara ström.

Inte svårare än förut
Både Xilinx och Altera har lagt ner stora resurser på utvecklingsverktygen även om man precis som tidigare programmerar de två delarna var för sig. Företagen hävdar att integrationen gjort arbetet enklare. Uppgifter som tidigare krävde mycket handpåläggning, som att låta processor och FPGA dela samma minnes­area, har blivit enklare när man kan ge både processor och FPGA tillgång till minnet via minnescontrollern.

– Jag vet att en del kunder gjort sånt här på egen hand men det är dyrt så man måste ha en bra anledning.

Fast ska man tro det svenska uppstartsföretaget Elsip är det inte fullt så enkelt. I varje fall inte när man lägger in några mjuka processorer och andra IP-block som behöver ha tillgång till minnet.

– I Zynq går kommunikationen över AXI-bussen vilket gör det svårt att få prioritet för minnesaccessen, säger företagets vd Adam Edström.

Elsip har utvecklat en lösning som förhindrar att minnesbussen blir en flaskhals. Mer om tekniken finns på sidan 6 i detta nummer.

Även felsökningen ska fungera smidigare. Det går till exempel att sätta upp triggvillkor i både processor och FPGA för att sedan stanna hela kretsen. Därmed blir det enklare att se vad FPGA:an gjorde när något gått fel i processorn eller vice versa.

Många kort att välja på
Den som vill testa någon av nykomlingarna kan köpa utvecklingskort från Xilinx respektive Altera men det har också dykt upp en rad små kort som förutom FPGA:an innehåller minne, kraftförsörjning och lämpliga bussar, det vill säga USB och Ethernet. Vissa kort har även AD- och DA-omvandlare.

Två av kortleverantörer är PLDA och Enclustra som gör plug-in-kort i bland annat ATX-format med både Zynq och Cyclone SoC.

Eftersom Zynq har varit i produktion betydligt längre än Cyclone SoC har det hunnit dyka upp produkter. Två av dessa är ZedBoard och microZed. Enligt komponentdistributören Avnet, som tagit fram korten, har det sålts över 3000 ZedBoard. I somras kom en billigare varianten kallad microZed för enbart 199 dollar.

Superdator eller instrument
Den som är inne på superprocessorspåret kan köpa ett kort av uppstartsföretaget Adapteva som förutom Epiphanyprocessorn också innehåller en Zynq.

En helt annan produkt är Red Pitaya, Drakfrukten, vars Zynq­baserade kort fungerar som oscilloskop, vågformsgenerator, FFT-analysator och PID-regulator. Företaget söker just nu finansiering på Kickstarter för att få igång produktionen.

Så var hittar man den här typen av systemkretsar? De första kunderna är företag som redan har en processor och en hyfsat stor FPGA. Det är kunder inom områden som industri-, fordon-, militär-, kommunikations- och medicinteknik. Än så länge är det få kunder som berättat att de tagit steget men i augusti avslöjade National Instruments att företaget använder Zynq i den nya versionen av CompactRIO, företagets datainsamlings- och styrsystem. En annan partner till Xilinx är test- och mätjätten Agilent.

Börjar runt hundralappen
Ytterligare en officiell Xilinx-kund är Bosch Motor Sport som använt Zynq för motorstyrning till racerbilar.

– Vi har sett mycket intresse i industriellt ethernet där man har många olika protokoll. När det gäller helt nya tillämpningar tror jag konstruktörerna måste förstå vad den här kretsen kan erbjuda. När den väl börjar användas kommer kunskapen att sprida sig och vi får se helt nya tillämpningar, säger Stefano Zammattio.

Tilläggas kan att priset för de minsta varianterna i större volymer ligger runt hundralappen, det vill säga mellan tio och femton dollar.