Hur utformar jag mina egna ARM-baserade processorer?

Jag har flera frågor om hur jag skulle utforma min egen ARM-baserade CPU?

  • Hur börjar man med en ARM-licens och sluta med ett paket redo att lödas på ett bräde?
  • Vad får jag från ARM (jag är säker på att de har flera licensalternativ att dela ut – Architecture License (Qualcomm Snapdragon style) och Core License (TI OMAP style))?
  • Vilka verktyg behöver jag gå till när jag har ”det där” från ARM?
  • Vad skickar jag till fabriken?
  • Jag tror att endast vissa grundare har licens att etsa en ARM-kärna på en kiselskiva. Har jag rätt?
  • Har jag som student råd att göra detta på en FPGA? Hur får jag erfarenhet av något liknande?

Kommentarer

  • Det självklara svaret är att prata med ARM.
  • Ta en titt på opencores.com – det finns många olika processorkärnor där i olika tillstånd av fullständighet och funktionalitet. Så långt som att få en verklig ARM-kärnkälla … som @OlinLathrop säger … prata med ARM.
  • Jag förstår inte ’ kan vara en naiv fråga, men definitivt legitim IMO.
  • Problemet är att din fråga är specifik för ett arbetsflöde du inte får följa. Arbetsflödena du kan följa – med en original eller fritt tillgänglig design i en HDL för att rikta in dig på en FPGA – skiljer sig lika mycket från det som spekulation är från faktum.
  • Cortex-M1-kärnan verkar vara avsedd att köras i vilken som helst lämplig FPGA. De stora FPGA-leverantörerna har IP-licensen och levererar den till designern på samma sätt som alla andra mjuka kärnor. Jag antar att det inte är gratis, men det finns sannolikt program tillgängliga specifikt för akademiskt bruk.

Svar

Här är hur företag gör det:

  1. Samla in cirka 10 miljoner US-dollar.
  2. Förhandla med ARM för att få en licens. Detta kostar förmodligen minst 1 miljon dollar.
  3. Hämta designfilerna från ARM. Det kommer sannolikt att finnas i någon form av VHDL, Verilog eller en ”krypterad” netlista.
  4. Designa ditt eget chip med en blandning av din egen logik (för kringutrustning) och vad ARM gav dig. Detta steg kommer sannolikt att kräva dyra CAD-program och ett litet team av experter. Räkna med att spendera minst 5 miljoner USD och flera år.
  5. Få maskerna gjorda för själva chipet. Om du använder någon modern halvledarprocess kommer den att gå runt 1 miljon US $.
  6. Få själva chipet gjort. Priset varierar, men bör vara mindre än 0,5 miljoner USD.
  7. Felsöka det chip du skapade, fixa buggarna och gå sedan tillbaka till steg 5 tills du har något du kan sälja.

Så här gör DU :

  1. Ta en examen datorarkitekturkurs vid ditt lokala universitet.
  2. Ta fler kurser i digital logik och vad som helst.
  3. Designa en CPU från grunden i VHDL eller Verilog.
  4. Design en annan CPU från grunden.
  5. Titta på ARM-instruktionsuppsättningen och utforma en kompatibel CPU.
  6. Få din ARM-kompatibla CPU att fungera i en FPGA.
  7. Don ”t distribuera din VHDL / Verilog-källkod om du inte vill bli stämd.
  8. Använd din ARM-erfarenhet för att skriva en bra avhandling för din doktor.
  9. Använd din doktorsexamen för att få ett jobb vid ARM, eller TI, eller vem som helst. Upprepa sedan processen med de föregående 7 stegen för hur ett företag gör det.

Okej, så den här listan är lite tunga mendet är i grunden korrekt. Poängen är att du inte ens bryr dig om att hantera ARM direkt eftersom oddsen är att du inte har pengarna. Och gör inte något som får dig att stämmas av ARM heller.

