Comment concevoir mes propres processeurs basés sur ARM?

37

J'ai plusieurs questions sur la manière de concevoir mon propre processeur basé sur ARM.

  • Comment peut-on commencer avec une licence ARM et se retrouver avec un paquet prêt à être soudé sur un tableau?
  • Qu'est-ce que je reçois de ARM (je suis sûr qu'ils ont plusieurs options de licence à utiliser - licence d'architecture (style Qualcomm Snapdragon) et licence Core (style TI OMAP))?
  • De quels outils ai-je besoin pour continuer une fois que j'ai «quelque chose» d'ARM?
  • Qu'est-ce que j'envoie à la fab?
  • Je crois que seuls certains fondés sont autorisés à graver un noyau ARM sur une tranche de silicium. Ai-je raison?
  • En tant qu'étudiant, puis-je me permettre de faire cela sur un FPGA? Comment puis-je obtenir une expérience pratique pour quelque chose comme ça?
Seigneur Loh.
la source
9
La réponse évidente est de parler à ARM.
Olin Lathrop
3
Jetez un coup d'œil à opencores.com - il existe de nombreux cœurs de processeur dans différents états de complétude et de fonctionnalité. En ce qui concerne l'obtention de la source principale d'ARM, comme le dit @OlinLathrop ..., parlez à ARM.
akohlsmith
6
Je ne comprends pas les votes négatifs, c’est peut-être une question naïve, mais certainement légitime, l’OMI.
Jon L
2
Le problème est que votre question est spécifique à un flux de travail que vous ne pourrez pas suivre. Les flux de travaux que vous pouvez suivre - en utilisant un design original ou disponible librement dans un HDL pour cibler un FPGA - sont aussi différents que cela est spéculatif.
Chris Stratton
2
Le noyau Cortex-M1 semble être destiné à fonctionner dans tout FPGA capable. Les principaux fournisseurs de FPGA possèdent la licence IP et la remettent au concepteur comme tout autre noyau logiciel. Je suppose que ce n'est pas gratuit, mais il existe probablement des programmes spécifiquement destinés à un usage académique.
RBerteig

Réponses:

68

Voici comment les entreprises le font:

  1. Collecter environ 10 millions de dollars américains.
  2. Négocier avec ARM pour obtenir une licence. Cela coûtera probablement au moins 1 million de dollars.
  3. Obtenez les fichiers de conception d'ARM. Ce sera probablement sous une forme de VHDL, Verilog ou une netlist "cryptée".
  4. Concevez votre propre puce en combinant votre propre logique (pour les périphériques) et ce que ARM vous a donné. Cette étape nécessitera probablement un logiciel de CAO coûteux et une petite équipe d'experts. Attendez-vous à dépenser au moins 5 millions de dollars US et plusieurs années.
  5. Obtenez les masques faits pour la puce elle-même. Si vous utilisez un procédé de semi-conducteur moderne, cela coûtera environ 1 million de dollars américains.
  6. Obtenez la puce elle-même faite. Le prix varie, mais devrait être inférieur à 0,5 million USD.
  7. Déboguez la puce que vous avez créée, corrigez les bogues, puis revenez à l'étape 5 jusqu'à ce que vous ayez quelque chose que vous puissiez vendre.

Voici comment vous le faites:

  1. Suivez un cours d'architecture informatique de deuxième cycle de votre université locale.
  2. Prenez plus de cours en logique numérique et tout le reste.
  3. Concevez un processeur à partir de zéro en VHDL ou Verilog.
  4. Concevez un autre processeur à partir de zéro.
  5. Examinez le jeu d’instructions ARM et concevez un processeur compatible.
  6. Faites fonctionner votre CPU compatible ARM dans un FPGA.
  7. Ne distribuez pas votre code source VHDL / Verilog sauf si vous souhaitez être poursuivi.
  8. Utilisez votre expérience ARM pour rédiger un bon mémoire pour votre doctorat.
  9. Utilisez votre doctorat pour obtenir un emploi chez ARM, TI ou qui que ce soit. Répétez ensuite le processus en utilisant les 7 étapes précédentes sur la façon dont une entreprise le fait.

Ok, donc cette liste est un peu ironique mais elle est fondamentalement correcte. Le fait est que vous n'avez même pas la peine de traiter avec ARM directement car il y a de fortes chances que vous n'ayez pas l'argent. Et ne faites rien qui vous fasse poursuivre en justice par ARM non plus.


