Come posso progettare i miei processori basati su ARM?


37

Ho diverse domande su come progetterei la mia CPU basata su ARM?

  • Come si inizia con una licenza ARM e si finisce con un pacchetto pronto per essere saldato su una scheda?
  • Che cosa ottengo da ARM (sono sicuro che hanno diverse opzioni di licenza da fornire - Licenza Architecture (Qualcomm Snapdragon style) e Core License (TI OMAP style))?
  • Di quali strumenti ho bisogno per procedere una volta che ho "quel qualcosa" da ARM?
  • Cosa invio al fab?
  • Credo che solo alcuni fondatori abbiano la licenza per incidere un nucleo ARM su un wafer di silicio. Ho ragione?
  • Come studente, posso permettermi di farlo su un FPGA? Come posso ottenere esperienza pratica per qualcosa di simile?

9
La risposta ovvia è parlare con ARM.
Olin Lathrop,

3
Dai un'occhiata a opencores.com : ci sono molti core di processori diversi in vari stati di completezza e funzionalità. Per quanto riguarda l'ottenimento della vera fonte core ARM ... come dice @OlinLathrop ... parla con ARM.
akohlsmith,

6
Non capisco i voti negativi, questa potrebbe essere una domanda ingenua, ma sicuramente legittima IMO.
Jon L

2
Il problema è che la tua domanda è specifica per un flusso di lavoro che non potrai seguire. I flussi di lavoro che è possibile seguire, utilizzando un design originale o liberamente disponibile in un HDL per indirizzare un FPGA, sono diversi da quelli della speculazione.
Chris Stratton,

2
Il core Cortex-M1 sembra destinato a funzionare con qualsiasi FPGA adeguatamente capace. I principali fornitori di FPGA hanno la licenza IP e la consegnano al progettista come farebbero con qualsiasi altro soft core. Presumo non gratuitamente, ma ci sono probabilmente programmi disponibili specificamente per uso accademico.
RBerteig

Risposte:


68

Ecco come le aziende lo fanno:

  1. Raccogli circa 10 milioni di dollari.
  2. Negoziare con ARM per ottenere una licenza. Ciò probabilmente costerà almeno 1 milione di dollari.
  3. Ottieni i file di progettazione da ARM. Sarà probabilmente in qualche forma di VHDL, Verilog o una netlist "crittografata".
  4. Progetta il tuo chip usando un mix della tua logica (per le periferiche) e ciò che ARM ti ha dato. Questo passaggio richiederà probabilmente un software CAD costoso e un piccolo team di esperti. Aspettatevi di spendere almeno 5 milioni di dollari e diversi anni.
  5. Ottieni le maschere fatte per il chip stesso. Se si utilizza un moderno processo a semiconduttore, questo avrà un costo di circa $ 1 milione.
  6. Ottieni il chip stesso. Il prezzo varia, ma dovrebbe essere inferiore a 0,5 milioni di USD.
  7. Effettua il debug del chip che hai creato, correggi i bug, quindi torna al passaggio 5 fino a quando non hai qualcosa che puoi vendere.

Ecco come TU fai:

  1. Segui un corso di laurea in architettura informatica presso la tua università locale.
  2. Segui più corsi di logica digitale e quant'altro.
  3. Progetta una CPU da zero in VHDL o Verilog.
  4. Progettare un'altra CPU da zero.
  5. Guarda il set di istruzioni ARM e progetta una CPU compatibile.
  6. Fai funzionare la tua CPU compatibile ARM in un FPGA.
  7. Non distribuire il codice sorgente VHDL / Verilog a meno che tu non voglia essere citato in giudizio.
  8. Usa la tua esperienza ARM per scrivere una buona tesi di dottorato.
  9. Usa il tuo dottorato di ricerca per ottenere un lavoro presso ARM, TI o chiunque. Quindi ripetere il processo utilizzando i 7 passaggi precedenti su come un'azienda lo fa.

Ok, quindi questo elenco è un po 'ironico ma è sostanzialmente corretto. Il punto è che non preoccuparti nemmeno di gestire direttamente ARM perché è probabile che tu non abbia i soldi. E non fare nulla che possa farti denunciare da ARM.


1
+1. Risposta eccellente. Quello che stavo per dire, ma meglio.
Rocketmagnet,

1
Qualsiasi buon corso dovrebbe includere la struttura di base di diversi tipi di CPU e il modo in cui funzionano tutti. Gli argomenti dovrebbero riguardare il microcodice, la decodifica delle istruzioni, gli ALU, l'accesso alla memoria, la cache, i registri, il pipelining, gli hazzard dei dati, il prefetch delle istruzioni, ecc.

3
C'è qualche ragione per cui il set di istruzioni ARM, in sé e per sé, sarebbe più brevettabile di qualsiasi altra CPU di cui abbondano i cloni? Certamente ci sono alcune caratteristiche architettoniche che sono brevettate, ma se il proprio obiettivo è progettare una CPU che funzionerà con i compilatori esistenti, le istruzioni poste si pongono un problema?
supercat

1
@supercat Normally instructions themselves are not very patent-able unless they incorporate some architectural things. MIPS did this with their CPU's, where they patented some instructions that would load/store words that are not word-aligned as well as some stuff to dynamically switch between big and little endian. This was challenged in court when MIPS sued a MIPS clone maker, and MIPS won (back around 2000). But most patents are about architectural issues. You can't make a CPU that is compatible with existing compilers without copying both the architecture and instruction set, sadly.


32

ARM has a University DesignStart Program. As a student, you can only access basic Cortex-M0 material. But if you are really interested, get your faculty involved and then you can have access to much more design material (Verilog FPGA code, Evaluation IP, Simulations, etc.)


4
Thanks :-) I'll try to get my adviser to request some of these.
Lord Loh.

WFIW, this answer is now outdated, both Cortex-M0 and Cortex-M3 are available, and some parts of the product are open to non-students/institutions.
Sean Houlihane


3

The ARM Cortex-M1 (probably the simplest of the ARM processors) is the first ARM processor specifically designed to be implemented as a soft processor in FPGAs. It is optimized for the following FPGA types:

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

ARM itself is making a Cortex-M1 Development Kit for Altera Cyclone III although it is a little pricey at $625 from DigiKey. You do get all of the ARM Cortex-M1 IP though, and a license to do development (plus a free royalty grant for 1000 boards for those going into production, pretty cool).

There may be some options for getting the IP by itself (perhaps they have an academic program, someone else mentioned a university program, but that was for the M0). Then you could buy a development board separately.

Here is some more information about the ARM Cortex-M1 on Altera.

Here's some information about putting a ARM Cortex-M1 on an Actel FPGA.

Meanwhile there is some interest in other versions of the ARM Cortex on FPGA; here is a paper from someone that implemented a ARM Cortex-M0 on a Xilinx FPGA.


If you want to change the design, try making a "proper" 32-bit machine. Currently, the ARM reads 32-bit instruction 8 bits at a time, meaning the PC increments by 4 for each instruction fetch.
Alan Campbell

1

You can now get access to the Cortex-M3 processor (and an extendable AHB/APB subsystem) through ARM's DesignStart program.

The Eval option provides an FPGA target (simulation is supported, with obfuscated RTL of the core, everything else in Verilog). This currently targets the ARM MPS2+ FPGA, with mbed support.

The Pro version (only available to companies/universities who can sign a license) allows manufacture, and includes the processor core in Verilog (this covers both Cortex-M0 and Cortex-M3).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.