Kommentarer

  • +1. Utmärkt svar. Vad jag tänkte säga , men bättre.
  • Alla bra kurser skulle inkludera grundstrukturen för olika typer av CPU ’ och hur de alla fungerar. Ämnen ska täcka mikrokod, instruktionsavkodning , ALU ’ s, minnesåtkomst, cache, register, pipelining, datahazards, instruktionsförhämtning osv.
  • Finns det någon anledning att ARM ’ s instruktionsuppsättning, i och för sig, skulle vara mer patenterbar än någon av de andra processorerna där kloner finns i överflöd? Det finns visserligen benägna att vara några arkitektoniska funktioner som är patenterade, men om en ’ Målet är att utforma en CPU som kommer att fungera med befintliga kompilatorer, skulle instruktionsuppsättningen i sig utgöra ett problem?
  • @supercat Normalt är själva instruktionerna inte särskilt patenträtt om de inte innehåller några arkiv lektioner. MIPS gjorde detta med sin CPU ’ s, där de patenterade några instruktioner som skulle ladda / lagra ord som inte är ordinriktade samt några saker för att dynamiskt växla mellan stor och liten endian .Detta utmanades i domstol när MIPS stämde en MIPS-klontillverkare och MIPS vann (tillbaka omkring 2000). Men de flesta patent handlar om arkitektoniska frågor. Du kan ’ inte skapa en CPU som är kompatibel med befintliga kompilatorer utan att kopiera både arkitekturen och instruktionsuppsättningen, tyvärr.
  • @LordLoh du kanske tycker att dessa frågor är användbara : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638

Svar

ARM har en University DesignStart-programmet . Som student har du endast tillgång till grundläggande Cortex-M0-material. Men om du verkligen är intresserad, få din fakultet involverad och då kan du få tillgång till mycket mer designmaterial (Verilog FPGA-kod, utvärderings-IP, simuleringar etc.)

Kommentarer

  • Tack 🙂 Jag ’ Jag försöker få min rådgivare att begära några av dessa.
  • WFIW, detta svar är nu föråldrad, både Cortex-M0 och Cortex-M3 finns tillgängliga, och vissa delar av produkten är öppna för icke-studenter / institutioner.

Svar

Ta en titt på den här ARM-kärnan på OpenCores.

Kommentarer

Svar

ARM Cortex-M1 (förmodligen det enklaste av ARM-processorerna) är den första ARM-processorn som är speciellt utformad för att implementeras som en mjuk processor i FPGA. Den är optimerad för följande FPGA-typer :

Actel (M1 ProASIC3 and M1 Fusion) Altera (Cyclone-II, Stratix-III) Xilinx (Spartan-3, Virtex-5) 

ARM själv gör en Cortex-M1 utvecklingssats för Altera Cyclone III även om det är lite dyrt för 625 $ från DigiKey . Du får dock all ARM Cortex-M1 IP och en licens för att utveckla (plus ett gratis royalty-bidrag för 1000 brädor för dem som går i produktion, ganska coolt.

Det kan finnas några alternativ för att få IP av sig själv (kanske de har ett akademiskt program, någon annan nämnde ett universitetsprogram, men det var för M0). Då kan du köpa ett utvecklingskort separat.

Här är lite mer information om ARM Cortex-M1 på Altera .

Här är lite information om att sätta en ARM Cortex-M1 på en Actel FPGA.

Under tiden finns det ett visst intresse för andra versioner av ARM Cortex på FPGA; här är ett papper från någon som implementerade en ARM Cortex-M0 på en Xilinx FPGA.

Kommentarer

  • Om du vill ändra design, försök skapa en ” rätt ” 32-bitars maskin. För närvarande läser ARM 32-bitars instruktion 8 bitar åt gången, vilket innebär att PC steg med 4 för varje instruktionshämtning.

Svar

Du kan nu få tillgång till Cortex-M3-processorn (och ett utdragbart AHB / APB-delsystem) via ARM: s DesignStart-program.

Alternativet Eval ger ett FPGA-mål (simulering stöds, med fördunklad RTL i kärnan, allt annat i Verilog). Detta riktar sig för närvarande mot ARM MPS2 + FPGA, med mbed-stöd.

Pro-versionen (endast tillgänglig för företag / universitet som kan underteckna en licens) tillåter tillverkning och inkluderar processorkärnan i Verilog (detta täcker båda Cortex -M0 och Cortex-M3).

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *