Verilog für Einsteiger: Hello-World-Beispiel
Es ist immer am besten, mit einem sehr einfachen Beispiel zu beginnen, und keines eignet sich besser als "Hello World!".
// Einzeilige Kommentare beginnen mit doppeltem Schrägstrich "//"
// Verilog-Code wird immer innerhalb von Modulen geschrieben,
// und jedes Modul repräsentiert einen digitalen Block mit bestimmter Funktionalität
module tb;
// Initial-Block ist ein weiteres Konstrukt, das typischerweise verwendet wird,
// um Signal-Netze und Variablen für die Simulation zu initialisieren
initial
// Verilog unterstützt die Anzeige von Signalwerten auf dem Bildschirm,
// damit Designer debuggen können, was mit ihrem Schaltkreis nicht stimmt
// Für unsere Zwecke geben wir einfach "Hello World" aus
$display("Hello World!");
endmodule
Ein module namens tb ohne Ein-/Ausgabe-Ports fungiert als Top-Modul für die Simulation. Der initial-Block startet und führt das erste Statement zum Zeitpunkt 0 Zeit-Einheiten aus. $display ist ein Verilog-System-Task, der einen formatierten String auf der Konsole ausgibt und nicht in Hardware synthetisiert werden kann. Er wird primär für Testbench- und Design-Debugging verwendet. In diesem Fall wird die Textnachricht "Hello World!" auf dem Bildschirm angezeigt.
Simulations-Ausgabe:
ncsim> run Hello World! ncsim: *W,RNQUIE: Simulation is complete.
Verilog
- C# Hello World – Ihre erste C#-Anwendung erstellen
- Java Hello World: Ihr erstes Programm
- Verilog meistern: Komplettes Tutorial für digitales Schaltungsdesign
- Verilog Concatenation meistern: Praktischer Leitfaden
- Verilog Assignments verstehen: Typen, Syntax und Best Practices
- Verilog Blocking vs. Non-Blocking: Wichtige Unterschiede erklärt
- Verilog Functions meistern für effizientes RTL-Design
- Verilog Tasks verstehen: Functions vs. Tasks, Syntax und Verwendung
- Verilog Clock Generator: Design & Implementierungsleitfaden
- Verilog Math Functions meistern für effizientes Hardware-Design