– Hårdvara ligger två-tre år efter mjukvara i utveckling och acceptans. Men om fem år är jag helt övertygad om att open source är en av de dominerande teknikerna för elektronikutveckling.
– Det kan gå fortare – det senaste året har intresset ökat sjukt mycket, även hos storföretagen. Flera av världens största telekombolag har frågat oss om vi kan göra förstudier åt dem för enskilda block eller för hela asicar, säger Johan Rilegård.
– Tidigare var det mjukvarusidan som stoppade hårdvaruingenjörer med alltför vidlyftiga idéer. Nu har mjukvaruingenjörerna blivit mer öppna för nytänkande, mycket tack vare Linux starka fotfäste, så den hårdvarukonstruktör som föreslår öppen källkod har större möjligheter att få sin vilja igenom, säger Marcus Erlandsson.
Missionerat om öppen källkod sedan 2000
De båda grundade konsultföretaget Orsoc 2004 och driver det idag med en tredje delägare. Båda är civilingenjörer och båda har grundliga erfarenheter av öppen källkod för hårdvara. Innan de startade eget hade Marcus bland annat jobbat som FPGA- och asicdesigner på Enea, och Johan hade sysslat med upphandling och management. De har missionerat om fördelarna med öppen källkod sedan 2000, och tanken att starta eget hade grott i flera år.
– Redan från början var vårt fokus att göra system på kisel så enkelt, billigt och kostnadseffektivt som möjligt. Och det är fortfarande konstruktionsuppdragen som ger oss våra största intäkter, säger Johan.
Det kan dock ändras snart. För i november i fjol fick Orsoc ta över ansvaret för Opencores, världens största databas och internetcommunity för hårdvara i öppen källkod, med över 500 IP-block. Säljare var grundaren Damjan Lampret.
– Vi hade känt Damjan sedan 1999 och hade gjort flera projekt med Opencores. Communityn runt sajten hade vuxit rejält, men han hade fått andra intressen. Så vi erbjöd oss ta över den, berättar Marcus.
250 nya användare om dagen
Opencores har i dagsläget cirka 14 000 registrerade användare, och omkring 250 nya kommer till varje dag. Alla användare kan ladda ner IP-blocken helt gratis, och därtill ladda upp egna konstruktioner. Av de 500 IP-blocken, eller projekten som de kallas på opencores.org, har ett hundratal kommit till sedan Orsoc tog över.
– Andra open source-sajter har en eller ett par IP-block. Det är bara vi som har bredden. Och visst kan man få gratis IP-block från FPGA- och EDA-leverantörerna, men bara om man använder deras produkter. Vill du flytta från exempelvis Xilinx till Altera så är budskapet ”gör en omdesign, för du får inte ta med dig vår IP”, kommenterar Johan.
Möjligheterna att kapa kostnader och korta ner utvecklingstiden är förstås den största och viktigaste anledningen till att företag väljer IP-block med öppen källkod. Tillgången till IP-block är total och omedelbar, och inga royalty- eller licenskostnader tillkommer. Men ett allt viktigare skäl blir att kunderna vill ha ökad kontroll över sina konstruktioner, både för att slippa ”end-of-life”-problem och för att få bättre möjligheter att differentiera sina produkter och byta målteknologi.
– Vi hade en kund som efter två års utveckling precis fått ut sin produkt på marknaden. Då kom beskedet att leverantören tänkt sluta tillverka nyckelkretsen till produkten, och krävde att kunden gjorde en slutbeställning. I det läget var ju kunden helt låst, berättar Marcus.
– Med Opencores har man källkoden, man har kontroll på sin design till 100 procent. Om FPGA:n eller asicen slutar tillverkas så kan man ta sin design och sätta in den i nästa, för den är ju oberoende av målteknologi. Man kanske måste göra om kortet, men kan behålla all mjukvara, alla drivrutiner och allt sådant. Det blir extremt mycket lättare, säger Johan.
Fördelarna vid ”end-of-life” har också fått många chefer på konstruerande företag att få upp ögonen för öppen källkod. Tidigare kom initiativet ofta från enskilda konstruktörer, och cheferna såg mer till riskerna än till möjligheterna.
– Det har helt klart eskalerat acceptansen. För många chefer är det en jättehuvudvärk att kretsar går ur tiden, säger Marcus.
Ett vanligt scenario är att en produkt som säljer bra kan behöva göras om i ett par olika varianter för olika marknader, eller för att differentiera mot olika kundgrupper. Även det blir lättare när man har kontroll över hela sin konstruktion.
Måste ta större ansvar själv
En nackdel är dock att man med öppen källkod måste ta större ansvar för sin design. Det finns ingen support, inga applikationsingenjörer och ingen underleverantör att skylla på om det inte fungerar.
– Fast skillnaden är i praktiken inte så stor. Kommersiell teknik är det ingen garanti för ett problemfritt projektet. Ofta är man i händerna på någon applikationsingenjör som inte går att få tag på. Då har man inga alternativ, för IP-blocket är låst. Med Opencores kan man ofta få hjälp på forumet, och vi på Orsoc hjälper också till, säger Marcus.
– Är man kund hos något FPGA-bolag så händer det ofta att man får vänta länge på support om man inte tillhör deras favoriter, säger Johan.
– Med Opencores kan man simulera och gå hela vägen till FPGA helt gratis. De flesta IP-blocken är modulärt uppbyggda och kan konfigureras för att passa olika målkretsar. Och FPGA-leverantörernas verktyg är ju gratis än så länge, säger Marcus.
Han medger att det inte finns någon garanti på Opencores för att hjälp ska komma. Men hävdar att beredvilligheten att hjälpa till är stor i communityn, även mellan konkurrerande företag.
En potentiell risk med öppen källkod är att man medvetet eller omedvetet kan komma att använda IP utan att ha patenträttigheter. Eftersom vem som helst kan lägga ut IP-block så är det inte helt lätt att ha juridisk kontroll över innehållet. Opencores själv tar inget ansvar här, utan det är upp till varje användare. Johan och Marcus kan inte eliminera problemet, men jobbar på att hålla den etiska fanan högt.
– Vi skulle aldrig acceptera att något läggs ut som strider mot något patent. Skulle någon lägga ut en Arm-klon, något som provats av några studenter före vår tid, så kan vi räkna med att deras advokater knackar på vår dörr rätt snart och det vill vi inte vara med om, säger Johan.
– Just därför är Open Risc så bra, den har funnits sedan 1999 och har gått igenom en lång rad diskussioner utan att någon visat att den strider mot något patent. Det är en accepterad arkitektur, som dessutom är väldigt skalbar, säger Marcus.
Brett utbud av IP-block
Processorkärnan Open Risc är något av en spindel i Opencores-nätet, men här finns även en rad andra processorkärnor för 8, 16 och 32 bitar, DSP-kärnor, coprocessorkärnor, plus block för aritmetik, videodrivning, avancerad signalbehandling och kryptering. Någon standard för IP-blocken finns inte, men det mesta är skrivet för att passa bussen Wishbone, en enklare variant av Arms buss Amba. Huvuddelen är gjort i Verilog eller VHDL på RTL-nivå.
Sajten innehåller också annat än IP-block, exempelvis gratisverktyg som Verilogsimulatorn Icarus och byggbeskrivningar för FPGA-baserade prototypkort.
– Svagheten hos Opencores är den absolut senaste tekniken. När en ny standard slår igenom kommer ofta kommersiella IP-leverantörer ut med något ganska snabbt, men det kan ta något år innan motsvarande funktion dyker upp här, säger Marcus.
– Kvaliteten är högre än för kommersiella IP-block. Ett välanvänt block på Opencores har verifierats av betydligt fler konstruktörer och i betydligt fler skarpa projekt än något som finns att köpa, säger Johan.
Ett talande exempel är Sparcprocessorn Leon, som den europeiska rymdstyrelsen ESA släppte ut som öppen källkod av det enda skälet att det ansågs som det bästa sättet att verifiera den.
– ESA insåg att verifieringen skulle ta 70 år om de gjorde jobbet själva. När kärnan släpptes fick de in buggrapporter från hela världen, med buggar som de absolut inte hittat på egen hand, berättar Marcus.
Hur många konstruktioner i världen som använt öppna IP-block är det ingen som vet. Johan och Marcus säger att det rör sig om ”tusentals”, varav de personligen känner till ett par hundra. Ett par företag som Broadcom, Vivace, Flextronics och estländska Klavis, har öppet deklarerat att de utnyttjar block från Opencores i sina konstruktioner.
Att döma av trafiken på Opencores forum är intresset stort även från Ericsson, även om företaget inte officiellt tagit ställning vare sig för eller emot IP-block i öppen källkod.
Det finns ingen skyldighet att rapportera till Opencores hur det block man laddat ner använts i en skarp design, och många vill inte skylta med vilken teknik man använder.
– Men se på mjukvarusidan, där var det förr väldigt mycket hysch-hysch om man använde Linux eller annan open source. Sen blev det hippt och nu används det i marknadsförningen, säger Marcus.
För att maximera nyttan av Opencores har Orsoc utvecklat både ett eget konstruktionsverktyg och ett prototypkort kring en egenuvecklad krets. Kretsen är förstås byggd kring Open Risc och innehåller en rad kommunikationsgränssnitt och funktioner för grafik och ljud, allt från Opencores. För Orsoc ger kortet möjlighet att visa hur enkelt det är att lägga till och ta bort funktioner i en krets.
Eget verktyg
En annan central del i Orsocs erbjudande är det egenutvecklade verktyget med vars hjälp man kan bygga hela system på kisel. Alla IP-block i Opencores kan ”dras och släppas”, och resultatet kan simuleras med Icarus. Verktyget bygger i stor utsträckning på en egenutvecklad bussarbitrerare som automatiserar busstrukturen mellan processorn och periferienheterna beroende på vilka block som är med, deras egenskaper och vilka kraven på dataflödeshastigheten.
– I framtiden hoppas vi kunna lägga ut verktyget på sajten. Tekniskt fungerar det jättebra, men vi har inte hunnit få till användargränssnittet och alla hjälpfunktioner, säger Marcus.
På Opencores har Orsoc i stället lagt ut ett något enklare verktyg, en virtuell Linuxmiljö (VMWare Virtual Machine med Virtual Ubuntu Linux) där processorkärnan Open Risc kan samsas med andra Opencores-block, simuleras med Icarus och resultatet kan beskådas med en vågformsvisare. Ett enkelt script räcker för att kompilera C-koden, bygga ihop och kompilera en referensdesign runt processorkärnan, starta simulatorn, ladda in C-koden i ett flashminne och ladda in alltihop i konstruktionen som då börjar exekvera koden.
Vill inte bli hårdvaruvärldens Red Hat
På mjukvarusidan lever idag en lång rad företag på att ge support åt användare av Linux och annan öppen källkod. Något liknande har inte dykt upp på hårdvarusidan.
– Många kunder vill att vi ska ge liknande support, och ibland har vi tagit på oss det. Men vi vill inte bli ett supporthus, vi har inga ambitioner att bli hårdvaruvärldens Red Hat, säger Johan.
Än så länge har Orsoc inte tjänat några större pengar på Opencores. Att man tog över sajten har i och för sig resulterat i god publicitet, gjort bolaget internationellt känt och gjort att man fått förfrågningar från nya stora och små kunder. Men kostnaderna i form av nedlagd tid har hittills överstigit de direkta intäkterna med råge.
För att ändra på det har Orsoc öppnar för möjligheterna att annonsera på Opencores, och Johan som tagit på sig annonsäljarjobbet säger att intresset från komponent- och verktygsleverantörer är stort.
– Opencores är en global sajt. Vi har en miljon sidvisningar i månaden, från mellan 70 000 och 80 000 unika besökare. Så gott som alla är konstruktörer och många håller på att starta utvecklingsprojekt, säger han.
– Flera EDA-leverantörer vill erbjuda gratisverktyg för de som utvecklar IP-block till sajten. Sedan vill de förstås ta betalt när blocken ska in i skarpa asicar eller FPGA:er, säger Marcus.
Hur mycket kan då en svensk konsult som sysslar med öppen källkod för hårdvara växa? Johan och Marcus tvekar lite när de får frågan var de och Orsoc, som idag har åtta anställda, är om fem år.
– Fortsätter det i den här takten är vi väldigt stora. Men oavsett om vi är 50, 100 eller 500 personer om fem år så är jag helt övertygad om att öppen källkod då kommer att dominera inom hårdvarukonstruktion. Vårt mål är att göra tekniken ännu mer accepterad och lättillgänglig, säger Johan.
Om det sedan är Opencores eller någon annan community som är störst om fem år är förstås omöjligt att svara på. Men Opencores ligger onekligen bra till.