So erstellen Sie Ihr erstes VHDL-Programm:Hallo Welt!
Wenn ich eine neue Programmiersprache lerne, fange ich immer gerne damit an, das Drucken zu lernen. Wenn Sie die Ausgabe von „Hello World!“ beherrschen, wissen Sie, dass die Umgebung funktioniert. Es zeigt Ihnen auch das Grundgerüst der Sprache, den absoluten Mindestcode, der erforderlich ist, um eine Ausgabe zu erzeugen.
Sie denken vielleicht:aber VHDL ist eine Hardwarebeschreibungssprache, wie kann sie überhaupt Text ausgeben? Sie bräuchten einen Bildschirm, der mit einem FPGA oder so verbunden ist, und alle Arten von Logik dazwischen, und das wäre überhaupt nicht einfach. Während all dies wahr ist, vergessen wir FPGAs und ASICs für einen Moment und richten unsere Aufmerksamkeit auf die VHDL-Sprache.
Dieser Blogpost ist Teil der Reihe Basic VHDL Tutorials.
VHDL kann als parallele Programmiersprache betrachtet werden, und daher können wir den Ansatz dieses Programmierers zum Erlernen verwenden. Da wir die Sprache verwenden, um digitale Schaltungen zu beschreiben, können wir sie auf unserem Computer nur mit einem Simulator ausführen , und der Simulator ist definitiv in der Lage, „Hello World!“ Auszugeben. zum Bildschirm.
So installieren Sie kostenlos einen VHDL-Simulator und -Editor
Übung
Dieses Video-Tutorial zeigt Ihnen, wie Sie Ihr allererstes VHDL-Programm erstellen:
Der endgültige Code, den wir erstellt haben:
entity T01_HelloWorldTb is end entity; architecture sim of T01_HelloWorldTb is begin process is begin report "Hello World!"; wait; end process; end architecture;
Die Ausgabe an die Simulatorkonsole, wenn wir in ModelSim die Run-Taste gedrückt haben:
VSIM 2> run # ** Note: Hello World! # Time: 0 ns Iteration: 0 Instance: /t01_helloworld
Analyse
In den ersten beiden Zeilen haben wir die Entität deklariert . Die Entität eines Moduls deklariert seine Ein- und Ausgänge. Damit ein Modul in einem Simulator betrieben werden kann, darf es keine Ein- oder Ausgänge haben. Daher hat unser Modul nichts anderes als eine leere Entity-Deklaration.
Als nächstes haben wir die Architektur deklariert des Moduls. Während die Entität die Schnittstelle eines Moduls zur Außenwelt darstellt, ist die Architektur seine interne Implementierung. Ein Modul kann mehrere Architekturen haben, die mit derselben Entität verwendet werden können. Ich würde mir zu diesem Zeitpunkt nicht allzu viele Gedanken über diese Dinge machen, da es sich um erweiterte VHDL-Funktionen handelt.
Innerhalb der Architektur haben wir einen Prozess deklariert . Im Moment können wir uns einen Prozess als einen Thread in unserem Programm vorstellen, in dem die Dinge nacheinander ablaufen.
Innerhalb des Prozesses drucken wir „Hello World!“ mit dem report
Stichwort. In der nächsten Zeile gibt es ein einzelnes wait;
. Wenn der Simulator diese Linie erreicht, passiert nichts mehr. Der Prozess wird hier ewig warten.
Als wir dieses Design in ModelSim simulierten, konnten wir sehen, dass „Hallo Welt!“ wurde in die Konsolenausgabe ausgegeben. Danach passierte nichts mehr.
Imbiss
- Sie können sich einen Prozess als einen Programm-Thread vorstellen
- Die
report
-Anweisung gibt Text auf der Simulatorkonsole aus - Die Ausführung eines Prozesses wartet für immer auf
wait;
Erklärung
Weiter zum nächsten Tutorial »
VHDL
- Tutorial:Ihr erstes FPGA-Programm:Ein LED-Blinker
- C# Hello World – Ihr erstes C#-Programm
- Java-Hello-World-Programm
- So erstellen Sie eine Liste von Zeichenfolgen in VHDL
- So erstellen Sie eine Tcl-gesteuerte Testbench für ein VHDL-Code-Sperrmodul
- So erstellen Sie einen PWM-Controller in VHDL
- So erstellen Sie einen Ringpuffer-FIFO in VHDL
- So erstellen Sie eine verknüpfte Liste in VHDL
- So verwenden Sie eine Prozedur in einem Prozess in VHDL
- Wie Prototypen Ihren Fertigungsprozess verbessern