verilog
Hallo Welt
Suche…
Das Beispiel kompilieren und ausführen
Angenommen, eine Quelldatei von hello_world.v
und ein Top-Level-Modul von hello_world
. Der Code kann mit verschiedenen Simulatoren ausgeführt werden. Die meisten Simulatoren sind kompilierte Simulatoren. Sie erfordern mehrere Schritte zum Kompilieren und Ausführen. Im Allgemeinen die
- Der erste Schritt ist das Kompilieren des Verilog-Designs.
- Der zweite Schritt ist die Ausarbeitung und Optimierung des Designs.
- Der dritte Schritt besteht darin, die Simulation auszuführen.
Die Details der Schritte können je nach Simulator variieren, die Gesamtidee bleibt jedoch gleich.
Dreistufiger Prozess mit Cadence Simulator
ncvlog hello_world.v
ncelab hello_world
ncsim hello_world
- Der erste Schritt ncvlog ist das Kompilieren der Datei hello_world.v
- Der zweite Schritt von ncelab besteht darin, den Code mit dem Top-Level-Modul hello_world auszuarbeiten.
- Der dritte Schritt ncsim besteht darin, die Simulation mit dem Top-Level-Modul hello_world auszuführen.
- Der Simulator generiert den gesamten kompilierten und optimierten Code in einer Arbeitsbibliothek. [INCA_libs - Standardbibliotheksname]
Einzelschritt mit Cadence Simulator.
Die Befehlszeile ruft intern die erforderlichen drei Schritte auf. Dies dient dazu, den älteren interpretierten Simulator-Ausführungsstil (einzelne Befehlszeile) nachzuahmen.
irun hello_world.v
or
ncverilog hello_world.v
Hallo Welt
Das Programm gibt Hello World aus! zur Standardausgabe.
module HELLO_WORLD(); // module doesn't have input or outputs
initial begin
$display("Hello World");
$finish; // stop the simulator
end
endmodule
Das Modul ist ein grundlegender Baustein in Verilog. Es stellt eine Sammlung von Elementen dar und ist zwischen Modul- und Endmodulschlüsselwort eingeschlossen. Hier ist hello_world das oberste (und das einzige) Modul.
Anfangsblock wird beim Start der Simulation ausgeführt. Anfang und Ende werden verwendet, um die Begrenzung des ursprünglichen Blocks zu markieren. $display
gibt die Nachricht an die Standardausgabe aus. Es fügt und \ n das Zeilenende "\ n" in die Nachricht ein.
Dieser Code kann nicht synthetisiert werden, dh er kann nicht in einen Chip eingefügt werden.