Wie entwerfe ich meine eigenen ARM-basierten Prozessoren?

37

Ich habe mehrere Fragen zum Entwerfen meiner eigenen ARM-basierten CPU.

  • Wie beginnt man mit einer ARM-Lizenz und endet mit einem Paket, das zum Auflöten auf eine Platine bereit ist?
  • Was bekomme ich von ARM (ich bin sicher, dass es mehrere Lizenzoptionen gibt - Architekturlizenz (Qualcomm Snapdragon-Stil) und Kernlizenz (TI OMAP-Stil))?
  • Welche Tools benötige ich, um fortzufahren, wenn ich "das Etwas" von ARM habe?
  • Was schicke ich an die Fabrik?
  • Ich glaube, nur bestimmte Gründer sind lizenziert, einen ARM-Kern auf einen Siliziumwafer zu ätzen. Habe ich recht?
  • Kann ich es mir als Student leisten, dies auf einem FPGA zu tun? Wie kann ich Erfahrungen für so etwas sammeln?
Lord Loh.
quelle
9
Die offensichtliche Antwort ist, mit ARM zu sprechen.
Olin Lathrop
3
Werfen Sie einen Blick auf opencores.com - dort gibt es viele verschiedene Prozessorkerne in verschiedenen Zuständen von Vollständigkeit und Funktionalität. Bezüglich der Beschaffung der eigentlichen ARM-Kernquelle ... wie @OlinLathrop sagt ... sprechen Sie mit ARM.
Akohlsmith
6
Ich verstehe die Abstimmungen nicht, das ist vielleicht eine naive Frage, aber definitiv legitime IMO.
Jon L
2
Das Problem ist, dass Ihre Frage spezifisch für einen Workflow ist, dem Sie nicht folgen können. Die Arbeitsabläufe, die Sie verfolgen können - unter Verwendung eines Originaldesigns oder eines frei verfügbaren Designs in einer HDL, um auf ein FPGA abzuzielen - unterscheiden sich ebenso von den tatsächlichen Spekulationen.
Chris Stratton
2
Der Cortex-M1-Core sollte in jedem geeigneten FPGA ausgeführt werden können. Die wichtigsten FPGA-Anbieter verfügen über die IP-Lizenz und übergeben sie wie jeden anderen Softcore an den Designer. Ich gehe davon aus, dass dies nicht kostenlos ist, aber es gibt wahrscheinlich Programme, die speziell für akademische Zwecke zur Verfügung stehen.
RBerteig

Antworten:

68

So machen es Unternehmen:

  1. Beschaffung von rund 10 Millionen US-Dollar.
  2. Verhandeln Sie mit ARM, um eine Lizenz zu erhalten. Dies wird wahrscheinlich mindestens 1 Million US-Dollar kosten.
  3. Holen Sie sich die Designdateien von ARM. Es wird wahrscheinlich eine Form von VHDL, Verilog oder einer "verschlüsselten" Netzliste sein.
  4. Entwerfen Sie Ihren eigenen Chip mit einer Mischung aus Ihrer eigenen Logik (für die Peripheriegeräte) und dem, was Sie von ARM erhalten haben. Dieser Schritt erfordert wahrscheinlich teure CAD-Software und ein kleines Expertenteam. Rechnen Sie mit mindestens 5 Millionen US-Dollar und mehreren Jahren.
  5. Holen Sie sich die Masken für den Chip selbst gemacht. Wenn Sie ein modernes Halbleiter-Verfahren verwenden, wird dies eine Million US-Dollar kosten.
  6. Holen Sie sich den Chip selbst gemacht. Der Preis variiert, sollte aber unter 0,5 Mio. USD liegen.
  7. Debuggen Sie den von Ihnen erstellten Chip, beheben Sie die Fehler und kehren Sie dann zu Schritt 5 zurück, bis Sie etwas haben, das Sie verkaufen können.

So machst DU es:

  1. Nehmen Sie an einem Kurs für Computerarchitektur an Ihrer örtlichen Universität teil.
  2. Nehmen Sie an weiteren Kursen in digitaler Logik teil und was auch immer.
  3. Entwerfen Sie eine CPU von Grund auf in VHDL oder Verilog.
  4. Entwerfen Sie eine andere CPU von Grund auf neu.
  5. Sehen Sie sich den ARM-Befehlssatz an und entwerfen Sie eine kompatible CPU.
  6. Stellen Sie sicher, dass Ihre ARM-kompatible CPU in einem FPGA funktioniert.
  7. Verteilen Sie Ihren VHDL / Verilog-Quellcode nur, wenn Sie verklagt werden möchten.
  8. Nutzen Sie Ihre ARM-Erfahrung, um eine gute Dissertation für Ihre Promotion zu schreiben.
  9. Verwenden Sie Ihre Promotion, um einen Job bei ARM oder TI oder bei wem auch immer zu bekommen. Wiederholen Sie anschließend den Vorgang mit den vorherigen 7 Schritten zur Vorgehensweise eines Unternehmens.

Ok, diese Liste ist ein bisschen frech, aber im Grunde ist sie korrekt. Der Punkt ist, dass Sie sich nicht einmal direkt mit ARM befassen müssen, weil Sie wahrscheinlich nicht über das Geld verfügen. Und tu auch nichts, was dich von ARM verklagen lässt.


