Annons

onsdag 22 maj 2013vecka 21
twitterfblinkedin
HEM Analogt Digitalt Distribution Energi Fordon FPGA, asic & EDA Inbyggda system Kommunikation Medicin Opto Passivt & förbindning Produktion Strömförsörjning Test & mät

Glöm VHDL och Verilog – nu kommer Mobius Visa endast artikeln (för utskrift)
Av Adam Edström (adam@etn.se)
2005-09-14  PÃ¥ högre abstraktionsnivÃ¥ gÃ¥r det fortare att ta fram bättre konstruktioner. SÃ¥ har löftena länge ljudit frÃ¥n anhängare av högnivÃ¥konstruktion. Företaget bakom nylanserade verktyget Mobius säger sig uppfylla löftena.

Konstruktioner skrivna i VHDL och Verilog är lätta att syntetisera med bra kvalitet. Men det blir mycket kod, för möjligheten att gå upp i abstraktionsnivå är begränsad.

SystemC, å andra sidan, är bra för högnivåabstraktion, men ger inte någon effektiv hårdvara. Alltså behövs något nytt, resonerade svenske Per Ljung och hans kollegor på företaget Codetronix. Resultatet heter Mobius och visades för första gången för allmänheten på mässan FPGA World.

- Codetronix har utvecklat Mobius med användare inom amerikanska militären. Vi läste en artikel i Elektroniktidningen om att ABB utvärderade högnivåverktyg, tog kontakt med dem och nu är ABB vår första svenska kund, berättar Per Ljung.

Med Mobius går det att koda såväl hård- som mjukvara på hög nivå. Källkoden blir typiskt en femtondedel så stor som motsvarande VHDL eller C-kod, och den kan simuleras 100 gånger snabbare än VHDL eller Verilog. Utdata blir Verilog eller VHDL som accepteras av marknadens vanliga syntesverktyg, plus Ansi-C som kan kompileras med valfri kompilator.

SprÃ¥ket Mobius har en snudd pÃ¥ intuitiv syntax. Det bygger pÃ¥ CSP-metodik (Communicating Sequential Processes), vars principer pÃ¥minner om UML. Användaren mÃ¥ste alltsÃ¥ lära sig ett nytt sprÃ¥k, men enligt Codetronix är det lätt att lära sig och därtill väl värt insatsen eftersom produktiviteten ökar 10-20 gÃ¥nger. Befintliga konstruktioner och programvara skrivna i VHDL, Verilog eller C kan förses med omslagsprotokoll (”wrappers”) och därmed ingÃ¥ i större Mobiuskonstruktioner.

En intressant aspekt är ocksÃ¥ att verktyget utger sig för att stödja hÃ¥rd- och mjukvarukonstruktion lika bra. Varje del av konstruktionen kan kompileras till endera hÃ¥rd eller mjukvara – eller en kombination. Stöd finns ocksÃ¥ för sÃ¥dant flertrÃ¥dad synkronisering i realtid av sÃ¥väl hÃ¥rd- som mjukvaruprocesser.

Konstruktionen verifieras med den inbyggda debuggern och transaktionsnivåsimulatorn. Konstruktören får skriva en testbänk på vanligt sätt, och använda simulatorn för att bekräfta funktionerna.

- Vi tycker inte att någon lågnivåverifiering behövs. De som använder Synopsys Design Compiler eller Xilinx ISE har inga klagomål på den Mobiusgenererade koden, säger Per Ljung.

Mobius är inte standardiserat, och det finns inga omedelbara planer på någon sådan process. Per Ljung ser inte heller någon konkurrens från exempelvis System Verilog.

 - System Verilog är ganska lÃ¥gnivÃ¥. Mobiusanvändare har inget behov eller fördel av System Verilog, säger Per Ljung.


  Kodexempel

Mobius syntax påminner om Pascal och är tämligen intuitiv. En sekvensiell krets med tre cyklers latens och utdata var tredje cykel beskrivs såhär:

procedure slow(
in x:chan of integer,
out y:chan of integer);
var
t1,t2:integer;
while true do Seq
t1:=func1(x);
t2:=func2(t1);
y:=func3(t2);
end;

Motsvarande krets med pipeline beskrivs såhär:
procedure fast(
in x:chan of integer;
out y:chan of integer);
var
t1,t2:integer;

while true do
t1, t2, y:= func1(x), func2(t1), func3(t2);


 
KOMMENTERAT
Comments powered by Disqus

Administration Jan TÃ¥ngring
Annonser Anne-Charlotte Sparrvik
Redaktion red@etn.se
Ansvarig utgivare Anna Wennberg på uppdrag av Elektroniktidningen Sverige AB
© Elektroniktidningen Sverige AB
Publiceringssystem Joomla, webbhotell Glesys
Smal annons

Sök komponent
(demoversion)