Können Sie eine lesbare und lehrreiche Implementierung einer CPU in VHDL oder Verilog empfehlen? Am besten etwas gut Dokumentiertes.
PS Ich weiß, dass ich mir anschauen kann opencores
, aber ich interessiere mich besonders für Dinge, die sich die Leute tatsächlich angesehen und interessant gefunden haben.
PS2. Entschuldigung für die blöden Tags, aber als neuer Benutzer kann ich keine neuen erstellen
Vielleicht gefällt Ihnen eine Artikelserie, die ich vor langer Zeit für das Circuit Cellar Magazin darüber geschrieben habe, Building a RISC System in an FPGA .
Fröhliches Hacken!
Holen Sie sich dieses Buch, ich habe die Erstausgabe. Vor ein paar Jahren habe ich ihre CPU in einem kleinen Flex 10K10 FPGA auf einer von mir entworfenen Leiterplatte implementiert, mit ein paar Drucktasten und einer einzelnen 7-Segment-Anzeige zur Eingabe von Daten und Anzeige der Ergebnisse.
Vieles hängt davon ab, zu welchem Zweck Sie den Code studieren? Mit anderen Worten, was bedeutet interessant für Sie?
Wenn Sie dies tun, um zu sehen, wie viel Komplexität in eine CPU fließen kann, sind Sie möglicherweise mehr daran interessiert, die Quelle der OpenSPARC- Architekturen zu studieren. Es wird lange dauern, in dieses Thema einzutauchen, aber Sie werden die Gesamtansicht eines komplexen Mikroprozessors zu schätzen wissen .
Wenn es darum geht, bestimmte Merkmale der Computermikroarchitektur zu studieren, sollten Sie sich einige unkomplizierte RISC-Maschinen wie den AEMB ansehen , einen kleinen und schnellen 32-Bit-RISC-Prozessor mit mehreren Threads (schamloser Stecker).
Wenn Sie gute Codierungsstile und -konventionen lernen möchten, ist das LEON2-Design ein guter Ort, um einen guten VHDL-Codierungsstil zu lernen.
Wenn Sie jedoch beim Studium eines Prozessors lernen möchten, wie man selbst einen entwickelt, beginnen Sie am besten mit einer der einfachen 8-Bit-Maschinen (es gibt viele AVR-, 8051-, PIC-Beispiele im Internet).
Sie können versuchen, einige Forth-CPU-Designs zu untersuchen. Forth ist eine einfache Programmiersprache, deren Spezifikation und Implementierung durch zwei Stacks (einen für Daten und einen für Rücksprungadressen) definiert ist.
Mehrere kleine VHDL/Verilog-Prozessoren sind frei verfügbar:
Einige weitere Links finden Sie hier:
PS. Obwohl Forth eine ziemlich alte und obskure Sprache ist, haben viele moderne Stack-basierte VMs (Java, schnelle JavaScript-VMs) ein ähnliches Low-Level-Design, sodass es fruchtbar sein kann, etwas darüber zu lernen.
PicoBlaze ist nett, aber es ist nicht in herstellerunabhängigem VHDL verfügbar.
Einige andere Möglichkeiten sind:
Auch wenn Sie nach einem Compiler für Ihre CPU suchen, ist es am wahrscheinlichsten, einen für eine 16-Bit-CPU zu bekommen. Es gab einmal Podericos Compiler von einer C-ähnlichen Sprache zu Picoblaze, aber er wurde aus dem Netz genommen.
Sie können sich den PicoBlaze -Prozessor von Xilinx ansehen . Es ist ein minimaler eingebetteter 8-Bit-Mikrocontroller, und der Quellcode sollte verfügbar sein.
Zu spät, aber ich gebe eine kleine Antwort.
Es gibt einen Kurs namens fromNand2Tetris von der Universität Jerusalem, dieser Kurs ist auch auf Coursera vorhanden, ich habe den Computer gebaut, den sie in diesem Kurs erstellt haben. Ich habe die Sprache im Schema implementiert, um selbst sehen zu können, wie der Computer im kleinsten Detail funktioniert. Und es ist mir gelungen, der Simulator, den sie in Java erstellt haben, kann nicht alles, was ich sehen wollte.
Toby Jaffey
Connor Wolf
Brian Carlton
Janus Troelsen