quelle
1
+1. Hervorragende Antwort. Was ich sagen wollte, aber besser.
Rocketmagnet
1
Jeder gute Kurs würde die Grundstruktur der verschiedenen CPU-Typen und deren Funktionsweise beinhalten. Die Themen sollten Mikrocode, Befehlsdecodierung, ALUs, Speicherzugriff, Cache, Register, Pipelining, Datenprobleme, Befehlsvorabruf usw.
3
Gibt es einen Grund, warum der Befehlssatz des ARM an und für sich patentierbarer wäre als alle anderen CPUs, deren Klone im Überfluss vorhanden sind? Natürlich gibt es einige Architekturmerkmale, die patentiert sind. Wenn man jedoch eine CPU entwickeln möchte, die mit vorhandenen Compilern kompatibel ist, würde der Befehlssatz selbst ein Problem darstellen?
Superkatze
1
@supercat Normalerweise sind Anweisungen selbst nicht sehr patentfähig, es sei denn, sie enthalten einige architektonische Dinge. MIPS hat dies mit ihren CPUs getan, wo sie einige Anweisungen patentiert haben, die Wörter laden / speichern, die nicht wortausgerichtet sind, sowie einige Dinge, um dynamisch zwischen Big- und Little-Endian zu wechseln. Dies wurde vor Gericht angefochten, als MIPS einen MIPS-Klonhersteller verklagte und MIPS gewann (zurück um 2000). Bei den meisten Patenten geht es jedoch um architektonische Fragen. Sie können keine CPU erstellen, die mit vorhandenen Compilern kompatibel ist, ohne die Architektur und den Befehlssatz zu kopieren.
1
@LordLoh Sie finden diese Fragen möglicherweise hilfreich: electronics.stackexchange.com/questions/28686/… electronics.stackexchange.com/a/7051/638
W5VO
32

ARM hat ein University DesignStart-Programm . Als Student haben Sie nur Zugriff auf grundlegendes Cortex-M0-Material. Wenn Sie jedoch wirklich interessiert sind, binden Sie Ihre Fakultät ein, und Sie haben Zugriff auf viel mehr Designmaterial (Verilog-FPGA-Code, Evaluierungs-IP, Simulationen usw.).

embedded.kyle
quelle
4
Danke :-) Ich werde versuchen, meinen Berater dazu zu bringen, einige davon anzufordern.
Lord Loh.
WFIW, diese Antwort ist jetzt veraltet, sowohl Cortex-M0 als auch Cortex-M3 sind verfügbar, und einige Teile des Produkts stehen auch Nicht-Studenten / Institutionen offen.
Sean Houlihane
3

Der ARM Cortex-M1 (wahrscheinlich der einfachste ARM-Prozessor) ist der erste ARM-Prozessor, der speziell für die Implementierung als Soft-Prozessor in FPGAs entwickelt wurde. Es ist für folgende FPGA-Typen optimiert :

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

ARM selbst stellt ein Cortex-M1-Entwicklungskit für Altera Cyclone III her, obwohl es mit 625 USD von DigiKey ein wenig teuer ist . Sie erhalten jedoch die gesamte ARM Cortex-M1-IP und eine Lizenz für die Entwicklung (plus einen kostenlosen Lizenzzuschuss für 1000 Boards für diejenigen, die in Produktion gehen, ziemlich cool).

Möglicherweise gibt es einige Optionen, um die IP selbst zu erhalten (vielleicht haben sie ein akademisches Programm, jemand anderes hat ein Universitätsprogramm erwähnt, aber das war für die M0). Dann könnten Sie ein Entwicklungsboard separat kaufen.

Hier finden Sie weitere Informationen zum ARM Cortex-M1 auf Altera .

Im Folgenden finden Sie Informationen zum Versetzen eines ARM Cortex-M1 in ein Actel-FPGA.

In der Zwischenzeit besteht ein gewisses Interesse an anderen Versionen des ARM Cortex für FPGA. Hier ist ein Artikel von jemandem, der einen ARM Cortex-M0 auf einem Xilinx-FPGA implementiert hat.

Tcrosley
quelle
Wenn Sie das Design ändern möchten, versuchen Sie, einen "richtigen" 32-Bit-Computer zu erstellen. Derzeit liest der ARM 32-Bit-Befehle 8 Bits gleichzeitig, was bedeutet, dass der PC für jeden Befehlsabruf um 4 erhöht wird.
Alan Campbell
1

Sie können jetzt über das DesignStart-Programm von ARM auf den Cortex-M3-Prozessor (und ein erweiterbares AHB / APB-Subsystem) zugreifen.

Die Option "Eval" bietet ein FPGA-Ziel (Simulation wird unterstützt, mit verschleierter RTL des Kerns, alles andere in Verilog). Dies betrifft derzeit das ARM MPS2 + FPGA mit mbed-Unterstützung.

Die Pro-Version (nur für Unternehmen / Universitäten verfügbar, die eine Lizenz unterzeichnen können) ermöglicht die Herstellung und enthält den Prozessorkern in Verilog (dies gilt sowohl für Cortex-M0 als auch für Cortex-M3).

Sean Houlihane
quelle