Ich bin ein EE-Student und kann [zumindest einfache] Programme in mehr Sprachen schreiben, als ich Finger habe. Ich habe gerade angefangen, VHDL zu lernen, und ich habe mich gefragt, was ein gutes Projekt wäre, um die Sprache und die relevanten Tools wirklich kennenzulernen? Ich habe Probleme damit, eines zu finden, weil es für mich ein ganz anderer Programmierstil ist.
Ich habe einfache Dinge wie Addierer gemacht, aber ich suche ein längerfristiges Projekt (dh einen Monat oder so).
Falls es relevant ist, habe ich Xilinx Webpack und ein Digilent Spartan3-Board.
Da Sie an der Programmierung interessiert zu sein scheinen, könnten Sie einen einfachen Mikroprozessor bauen.
quelle
Sie sollten opencores.org besuchen und dort ein interessantes Projekt finden. Sie können auch das Sigasi HDT herunterladen , mit dem Sie die VHDL-Grammatik auf den neuesten Stand bringen können .
quelle
Ich habe es genossen, dieses Jahr mit Hans bei Hardhack am Rekonstrukt- Projekt zu arbeiten, um einen grundlegenden Synthesizer in einem FPGA zu bauen. LED-Projekte sind auch gut, aber es gibt nichts Schöneres, als das FPGA an eine Stereoanlage anzuschließen. Es wird nicht von Grund auf aufgebaut, wie dies bei einem LED-Projekt der Fall wäre, da das Projekt auf einem Open-Core-Prozessor basiert, der dies unterstützt. Zu Beginn lernen Sie also, wie Sie das FPGA mit dem Projekt grundsätzlich laden, und können dann mit den Hüllkurven in FORTH spielen. Wenn Sie jedoch mehr über die FPGA-Interna erfahren möchten, müssen Sie Funktionen hinzufügen, die dann das Eingraben in die VHDL erfordern.
quelle
Ein Projekt, das mir Spaß machte, war die Implementierung des Milton Bradley Simon-Spiels auf einem FPGA.
In unserer EDA-Klasse an meiner Universität wird dasselbe Board verwendet, das Sie erwähnt haben. Einige der umgesetzten Projekte umfassten:
Das kann Ihnen einige Ideen geben.
Ich werde die Idee von opencores.org unterstützen und Ihren eigenen Mikroprozessor implementieren. Da Sie über ein Xilinx-FPGA verfügen, können Sie auch Mikroblasen oder Picoblasen verwenden.
Bearbeiten: Formatieren.
quelle
Ich habe vor einiger Zeit vhdl-Code für xilinx virtex core geschrieben. Es war eine Wecker-Implementierung. Das habe ich gemacht:
Gespült, wiederholt 1-3. Ich möchte darauf hinweisen, dass die Bitstream-Generierung weitgehend in die IDE von Xilinx integriert ist. Für die Implementierung in HDL ist lediglich eine klare Logik erforderlich. Alle anderen Dinge werden von der IDE erledigt.
quelle
Numerisch gesteuerter Oszillator würde Spaß machen. Ich habe gerade ein Design mit meinem Arduino-kompatiblen Board erstellt (siehe http://tinyurl.com/ydmz2su ), aber dies wäre perfekt für ein FPGA.
Hier finden Sie einige Designreferenzen.
Snell, John 1988 "Entwurf eines digitalen Oszillators, der in Echtzeit bis zu 256 verzerrungsarme Sinuswellen erzeugt" Grundlagen der Computermusik. Cambridge, Mass .: MIT Press
Moore, F. Richard 1988 "Table Lookup Noise for Sinusal Digital Oscillators" Grundlagen der Computermusik. Cambridge, Mass .: MIT Press
quelle
Was ich mache, ist ein bisschen CPU. Es ist eine schöne, abgerundete Möglichkeit, um alle Grundlagen abzudecken.
Sie werden alle Grundlagen eines großen Projekts in VHDL behandeln und mit allen Kernthemen des VHDL-Designs vertraut gemacht (Uhren, Eingänge, Ausgänge, Logik, Busse und sequentielles Design am wichtigsten) sowie mit vielen wichtigen elektronischen Elementen und Computern Design- und Architekturkonzepte wie Register, Datenoperationen, Speicher und Computerarithmetik.
Sie können einfach mit Addition und Subtraktion beginnen und dann weitere Funktionen hinzufügen, während Sie lernen, und sich zu einem voll funktionsfähigen (wenn auch einfachen ... oder wie ich es lieber als "Retro" bezeichne) Computer hocharbeiten. Zumindest ist das mein Plan.
Außerdem ist es einfach cool, einen eigenen Computer auf einem Chip zu haben :) Wie ein 16-Bit-Raspberry Pi: P
Andere gängige FPGA-Projekte:
-Musik-Synthesizer
-DSP-Effektgenerator
-MIDI-Controller / Unterbrecher
-Bitcoin Miner
- Emulatoren für Videospielkonsolen
- Kundenspezifische Arduino-Schilde
-Parallele Prozessoren (sehr nützlich für bestimmte mathematische Probleme, bei denen herkömmliche Computer nicht besonders gut sind)
-Robotik / Steuerungssysteme
-Datenerfassung (ziemlich wenige Oszilloskop-Designs für FPGAs, wenn Sie wissen, wie man mit Operationsverstärkern arbeitet)
VHDL alleine ist nicht schrecklich kompliziert. Das Wichtigste, an das Sie sich erinnern sollten, ist, dass Sie eine physikalische elektronische Digitalschaltung entwerfen und kein Programm für einen Mikrocontroller schreiben. Ihre Simulation ist kein Programm, das Zeile für Zeile ausgeführt wird. Lassen Sie sich also nicht von der oberflächlichen Ähnlichkeit mit C täuschen. VHDL ist ein ganz anderes Paradigma.
quelle