Projekt zum Erlernen von VHDL

16

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.

Penjuin
quelle

Antworten:

7

Mein "Hallo Welt" FPGA-Projekt war ein LED-Array-Controller mit PWM und seriellem Stream-Eingang. Das Endergebnis war nett ( http://lbw.axe-man.org/led1.wmv ), aber ich gebe zu, dass ich einen Teil davon mit dem Altera Quartus-Schaltplan-Editor gemacht habe, um zu sehen, wie VHDL-Teile beschrieben wurden.

Axeman
quelle
Das ist eine großartige Idee. Ich habe gerade eine 16x16-Matrix ohne Controller ausgewählt, und ein Controller wäre großartig. ordentliches Video!
Penjuin
Hübsches Video! Und dieser Schaltplaneditor ist da, um verwendet zu werden.
Monica
10

Da Sie an der Programmierung interessiert zu sein scheinen, könnten Sie einen einfachen Mikroprozessor bauen.

sternenblau
quelle
Sehr zu empfehlen. Am Ende lernen Sie nicht nur die FPGA- und VHDL-Seite kennen, sondern auch, wie Prozessoren funktionieren, welche Entwicklungswerkzeuge zur Unterstützung eines Prozessors erforderlich sind usw.
Chris Stratton
4

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.

Cyphunk
quelle
2

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:

  • Bildverarbeitung: Medianfilter, Histogrammdehnung, Kantenerkennung
  • Kryptographie: AES, verschiedene Hashalgorithmen usw.
  • Kommunikation: Ethernet, USB, I2C usw.
  • Spiele: Pong, Space Invaders, etc.

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.

David Brenner
quelle
1

Ich habe vor einiger Zeit vhdl-Code für xilinx virtex core geschrieben. Es war eine Wecker-Implementierung. Das habe ich gemacht:

  • Lies viel durch das vhdl-Handbuch - ich müsste es jetzt überarbeiten, aber ich fand es ziemlich einfach und benutzerfreundlich hdl :-)
  • Verwendete Xilinx Suite (Compiler, Synthesizer), um den Bitstream zu erhalten
  • Hat die Bitstreams mit jtag hochgeladen

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.

Ishwor Gurung
quelle
1

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

jluciani
quelle
0

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.

user9892
quelle