12 Stimmen

Gibt es ein Verilog-Tutorial, in dem Sie einen sehr einfachen Mikroprozessor bauen?

Ich bin ein Programmierer, der Verilog lernen möchte.

Was wäre erstaunlich nett wäre ein Tutorial, wo man konstruiert einen winzigen Mikroprozessor mit einem sehr sauberen Design, so etwas wie ein Intel 4004, und geht dann auf, um tatsächlich machen es mit einem fpga und bekommt es zu blinken LEDs auf Bestellung.

Gibt es ein solches Lernprogramm?

Wenn nicht, werde ich vielleicht versuchen, einen zu schreiben, während ich versuche, es zu tun. Hat jemand Empfehlungen für Ressourcen, auf die ich zurückgreifen könnte? z. B. einen guten Open-Source-Verilog-Compiler, Debugging-Tools, Simulatoren, Verilog-Tutorials, günstige FPGAS- und Programmier-Tools, Breadboards für LEDs usw.

6voto

John Lawrence Aspden Punkte 16503

Ich habe hier einige herrliche Folien über einen elementaren Mikroprozessor gefunden:

http://www.slideshare.net/n380/elementary-processor-tutorial

6voto

lxx Punkte 1306

Die Open-Source-Tools eignen sich gut für die Entwicklung und das Testen, sind aber nicht in der Lage, Ihre hdl zu synthetisieren, um einen Bitstream zu erzeugen; Sie müssen eines der Hersteller-Tools von Altera oder Xilinx (oder anderen) verwenden.

Die Hersteller-Tools kommen als Suiten, sind groß (5GB Installation und benötigen 7 bis 12 GB Speicherplatz) und für Windows und Linux verfügbar. altera.com xilinx.com

Es gibt jede Menge weiche Kerne da draußen. opencores.org wäre ein guter Ort, um einen Blick darauf zu werfen Es gibt den zpuino, der mit Arduino kompatibel ist.

Die beste Idee ist, einfach anzufangen und sich zu steigern. Besorgen Sie sich ein FPGA-Board, implementieren Sie ein einfaches Design (LED-Blinker) und arbeiten Sie sich von dort aus hoch. Ziemlich eine Lernkurve, vor allem, wenn Sie nicht viel digitale Elektronik getan haben.

Denken Sie daran, dass es sich um Hardware handelt und dass Sie Schaltungen entwerfen und keinen Code schreiben. Timing ist also alles.

Schauen Sie sich die Projekte von fpga4fun.com an und arbeiten Sie sie durch als Ausgangspunkt.

xilinx-basiert digilentinc hat einige preiswerte Boards, ebenso wie Gadget Factory. avnet hat eine usb dongle basierte Platine für $80.

altera-basiert . terasic hat einige schöne Boards.

Gadget Factory hat derzeit ein Kickstarter-Projekt für das paillio + einige Zusatzplatinen laufen http://www.kickstarter.com/projects/13588168/retrocade-synth-one-chiptune-board-to-rule-them-al

6voto

Andriy Volkov Punkte 18140

Sie können mit Verilog ohne ein echtes Board spielen, indem Sie das GNU Ikarus Verilog . Sie können erhalten eine Windows-Version von hier .

Es gibt auch ein Tutorial von Niklaus Wirth, wie man eine einfache CPU entwirft und baut, mit Code in Verilog für ein Xilinx Board:

https://www.inf.ethz.ch/personal/wirth/FPGA-relatedWork/RISC.pdf https://www.inf.ethz.ch/personal/wirth/FPGA-relatedWork/ComputerSystemDesign.pdf

~Ja, es ist derselbe Wirth, der Pascal erfunden hat - er spielt mit FPGAs in seinem Ruhestand.

3voto

Tim Punkte 34753

Ich bin mir nicht sicher, ob es ein explizites Verilog-Tutorial gibt, aber vielleicht finden Sie diesen Kurs von MIT open courseware interessant:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/

Alle Kursnotizen sind online verfügbar, und der Lehrplan klingt so, als ob es das wäre, was Sie interessiert (Hervorhebung von mir):

6.004 bietet eine Einführung in die Technik digitaler Systeme. Ausgehend von MOS-Transistoren entwickelt der Kurs eine Reihe von Bausteine - Logikgatter, kombinatorische und sequentielle Schaltungen, Finite-State-Maschinen, Computer und schließlich komplette Systeme. Sowohl Hardware- und Software-Mechanismen werden durch eine Reihe von Entwurfsbeispielen erforscht.

6.004 ist Pflichtstoff für jeden EECS-Studenten, der digitale Systeme verstehen (und letztendlich entwerfen) möchte. Eine gute Beherrschung des Materials ist für spätere Kurse in digitalem Design unerlässlich, Computerarchitektur und Systeme. Bevor Sie 6.004 belegen, sollten Sie sollten sich im Umgang mit Computern sicher fühlen; rudimentäre Kenntnisse der Programmiersprachenkonzepten (6.001) und Grundlagen der Elektrotechnik (6.002) werden vorausgesetzt.

Die Aufgabenstellungen und Laborübungen sind int "praktische Erfahrungen beim Entwurf digitaler Systeme zu sammeln; e fertigt einen Entwurf auf Gatterebene für einen Computer mit reduziertem Befehlssatz an (RISC) Prozessor während des Semesters . Zugang zu den Arbeitsplätzen sowie und die Hilfe des Kurspersonals werden im Labor angeboten, aber i Es ist möglich, die Aufgaben mit Athena-Rechnern oder dem eigenen Computer zu erledigen Heimcomputer .

3voto

Allen Punkte 3511

Altera hat großartige Ressourcen für diese Art von Dingen.

Sie können diesen Link ausprobieren: http://www.altera.com/education/univ/materials/digital_logic/labs/unv-labs.html

Es gibt eine Reihe von Labor-Tutorials, die die Entwicklung eines eingebetteten Prozessors mit Verilog/VHDL erläutern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X