Att programmera en FPGA via det svenska språket Mitrion-C är en metod som får högt betyg i en studie av KTH och ABB. En mjuk processor är dock oftast en mer kostnadseffektiv lösning.
De nya verktygen: Mjukt, Mitron och Matlab De klassiska metoderna att konfigurera en FPGA - VHDL och Verilog - utmanas av verktyg där konstruktören kan arbeta på en hög beskrivningsnivå. Studien från ABB och KTH ställer några av de nya metoderna mot varandra. Man kan idag konfigurera ett FPGA-block till att implementera en processorkärna som sedan programmeras med vanlig C-kod. Studien tittade på två sådana kärnor, Alteras Nios och Xilinx Microblaze. Nästa metod var att använda matematikverktyget Matlab med programpaketet Simulink som automatiskt skapar FPGA-kod från Matlabprogrammen. Det tredje verktyget som provades var Mitrion från det lilla Lundaföretaget med samma namn. Program skrivna i programspråket Mitrion-C - som liknar C - kompileras automatiskt till FPGA-kod. Gruppen implementerade ett åttonde ordningens IIR-filter, en reglerloop och ett prestandatest för flyttalsberäkningar. Därefter räknade man antalet logikelement och mätte prestandan hos lösningarna. JT |
KTH och ABB är intresserade av de nya verktyg (se faktaruta) som utmanar klassiska språk som Verilog och VHDL.
Studien tittade på prestanda och grindkostnad. För heltalsberäkningar använde Mitrions lösning hälften så många logikelement som Matlablösningen, som i detta fall däremot var snabbare.
De mjuka processorerna Nios och Microblaze, från FPGA-tillverkarna Altera respektive Xilinx, använde i sin tur ytterligare färre logikelement men kunde inte nå samma prestanda.
Mjukt för ingenjörer
Sammanfattningsvis är det Mitrions verktyg som får betyget "bäst i test". I alla fall där hög prestanda är det dominerande bivillkoret.
- Och det är vad KTH vill ha, säger Said Zahrai, professor på Institutionen för mekanik och en av rapportskrivarna.
- Vi kan tillåta oss språk som inte är standard, och att låta ingenjörsprocessen vara mer omfattande.
Utmaningen är att språket trots allt skiljer sig från standard-C och att det kräver en viss handpåläggning från programmeraren för att bli effektivt.
Kodning i VHDL eller Verilog kan ibland ge ännu mer prestanda.
- Men i praktiken tar det oerhört mycket arbete. Och med tanke på hur stora FPGA:erna är idag så blir det nästan omöjligt att hantera stora algoritmer, säger Michael Lundh, konsult på Stravus i Lund.
På ABB är ingenjörsarbetet en stor del av kostnaden. Här rekommenderar rapporten istället mjuka processorkärnor.
- Det är lätt att komma igång eftersom de mjuka processorerna använder vanlig C-kod, säger Michael Lundh.
ABB:s egenutvecklade kommunikationslänkar implementeras ofta på en FPGA.
- Marginalkostnaden för att stoppa in en mjuk processor i den är ofta inte särskilt stor, säger Jörgen Gade på konsultfirman Japs Elektronik.
Med allt på samma FPGA blir designen enklare. Dessutom får man högre bandbredd än när FPGA:n måste kommunicera med en extern processor på kortet. Att höja bandbredden genom att höja frekvensen skulle höja också kostnaden.
Ytterligare en fördel med mjuka processorer är att man kan observera FPGA:n i drift med hjälp av en mjuk logikanalysator.
Den stora nackdelen är att prestandan inte ligger i nivå med hårda mikroprocessorer.
-Mitrionlösningen och Matlab utnyttjar parallellismen bättre, säger ABB:s Mattias Karlsson.
Priset för det är att de använder mer av FPGA:n än en mjuk processor.
Både i universitetsvärldenoch på ABBhar Matlab fördelen av att redan finnas överallt.
- Alla har utbildning i Matlab. Så det går omedelbart att komma igång. Den som är van vid Matlabs verktygslåda Simulink kan lätt komma igång med FPGA-programmering, säger Said Zahrai.
-Är man van och gör standardgrejer kan man absolut använda Matlab. Men som hårdvaruingenjör känner jag mig ibland låst av de biblioteksblock som finns tillgängliga, reserverar sig Michael Lundh.
Blanda är bäst
Den bästa lösningen kan vara en kompromiss - att bygga en systemkrets i en FPGA och implementera delarna i olika verktyg. Tyvärr finns idag ingen högnivåmetodik för att arbeta på det sättet. Ingen generell i alla fall. När blocken ska sys samman måste konstruktören ofta plocka fram VHDL-klistertuben.
Men utvecklingen går snabbt.
- Bara under det år vi jobbat med detta har man sett en kursförändring bland verktygen. Det är inte otänkbart att vi inom en snar framtid kommer att få se generella verktyg, säger Said Zahrai.
Att använda en mjuk processor som grund, och komplettera med extrainstruktioner eller IP-block på en systembuss, är en realistisk lösning, enligt Michael Lundh.
- Så kan man göra när man behöver kostnadseffektiva lösningar med hög prestanda.
ABB använder FPGA:er i den mesta av sin hårdvara idag. Från början användes de mest för klisterlogik.
- Trenden är att vi integrerar mer och mer. Och då kommer processorer in på FPGA:n också, säger Jörgen Gade.
En stor vinst med att använda FPGA är att det går att testa sig fram till bästa hårdvaran. Istället för att för att som idag tvingas frysa den tidigt.
-Det gör utvecklingsprocessen mycket flexiblare, säger Said Zahrai.
ABB har inga konkreta planer på att byta arbetsmetoder.
- Inget just nu. Vi har bara utvärderat teknologin. Nästa steg nu är att hitta tillämpningar som har nytta av den, säger Said Zahrai.
Det händer mycket inom programmerbar logik just nu. FPGA:er får integrerade hårda kärnor. Och hårda kärnor använder programmerbar logik för att implementera extrainstruktioner. Men för ABB är inte de nya produkterna intressanta förrän det finns stabila verktyg.
- Vi kan inte hoppa på alla nya teknologier. Mjuka processorer har funnits på marknaden i flera år, men det är först nu som systemen som helhet blivit tillräckligt robusta och effektiva för att man ska kunna använda dem industriellt, säger Said Zahrai.
Jan Tångring