la source
1
+1 Excellente réponse. Ce que j'allais dire, mais mieux.
Rocketmagnet
1
Tout bon cours comprendrait la structure de base de différents types de CPU et leur fonctionnement. Les rubriques doivent couvrir le microcode, le décodage des instructions, les ALU, l'accès à la mémoire, le cache, les registres, les pipelining, les données hazzards, la lecture anticipée des instructions, etc.
3
Existe-t-il une raison pour laquelle le jeu d'instructions de l'ARM, en lui-même, serait plus brevetable que l'un des autres processeurs dont abondent les clones? Certes, certaines caractéristiques architecturales sont brevetées, mais si l'objectif est de concevoir un processeur qui fonctionnera avec les compilateurs existants, le jeu d'instructions lui-même poserait-il un problème?
Supercat
1
@supercat Normalement, les instructions elles-mêmes ne sont pas très brevetables, sauf si elles incorporent des éléments architecturaux. MIPS a fait cela avec ses processeurs, où il a breveté des instructions pour charger / stocker des mots qui ne sont pas alignés ainsi que des éléments permettant de basculer de manière dynamique entre gros et petits endiens. Cela a été contesté devant les tribunaux lorsque MIPS a poursuivi un fabricant de clones MIPS et que MIPS a gagné (vers 2000). Mais la plupart des brevets concernent des problèmes d'architecture. Vous ne pouvez pas créer un processeur compatible avec les compilateurs existants sans copier l’architecture et le jeu d’instructions, malheureusement.
1
@LordLoh vous pouvez trouver ces questions utiles: electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
W5VO
32

ARM a un programme universitaire DesignStart . En tant qu'étudiant, vous ne pouvez accéder qu'au matériel de base Cortex-M0. Mais si vous êtes vraiment intéressé, impliquez votre corps professoral et vous aurez alors accès à beaucoup plus de matériel de conception (code Verilog FPGA, Evaluation IP, Simulations, etc.).

embedded.kyle
la source
4
Merci :-) Je vais essayer de demander à mon conseiller de vous en demander.
Seigneur Loh.
WFIW, cette réponse est maintenant obsolète, les modèles Cortex-M0 et Cortex-M3 sont disponibles et certaines parties du produit sont accessibles aux non-étudiants / institutions.
Sean Houlihane
3

L'ARM Cortex-M1 (probablement le plus simple des processeurs ARM) est le premier processeur ARM spécifiquement conçu pour être implémenté en tant que processeur logiciel dans les FPGA. Il est optimisé pour les types de FPGA suivants :

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

ARM réalise actuellement un kit de développement Cortex-M1 pour Altera Cyclone III bien qu’il soit un peu cher à 625 $ de DigiKey . Cependant, vous obtenez tout l’adresse IP de Cortex-M1 d’ARM et une licence de développement (plus une subvention gratuite pour 1 000 panneaux pour ceux qui entrent en production, ce qui est plutôt cool).

Il peut y avoir quelques options pour obtenir la propriété intellectuelle par elle-même (peut-être ont-ils un programme universitaire, quelqu'un d'autre a-t-il mentionné un programme universitaire, mais c'était pour le M0). Ensuite, vous pourriez acheter une carte de développement séparément.

Voici quelques informations supplémentaires sur l' ARM Cortex-M1 sur Altera .

Voici quelques informations sur l’utilisation d’un processeur ARM Cortex-M1 sur un FPGA Actel.

En attendant, d'autres versions du processeur ARM sur FPGA suscitent de l'intérêt. voici un article de quelqu'un qui a implémenté un ARM Cortex-M0 sur un FPGA Xilinx.

tcrosley
la source
Si vous souhaitez modifier la conception, essayez de créer une machine "correcte" 32 bits. Actuellement, l'ARM lit une instruction 32 bits 8 bits à la fois, ce qui signifie que le PC incrémente de 4 pour chaque extraction d'instructions.
Alan Campbell
1

Vous pouvez désormais accéder au processeur Cortex-M3 (et à un sous-système AHB / APB extensible) via le programme DesignStart d'ARM.

L'option Eval fournit une cible FPGA (la simulation est prise en charge, avec une RTL obfusquée du noyau, tout le reste dans Verilog). Ceci cible actuellement le FPGA ARM MPS2 +, avec le support mbed.

La version Pro (disponible uniquement pour les entreprises / universités qui peuvent signer une licence) permet la fabrication et inclut le cœur du processeur dans Verilog (ceci couvre à la fois Cortex-M0 et Cortex-M3).

Sean Houlihane
la source