Hvordan designer jeg mine egne ARM-baserte prosessorer?

Jeg har flere spørsmål om hvordan jeg skulle designe min egen ARM-baserte CPU?

  • Hvordan begynner man med en ARM-lisens og ende opp med en pakke klar til å loddes på et brett?
  • Hva får jeg fra ARM (jeg er sikker på at de har flere lisensalternativer for å skille ut – Architecture License (Qualcomm Snapdragon style) og Core License (TI OMAP style))?
  • Hvilke verktøy trenger jeg for å fortsette når jeg har «det noe» fra ARM?
  • Hva sender jeg til fabrikken?
  • Jeg tror bare visse grunnleggere har lisens til å etse en ARM-kjerne på en silisiumskive. Har jeg rett?
  • Som student har jeg råd til å gjøre dette på en FPGA? Hvordan kan jeg få erfaring med noe slikt?

Kommentarer

  • Det åpenbare svaret er å snakke med ARM.
  • Ta en titt på opencores.com – det er mange forskjellige prosessorkjerner der i forskjellige tilstander av fullstendighet og funksjonalitet. Så langt som å skaffe ARM-kjernekilde … som @OlinLathrop sier … snakk med ARM.
  • Jeg forstår ikke ‘ for ikke å forstå nedstemningene, dette er kan være et naivt spørsmål, men definitivt legitimt IMO.
  • Problemet er at spørsmålet ditt er spesifikt for en arbeidsflyt du ikke får følge. Arbeidsflytene du kan følge – ved å bruke en original eller fritt tilgjengelig design i en HDL for å målrette mot en FPGA – er like forskjellige fra det som spekulasjoner er fra faktum.
  • Cortex-M1-kjerne ser ut til å være ment å kjøre i en hvilken som helst passende dyktig FPGA. De største FPGA-leverandørene har IP-lisens, og leverer den til designeren som de ville gjort med en annen myk kjerne. Jeg antar ikke gratis, men det er sannsynligvis programmer tilgjengelig spesielt for akademisk bruk.

Svar

Her er hvordan selskaper gjør det:

  1. Samle inn rundt 10 millioner dollar.
  2. Forhandle med ARM om å få lisens. Dette vil trolig koste minst 1 million dollar.
  3. Få designfilene fra ARM. Det vil sannsynligvis være i en eller annen form for VHDL, Verilog eller en «kryptert» netliste.
  4. Design din egen chip ved hjelp av en blanding av din egen logikk (for periferiutstyr) og det ARM ga deg. Dette trinnet vil trolig kreve litt dyr CAD-programvare og et lite team av eksperter. Forvent å bruke minst 5 millioner dollar og flere år.
  5. Få maskene laget for selve brikken. Hvis du bruker en moderne halvlederprosess, vil denne løpe rundt 1 million dollar.
  6. Få brikken selv laget. Prisen varierer, men bør være mindre enn 0,5 millioner dollar.
  7. Feilsøk brikken du opprettet, fikse feilene, og gå tilbake til trinn 5 til du har noe du kan selge.

Slik gjør DU :

  1. Ta et høyere nivå datamaskinkurs på ditt lokale universitet.
  2. Ta flere kurs i digital logikk og hva som helst annet.
  3. Design en CPU fra bunnen av i VHDL eller Verilog.
  4. Design en annen CPU fra bunnen av.
  5. Se på ARMs instruksjonssett og design en kompatibel CPU.
  6. Få din ARM-kompatible CPU til å fungere i en FPGA.
  7. Don «distribuer ikke VHDL / Verilog-kildekoden med mindre du vil bli saksøkt.
  8. Bruk din ARM-erfaring til å skrive en god avhandling for doktorgraden din.
  9. Bruk doktorgraden din for å få jobb på ARM, eller TI, eller hvem som helst. Gjenta deretter prosessen ved hjelp av de forrige 7 trinnene for hvordan et selskap gjør det.

Ok, så denne listen er litt tungespråk, mendet er i utgangspunktet riktig. Poenget er at ikke engang bry deg med å håndtere ARM direkte fordi oddsen er at du ikke har pengene. Og ikke gjør noe som får deg til å saksøkes av ARM heller.

