Ho diverse domande su come progetterei la mia CPU basata su ARM?
- Come si inizia con un Licenza ARM e finire con un pacchetto pronto per essere saldato su una scheda?
- Cosa ottengo da ARM (sono sicuro che abbiano più opzioni di licenza da offrire: licenza di architettura (stile Qualcomm Snapdragon) e licenza core (stile TI OMAP))?
- Di quali strumenti ho bisogno per procedere una volta che ho “quel qualcosa” da ARM?
- Cosa mando al fab?
- Credo che solo alcuni Foundaries abbiano la licenza per incidere un core ARM su un wafer di silicio. Ho ragione?
- Come studente, posso permettermi di farlo su un FPGA? Come posso mettere le mani sullesperienza per qualcosa del genere?
Commenti
- La risposta ovvia è parlare con ARM.
- Dai unocchiata a opencores.com : ci sono molti diversi core di processore in vari stati di completezza e funzionalità. Per quanto riguarda lottenimento della sorgente principale ARM … come dice @OlinLathrop … parla con ARM.
- Non ‘ capisco i voti negativi, questo è potrebbe essere una domanda ingenua, ma sicuramente legittimo IMO.
- Il problema è che la tua domanda è specifica per un flusso di lavoro che non potrai seguire. I flussi di lavoro che puoi seguire, utilizzando un design originale o disponibile gratuitamente in un HDL per indirizzare un FPGA, sono diversi da quello come la speculazione lo è dai fatti.
- Il Cortex-M1 core sembra essere concepito per funzionare in qualsiasi FPGA adeguatamente capace. I principali fornitori di FPGA dispongono della licenza IP e la forniscono al progettista come farebbero con qualsiasi altro soft core. Presumo che non sia gratuito, ma probabilmente ci sono programmi disponibili specificamente per uso accademico.
Risposta
Ecco come lo fanno le aziende:
- Raccogli circa 10 milioni di dollari.
- Negozia con ARM per ottenere una licenza. Questo probabilmente costerà almeno 1 milione di dollari USA.
- Ottieni i file di progettazione da ARM. Probabilmente sarà in qualche forma di VHDL, Verilog o una netlist “crittografata”.
- Progetta il tuo chip usando un mix della tua logica (per le periferiche) e di ciò che ti ha dato ARM. Questo passaggio richiederà probabilmente un costoso software CAD e un piccolo team di esperti. Aspettati di spendere almeno 5 milioni di dollari USA e diversi anni.
- Ottieni le maschere realizzate per il chip stesso. Se si utilizza un qualsiasi processo moderno a semiconduttore, il costo sarà di circa 1 milione di dollari.
- Procurati il chip stesso. Il prezzo varia, ma dovrebbe essere inferiore a 0,5 milioni di dollari.
- Esegui il debug del chip che hai creato, correggi i bug, quindi torna al passaggio 5 finché non hai qualcosa da vendere.
Ecco come TU lo fai:
- Consegui un livello universitario corso di architettura informatica presso luniversità locale.
- Segui più corsi di logica digitale e quantaltro.
- Progetta una CPU da zero in VHDL o Verilog.
- Progetta unaltra CPU da zero.
- Guarda il set di istruzioni ARM e progetta una CPU compatibile.
- Fai funzionare la tua CPU ARM compatibile con un FPGA.
- Don “t distribuire il codice sorgente VHDL / Verilog a meno che tu non voglia essere citato in giudizio.
- Usa la tua esperienza ARM per scrivere una buona dissertazione per il tuo dottorato di ricerca.
- Usa il tuo dottorato di ricerca per ottenere un lavoro in ARM, o TI, o chiunque altro. Quindi ripeti il processo utilizzando i 7 passaggi precedenti su come lo fa unazienda.
Ok, quindi questo elenco è un po ironico maè fondamentalmente corretto. Il punto è che non preoccuparti nemmeno di trattare direttamente con ARM perché è probabile che tu non abbia i soldi. E non fare nulla che possa farti citare in giudizio da ARM.
Commenti
- +1. Ottima risposta. Quello che stavo per dire , ma meglio.
- Qualsiasi buon corso includerebbe la struttura di base di diversi tipi di CPU ‘ e il loro funzionamento. Gli argomenti dovrebbero riguardare il microcodice e la decodifica delle istruzioni , ALU ‘ s, accesso alla memoria, cache, registri, pipelining, errori di dati, prefetch delle istruzioni, ecc.
- Cè qualche motivo per cui ARM ‘ Il set di istruzioni, di per sé, sarebbe più brevettabile di qualsiasi altra CPU di cui abbondano i cloni? Certamente ci possono essere alcune caratteristiche architettoniche che sono brevettate, ma se una Lobiettivo di ‘ è progettare una CPU che funzioni con i compilatori esistenti, il set di istruzioni potrebbe rappresentare un problema?
- @supercat Normalmente le istruzioni stesse non sono molto brevettabile a meno che non incorporino alcuni archi cose tetturali. MIPS lo ha fatto con la propria CPU ‘, dove ha brevettato alcune istruzioni che caricavano / memorizzavano parole non allineate alle parole e alcune cose per passare dinamicamente da big e little endian .Questo è stato contestato in tribunale quando MIPS ha citato in giudizio un produttore di cloni MIPS e MIPS ha vinto (intorno al 2000). Ma la maggior parte dei brevetti riguarda questioni architettoniche. Purtroppo non puoi ‘ creare una CPU compatibile con i compilatori esistenti senza copiare sia larchitettura che il set di istruzioni.
- @LordLoh potresti trovare utili queste domande : electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
Answer
ARM ha un University DesignStart Program . In qualità di studente, puoi accedere solo al materiale Cortex-M0 di base. Ma se sei veramente interessato, coinvolgi la tua facoltà e poi puoi avere accesso a molto più materiale di progettazione (codice FPGA Verilog, IP di valutazione, simulazioni, ecc.)
Commenti
- Grazie 🙂 ‘ cercherò di convincere il mio consulente a richiederne alcuni.
- WFIW, questa risposta è ora obsoleto, sono disponibili sia Cortex-M0 che Cortex-M3 e alcune parti del prodotto sono aperte a non studenti / istituzioni.
Risposta
Dai unocchiata a questo core ARM su OpenCores.
Commenti
- Ma attenzione: tali reimplementazioni sono semplicemente tollerate da ARM: eetimes.com/author.asp?section_id=36& doc_id = 1287452 , sarai soggetto a un cessate-e-desistere / querela. Considera anche archi aperti come RISC-V.
Answer
ARM Cortex-M1 (probabilmente il più semplice i processori ARM) è il primo processore ARM specificamente progettato per essere implementato come un soft processor negli FPGA. È ottimizzato per i seguenti tipi di FPGA :
Actel (M1 ProASIC3 and M1 Fusion) Altera (Cyclone-II, Stratix-III) Xilinx (Spartan-3, Virtex-5)
ARM stesso sta creando un Kit di sviluppo Cortex-M1 per Altera Cyclone III anche se è un po caro a $ 625 da DigiKey . Tuttavia, ottieni tutto lIP ARM Cortex-M1 e una licenza per lo sviluppo (più una concessione di royalty gratuita per 1000 schede per quelle che entrano in produzione, piuttosto interessante).
Potrebbero esserci alcune opzioni per ottenere lIP da solo (forse hanno un programma accademico, qualcun altro ha menzionato un programma universitario, ma quello era per lM0). Quindi potresti acquistare una scheda di sviluppo separatamente.
Ecco alcune informazioni in più su ARM Cortex-M1 su Altera .
Ecco alcune informazioni su come mettere un ARM Cortex-M1 su un FPGA Actel.
Nel frattempo cè un certo interesse per altri versioni di ARM Cortex su FPGA; ecco un documento di qualcuno che ha implementato un ARM Cortex-M0 su un FPGA Xilinx.
Commenti
- Se desideri modificare il design, prova a creare un ” appropriato ” Macchina a 32 bit. Attualmente, ARM legge listruzione a 32 bit 8 bit alla volta, il che significa che il PC aumenta di 4 per ogni recupero dellistruzione.
Risposta
È ora possibile accedere al processore Cortex-M3 (e un sottosistema AHB / APB estendibile) tramite il programma DesignStart di ARM.
Lopzione Eval fornisce un target FPGA (la simulazione è supportata, con RTL offuscato del core, tutto il resto in Verilog). Questo attualmente è destinato a ARM MPS2 + FPGA, con supporto mbed.
La versione Pro (disponibile solo per aziende / università che possono firmare una licenza) consente la produzione e include il core del processore in Verilog (questo copre sia Cortex -M0 e Cortex-M3).