Ich habe mehrere Fragen dazu, wie ich meine eigene ARM-basierte CPU entwerfen würde.
- Wie beginnt man mit einer ARM-Lizenz und am Ende ein Paket, das bereit ist, auf eine Platine gelötet zu werden?
- 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 sende ich an die Fabrik?
- Ich glaube, nur bestimmte Fundamente sind lizenziert, um 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 bekomme ich praktische Erfahrungen für so etwas?
Kommentare
- Die offensichtliche Antwort ist, mit ARM zu sprechen.
- Schauen Sie sich opencores.com an – dort gibt es viele verschiedene Prozessorkerne in verschiedenen Vollständigkeits- und Funktionszuständen. Was das Erhalten der tatsächlichen ARM-Kernquelle betrifft … wie @OlinLathrop sagt … sprechen Sie mit ARM.
- Ich ‚ verstehe die Abstimmungen nicht mag eine naive Frage sein, aber definitiv eine legitime IMO.
- Das Problem ist, dass Ihre Frage spezifisch für einen Workflow ist, dem Sie nicht folgen können. Die Workflows, denen Sie folgen können – unter Verwendung eines ursprünglichen oder frei verfügbaren Designs in einer HDL als Ziel für ein FPGA – unterscheiden sich ebenso von denen wie Spekulationen.
- Die Cortex-M1-Kern scheint für die Verwendung in jedem geeigneten FPGA vorgesehen zu sein. Die wichtigsten FPGA-Anbieter verfügen über die IP-Lizenz und liefern 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 den akademischen Gebrauch verfügbar sind.
Antwort
Hier ist Wie Unternehmen das machen:
- Sammeln Sie etwa 10 Millionen US-Dollar.
- Verhandeln Sie mit ARM, um eine Lizenz zu erhalten. Dies wird wahrscheinlich mindestens 1 Million US-Dollar kosten.
- Holen Sie sich die Designdateien von ARM. Es wird wahrscheinlich in irgendeiner Form von VHDL, Verilog oder einer „verschlüsselten“ Netzliste vorliegen.
- Entwerfen Sie Ihren eigenen Chip mit einer Mischung aus Ihrer eigenen Logik (für die Peripheriegeräte) und dem, was ARM Ihnen gegeben hat. Dieser Schritt erfordert wahrscheinlich teure CAD-Software und ein kleines Expertenteam. Erwarten Sie mindestens 5 Millionen US-Dollar und mehrere Jahre.
- Lassen Sie die Masken für den Chip selbst herstellen. Wenn Sie ein modernes Halbleiterverfahren verwenden, kostet dieses etwa 1 Million US-Dollar.
- Lassen Sie den Chip selbst herstellen. Der Preis variiert, sollte aber unter 0,5 Millionen US-Dollar liegen.
- 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 machen Sie SIE :
- Machen Sie einen Abschluss Computerarchitekturkurs an Ihrer örtlichen Universität.
- Nehmen Sie an weiteren Kursen in digitaler Logik und was auch immer teil.
- Entwerfen Sie eine CPU von Grund auf in VHDL oder Verilog.
- Design eine andere CPU von Grund auf neu.
- Sehen Sie sich den ARM-Befehlssatz an und entwerfen Sie eine kompatible CPU.
- Lassen Sie Ihre ARM-kompatible CPU in einem FPGA arbeiten.
- Don „Verteilen Sie Ihren VHDL / Verilog-Quellcode nur, wenn Sie verklagt werden möchten.
- Verwenden Sie Ihre ARM-Erfahrung, um eine gute Dissertation für Ihre Promotion zu schreiben.
- Verwenden Sie Ihre Promotion, um einen Job zu bekommen bei ARM oder TI oder wer auch immer. Dann wiederholen Sie den Vorgang mit den vorherigen 7 Schritten, wie ein Unternehmen es macht.
Ok, diese Liste ist also ein wenig ironisches ist grundsätzlich richtig. Der Punkt ist, dass Sie sich nicht einmal direkt mit ARM befassen müssen, da Sie wahrscheinlich nicht das Geld haben. Und tun Sie auch nichts, was Sie von ARM verklagen würde.
Kommentare
- +1. Ausgezeichnete Antwort. Was ich sagen wollte , aber besser.
- Jeder gute Kurs würde die Grundstruktur verschiedener Arten von CPUs ‚ und deren Funktionsweise beinhalten. Die Themen sollten Mikrocode und Befehlsdecodierung abdecken , ALU ‚ s, Speicherzugriff, Cache, Register, Pipelining, Datenrisiken, Befehlsvorabruf usw.
- Gibt es einen Grund dafür, dass die ARM ‚ Der Befehlssatz an und für sich wäre patentierbarer als jede andere CPU, deren Klone im Überfluss vorhanden sind. Sicherlich gibt es einige patentierte Architekturmerkmale, aber wenn überhaupt ‚ Ziel ist es, eine CPU zu entwerfen, die mit vorhandenen Compilern funktioniert. Würde der Befehlssatz selbst ein Problem darstellen?
- @supercat Normalerweise sind die Anweisungen selbst nicht sehr patentierbar, es sei denn, sie enthalten einige Archi tekturale Dinge. MIPS tat dies mit ihren CPU ‚ s, wo sie einige Anweisungen patentierten, die nicht wortausgerichtete Wörter laden / speichern würden, 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 ‚ leider keine CPU erstellen, die mit vorhandenen Compilern kompatibel ist, ohne sowohl die Architektur als auch den Befehlssatz zu kopieren.
- @LordLoh Diese Fragen sind möglicherweise hilfreich : electronic.stackexchange.com/questions/28686/… electronic.stackexchange.com/a/7051/638
Antwort
ARM hat eine DesignStart-Programm der Universität . Als Student können Sie nur auf grundlegendes Cortex-M0-Material zugreifen. Wenn Sie jedoch wirklich interessiert sind, binden Sie Ihre Fakultät ein, und Sie können auf viel mehr Designmaterial (Verilog-FPGA-Code, Evaluierungs-IP, Simulationen usw.) zugreifen.
Kommentare
- Danke 🙂 Ich ‚ werde versuchen, meinen Berater dazu zu bringen, einige davon anzufordern.
- WFIW, diese Antwort ist jetzt veraltet sind sowohl Cortex-M0 als auch Cortex-M3 verfügbar, und einige Teile des Produkts stehen Nicht-Studenten / Institutionen offen.
Antwort
Sehen Sie sich diesen ARM-Kern auf OpenCores an.
Kommentare
- Aber seien Sie gewarnt: Solche Neuimplementierungen werden von ARM lediglich toleriert: eetimes.com/author.asp?section_id=36& doc_id = 1287452 , Sie werden eine Unterlassungsklage entfernt sein. Betrachten Sie auch offene Bögen wie RISC-V.
Antwort
Der ARM Cortex-M1 (wahrscheinlich der einfachste von ARM-Prozessoren) ist der erste ARM-Prozessor, der speziell für die Implementierung als Soft-Prozessor in FPGAs entwickelt wurde. Es ist für die folgenden FPGA-Typen optimiert :
Actel (M1 ProASIC3 and M1 Fusion) Altera (Cyclone-II, Stratix-III) Xilinx (Spartan-3, Virtex-5)
ARM selbst erstellt ein Cortex-M1-Entwicklungskit für Altera Cyclone III , obwohl es bei $ 625 von DigiKey etwas teuer ist . Sie erhalten jedoch die gesamte ARM Cortex-M1-IP und eine Lizenz für die Entwicklung (plus eine kostenlose Lizenzgebühr für 1000 Boards für diejenigen, die in Produktion gehen, ziemlich cool).
Möglicherweise gibt es einige Optionen um das IP selbst zu bekommen (vielleicht haben sie ein akademisches Programm, jemand anderes erwähnte ein Universitätsprogramm, aber das war für das M0). Dann können Sie ein Entwicklungsboard separat kaufen.
Hier finden Sie weitere Informationen zum ARM Cortex-M1 auf Altera .
Hier einige Informationen zum Anbringen eines ARM Cortex-M1 auf einem Actel-FPGA.
In der Zwischenzeit besteht ein gewisses Interesse an anderen Versionen des ARM Cortex auf FPGA; hier ist ein Artikel von jemandem, der einen ARM Cortex-M0 auf einem Xilinx FPGA implementiert hat.
Kommentare
- Wenn Sie das Design ändern möchten, versuchen Sie, eine “ richtige “ 32-Bit-Maschine. Derzeit liest der ARM 8-Bit-32-Bit-Befehle gleichzeitig, was bedeutet, dass der PC bei jedem Befehlsabruf um 4 erhöht wird.
Antwort
Sie können jetzt über das DesignStart-Programm von ARM auf den Cortex-M3-Prozessor (und ein erweiterbares AHB / APB-Subsystem) zugreifen.
Die Eval-Option bietet ein FPGA-Ziel (Simulation wird unterstützt, mit verschleierter RTL des Kerns, alles andere in Verilog). Dies zielt derzeit auf das ARM MPS2 + FPGA mit mbed-Unterstützung ab.
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 und Cortex-M3).