Kommentarer

  • +1. Utmerket svar. Hva jeg skulle si , men bedre.
  • Ethvert godt kurs vil inkludere den grunnleggende strukturen til forskjellige typer CPU ‘ og hvordan de alle fungerer. Emner skal dekke mikrokode, instruksjon dekode , ALU ‘ s, minnetilgang, cache, registre, pipelining, datahazards, forhåndsinnhenting av instruksjoner osv.
  • Er det noen grunn til at ARM ‘ s instruksjonssett, i og for seg selv, ville være mer patenterbart enn noen av de andre CPUene som kloner bugner av? Det er absolutt egnet å være noen arkitektoniske trekk som er patentert, men hvis en ‘ s mål er å designe en CPU som vil fungere med eksisterende kompilatorer, ville selve instruksjonssettet utgjøre et problem?
  • @supercat Normalt er selve instruksjonene ikke veldig patent-med mindre de inneholder noen arkiver tekturelle ting. MIPS gjorde dette med CPU ‘ s, der de patenterte noen instruksjoner som ville laste / lagre ord som ikke er ordrettet, samt noen ting for dynamisk å bytte mellom stor og liten endian .Dette ble utfordret i retten da MIPS saksøkte en MIPS-klonprodusent, og MIPS vant (tilbake rundt 2000). Men de fleste patenter handler om arkitektoniske spørsmål. Du kan ‘ ikke lage en CPU som er kompatibel med eksisterende kompilatorer uten å kopiere både arkitektur og instruksjonssett, dessverre.
  • @LordLoh, du kan finne disse spørsmålene nyttige : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638

Svar

ARM har en University DesignStart-programmet . Som student har du bare tilgang til grunnleggende Cortex-M0-materiale. Men hvis du virkelig er interessert, få fakultetet ditt involvert, og så kan du få tilgang til mye mer designmateriale (Verilog FPGA-kode, Evaluering IP, Simuleringer osv.)

Kommentarer

  • Takk 🙂 Jeg ‘ Jeg prøver å få rådgiveren min til å be om noen av disse.
  • WFIW, dette svaret er nå utdaterte, både Cortex-M0 og Cortex-M3 er tilgjengelige, og noen deler av produktet er åpne for ikke-studenter / institusjoner.

Svar

Ta en titt på denne ARM-kjernen på OpenCores.

Kommentarer

Svar

ARM Cortex-M1 (sannsynligvis den enkleste av ARM-prosessorene) er den første ARM-prosessoren spesielt designet for å implementeres som en myk prosessor i FPGA-er. Den er optimalisert for følgende FPGA-typer :

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

ARM selv lager en Cortex-M1 Development Kit for Altera Cyclone III selv om det er litt kostbart til $ 625 fra DigiKey . Du får imidlertid all ARM Cortex-M1 IP, og en lisens til å gjøre utvikling (pluss et gratis royalty-stipend for 1000 brett for de som går i produksjon, ganske kult).

Det kan være noen alternativer for å få IP av seg selv (kanskje de har et akademisk program, noen andre nevnte et universitetsprogram, men det var for M0). Deretter kan du kjøpe et utviklingskort separat.

Her er litt mer informasjon om ARM Cortex-M1 på Altera .

Her er litt informasjon om å sette en ARM Cortex-M1 på en Actel FPGA.

I mellomtiden er det litt interesse for andre versjoner av ARM Cortex på FPGA; her er et papir fra noen som implementerte en ARM Cortex-M0 på en Xilinx FPGA.

Kommentarer

  • Hvis du vil endre designet, kan du prøve å lage en » riktig » 32-biters maskin. For øyeblikket leser ARM 32-biters instruksjon 8 bits om gangen, noe som betyr at PC-en øker med 4 for hver henting av instruksjoner.

Svar

Du kan nå få tilgang til Cortex-M3-prosessoren (og et utvidbart AHB / APB-delsystem) gjennom ARMs DesignStart-program.

Eval-alternativet gir et FPGA-mål (simulering støttes, med forvirret RTL av kjernen, alt annet i Verilog). Dette er for øyeblikket rettet mot ARM MPS2 + FPGA, med innebygd støtte.

Pro-versjonen (bare tilgjengelig for selskaper / universiteter som kan signere en lisens) tillater produksjon, og inkluderer prosessorkjernen i Verilog (dette dekker begge Cortex -M0 og Cortex-M3).

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *