Tutorials im Zusammenhang mit Verilog
Transcription
Tutorials im Zusammenhang mit Verilog
Tutorials im Zusammenhang mit Verilog-Simulation Installation, Konfiguration, Simulation 15. Oktober 2008 Autoren: Wolfgang Heenes, Jacqueline Vogel, Joscha Drechsler Zusammenstellung: Joscha Drechsler [email protected] FB Informatik FG Rechnerarchitektur 1 Inhaltsverzeichnis 1 Simulation mit dem Xillinx ISE WebPack 1.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Erstellung und Simulation eines Projektes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 Tutorial für Icarus und GTKWave 2.1 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 7 3 Tutorial für Integration von Icarus Verilog und GTKWave in Eclipse unter Windows 3.1 Verwendete Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Eclipse developement platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 „Verilog Editor“ Plugin für Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.4 Gimp Tool Kit (GTK) for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.5 GTKWave (Win32 Version) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Eclipse developement platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 Gimp Tool Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.4 GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.5 Verilog Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Einstellen der Verilog-Ansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Erstellen des Verilog-Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Konfiguration des Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Beispiel und Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 Die Testumgebung testbed.v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.2 Das Modul clockInverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.3 Ausgabe der Waveform in GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10 10 10 10 10 10 10 10 10 11 11 11 13 13 14 16 18 18 19 19 4 Tutorial für Quartus II 4.1 Anlegen eines Projekts . . . . 4.2 Eingabe eines Design-Files . . 4.3 Übersetzung des Design-Files 4.4 Simulation des Design-Files . 4.5 Benutzung des RTL Viewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 23 23 23 25 5 Tutorial für Verilogger Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2 1 Simulation mit dem Xillinx ISE WebPack 1.1 Installation Als erstes muss die Entwicklungsumgebung ISE installiert werden. Die Software ist für Windows und Linux verfügbar.1 Als Programmpaket wird das ISE WebPACK verwendet, um es herunterzuladen muss man bei Xilinx registriert sein. Die URL zum Download lautet: • http://www.xilinx.com/ise/logic_design_prod/webpack.htm Fertig installiert nimmt das Tool etwa 4 GB Speicherplatz ein! Außerdem sollten die folgenden zwei Dokumentationen heruntergeladen werden: 1. http://toolbox.xilinx.com/docsan/xilinx10/books/manuals.pdf 2. http://toolbox.xilinx.com/docsan/xilinx10/books/docs/qst/qst.pdf 1.2 Erstellung und Simulation eines Projektes Legen Sie mit Xilinx ISE ein neues Projekt an. Nutzen Sie dazu den New Project Wizard (File → New Project. . . ). Als Projektname geben Sie z. B. uebung1_2 ein. Außerdem können Sie ein Arbeitsverzeichnis wählen. Geben Sie als Family Virtex2P, als Device XC2VP30, als Package FF896 und für Speed -5 an. Wichtig ist, dass Sie als Simulator ISE Simulator (VHDL/Verilog) auswählen. Die folgende Abbildung zeigt das Auswahlfenster. 1 Studierende mit anderen Betriebssystemen können die Übungen im Pool durchführen. Auf den Rechnern der RBG ist ebenfalls eine Installation vorhanden. Dazu muss in einem Terminalfenster source/usr/local/CAD-Tools/ise-9.1/settings.sh ausgeführt werden. Mit ise wird das Programm gestartet. 3 Das nächste Fenster erlaubt es neue Quellcodedateien zu erstellen. Klicken Sie auf New Source. . . . Geben Sie als Dateinamen hadd.v an und wählen Sie als Typ Verilog Module. Der New Source Wizzard erlaubt die Eingabe der Eingänge und Ausgänge. Erstellen sie zwei Eingänge (a und b) sowie zwei Ausgänge (c und s). In den folgenden Fenstern klicken Sie Next bzw. Finish. Danach geht ein Fenster zur Eingabe des Quellcodes auf. Sie können nun folgendes Beispiel eines Halbaddierers vervollständigen. Listing 1.1: Halbaddierer 1 2 3 4 5 6 7 8 9 module hadd( input a, input b, output c, output s ); assign s = a ^ b; // ^ exklusiv -oder assign c = a & b; // & und endmodule Nach der Eingabe soll die Syntax des Programms überprüft werden. Oben links bei Sources for muss Implementation ausgewählt und das Programm hadd.v markiert sein. Unter dem Punkt Synthesize-XST kann die Syntaxüberprüfung durch Check Syntax gestartet werden. 4 Erzeugen Sie nun eine Testbench2 . Dazu starten sie den New Source Wizzard (Project → New Source). Wählen Sie diesmal Verilog Test Fixture und als Dateinamen testbed.v. Die nächsten Fenster werden mit Next und Finish bestätigt. Es wird wieder ein Verilog HDL File vorgegeben, welches entsprechend folgendem Beispiel zu ergänzen ist. Natürlich können auch andere Zeiten angeben werden. Listing 1.2: Testbett 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 module testbed ; // Inputs reg a; reg b; // Outputs wire c; wire s; // Instantiate the Unit Under Test (UUT) hadd uut ( .a(a), .b(b), .c(c), .s(s) ); initial begin // Initialize Inputs a = 0; b = 0; // Simulate #10 a = 1; b = 0; #20 a = 1; b = 1; end endmodule Für die Simulation muss im Fenster oben links bei Sources for jetzt Behavioral Simulation ausgewählt werden. Nach Markieren von testbed kann unter Xilinx ISE Simulator mit Simulate Behavioral Model die Simulation gestartet werden. 2 Simulationsfile, Stimuli 5 Das Simulationsergebnis sollte etwa so aussehen: 6 2 Tutorial für Icarus und GTKWave Icarus Verilog ist ein Verilog Simulations und Synthesetool. Es verhält sich wie ein Compiler und übersetzt den Verilog Code in ein bestimmtes Zielformat. Icarus Verilog ist kommandozeilenbasiert. Es ist sowohl für Linux als auch für Windows verfügbar. Im Rechnerpool ist Icarus installiert und kann mit iverilog gestartet werden. 2.1 Icarus Verilog Das berühmte Hallo Welt Programm kann natürlich auch mit Verilog ausgeführt werden. Listing 2.1: Hallo Welt (hello.v) 1 2 3 module hello; initial $display ("Hallo Welt"); endmodule Um es zu kompilieren muss iverilog aufgerufen werden. In den Poolräumen erfolgt das über die Kommandozeile durch Eingabe des entsprechenden Befehls. Unter Windows ist ebenfalls eine Kommandozeile erforderlich. Hierfür eignet sich am besten cygwin oder die windowsinterne Kommadozeile. Cygwin ist eine linuxähnliche Umgebung für Windows. Mit dem Befehl % iverilog -o hello hello.v wird die Kompilierung der Datei hello.v, die in Listing 2.1 angeben ist, gestart. Die Ergebnisse der Kompilierung werden in die Datei hello geschrieben. Wird keine Ausgabedatei angegeben, wird das Ergebnis standardmäßig in die Datei a.out geschrieben. Das übersetzte Programm kann nun mit dem Befehl % vvp hello ausgeführt werden. Die Ausgabe sollte jetzt so aussehen: 7 Im folgenden soll ein Halbaddierer simuliert werden. Listing 2.2: Halbaddierer mit Testumgebung 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 module hadd2(a, b, c, s); input a, b; output c, s; assign s = a ^ b; // ^ exklusiv -oder assign c = a & b; // & und endmodule module testbed (c,s); reg a,b; output c,s; hadd2 test(a,b,c,s); initial begin a = 0; b = 0; # 10 a = 1; b = 0; # 20 a = 1; b = 1; end initial #50 $finish ; always@ (c or s) $display (" Ausgang s (Summe) ist %b. Ausgang c ( Carry ) ist %b. Zeitpunkt %0d",s ,c , $time ); endmodule In Zeile 23 des Listings 2.2 erfolgt die Ausgabe der Simulationsergebnisse. Bei jeder Änderung der an den Ausgängen anliegenden Werte wird der Befehl display aufgerufen und erwirkt die Ausgabe der jeweiligen Werte. 2.2 GTKWave Für eine graphische Ausgabe der Simulation kann GTKWave benutzt werden. Daz muss in der Simulation eine Ausgabedatei für GTKWave erstellt werden. Mit den folgenden Zeilen, eingefügt in das Top-Level Modul des Verilogprogramms, wird eine solche Datei geschrieben. Listing 2.3: Erstellen der Ausgabedatei für GTKWave 1 2 3 4 5 initial begin $dumpfile ("und.vcd"); $dumpvars (0); end Mit dem Befehl $dumpfile wird der Name der Ausgabedatei für die graphische Darstellung mit GTKWave angegeben. Der zweite Befehl bestimmt welche Variablen aufgezeichnet werden. Mit $dumpvars(1) werden nur die Variablen des aktuellen Moduls protokolliert, mit $dumpvars(0) werden die Variablen im eigenen und in allen untergeordneteten Modulen aufgezeichnet. Als Beispiel greifen wir hier erneut zurück auf den Halbaddierer. Die Ausgabe der Testumgebung wird durch den in Listing 2.3 geschriebenen Code ersetzt. Listing 2.4: Erstellen der Ausgabedatei für GTKWave 1 2 3 4 module hadd(a, b, c, s); input a, b; output c, s; assign s = a ^ b; // ^ exklusiv -oder 8 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 assign c = a & b; // & und endmodule // Simulationsumgebung module testbed_1 (c,s); reg a,b; output c,s; hadd test(a,b,c,s); ‘timescale 1ns/1ns initial a = # 5 a = # 5 a = # 5 a = begin 0; b = 1; b = 1; b = 0; b = 0; 0; 1; 0; end initial #30 $finish ; initial begin $dumpfile ("hadd.vcd"); $dumpvars (0); end endmodule Damit das Dumpfile geschrieben wird, muss die Datei neu kompilliert und gestartet werden. Mit dem Befehl gtkwave dateiname.vcd öffnet sich ein graphisches Interface. Vorerst sind hier noch keine Signale zu sehen. In GTKWave müssen noch die darzustellenden Signale ausgewählt werden. Dazu muss man in der Auswahlbox SST (Signal Search Tree) den gewünschten Eintrag auswählen. In der Auswahlbox Signals erscheinen nun die auf- 9 gezeichneten Variablen aus dem Verilog Programm. Auch hier müssen die gewünschten Signale ausgewählt werden und die Auswahl muss danach mit Append bestätigt werden. Im rechten Teil des GTKWave-Fensters ist jetzt die Simulation in graphischer Form dargestellt. 10 3 Tutorial für Integration von Icarus Verilog und GTKWave in Eclipse unter Windows 3.1 Verwendete Pakete 3.1.1 Eclipse developement platform • Website: http://www.eclipse.org/ • Hier benutzt: Eclipse SDK Version 3.2.1 3.1.2 Icarus Verilog • Website: http://www.icarus.com/eda/verilog/ • Hier benutzt: iverilog-0.8-setup.exe (Version 0.8.3) 3.1.3 „Verilog Editor“ Plugin für Eclipse • Website: http://veditor.sourceforge.net/ • Hier benutzt: net.sourceforge.veditor_0.5.0.zip 3.1.4 Gimp Tool Kit (GTK) for Windows • Website: http://www.gimp.org/~tml/gimp/win32/downloads.html • Hier benutzt: GTK+ 2 Runtime Environment (version 2.10.6 for Windows 2000 and newer) 3.1.5 GTKWave (Win32 Version) • Website: http://home.nc.rr.com/gtkwave/ • Hier benutzt: GTKWave 2.0.20 for Win32 3.2 Installation 3.2.1 Eclipse developement platform Die Installation von Eclipse bedarf keiner besonderen Richtlinien und kann völlig normal vorgenommen werden. 3.2.2 Icarus Verilog Zum installieren von Icarus Verilog muss lediglich die heruntergeladene Installationsdatei gestartet werden. Hier benutzt: Installationsverzeichnis C:\Programme\IcarusVerilog\ (ein Pfadname ohne Leerzeichen ist nötig, der Standardpfad kann nicht verwendet werden. Die restlichen Einstellungen sind frei wählbar, „Add executable to System PATH variable“ am Ende der Installation ist nicht zwingend notwendig). 11 3.2.3 Gimp Tool Kit Zur Installation von GTK das heruntergeladene Zip-Archiv entpacken und die darin enthaltene Installtionsdatei ausführen. Hier benutzt: Installationsverzeichnis C:\Programme\GTK2\, Einstellungen für Zusatzpakete sind frei wählbar. 3.2.4 GTKWave Das heruntergeladene Archiv enthält hier keine Installation sondern die auführbare standalone Executable. Diese kann in ein beliebiges Verzeichnis entpackt werden. Hier benutzt: C:\Programme\GTKWave.exe. 3.2.5 Verilog Editor Entweder das heruntergeladene Archiv direkt ins Eclipse-Verzeichnis entpacken oder manuell entpacken und den Ordner net.sourceforge.veditor_0.5.0 im enthaltenen Unterverzeichnis plugins in das plugins-Verzeichnis der Eclipse-Installation kopieren oder verschieben. Zunächst jetzt Eclipse starten. Dort unter Help → About Eclipse SDK auf Plugin Details klicken. 12 In der erscheinden Liste steht jetzt, vorausgesetzt, die Installation war Erfolgreich, das Verilog Editor Plugin. 13 3.3 Konfiguration 3.3.1 Einstellen der Verilog-Ansicht Nun zunächst wieder ins Eclipse. Unter Window → Open perspective → Other... Verilog auswählen und bestätigen. 14 Jetzt sollte im Eclipse-Fenster neben Java auch Verilog/VHDL auftauchen. 3.3.2 Erstellen des Verilog-Projekts Als nächstes wird das Verilog-Projekt 1 erstellt. Dazu im Projekt-Wizard unter Verilog/VHDL den Typ Verilog/VHDL project auswählen und bestätigen. Die Wahl des Speicherorts für das Projekt ist beliebig, der Pfad unterliegt keinen weiteren Einschränkungen und muss auch nicht im Standard Eclipse Workspace liegen. 1 Die in diesem Tutorial erstellte Konfiguration ist darauf ausgelegt, dass lediglich ein einziges Verilogprojekt verwendet wird. Die später erstellte Datei testbed.v dient in dem gesamten Projekt als Basis und muss für sämtliche Programmierungen angepasst oder neu angelegt werden. Mit einer besseren Kentnis der Eclipse-Funktionen ließe sich selbstverständlich auch eine Methode finden, eine allgemeine Konfiguration zu erstellen, welche für mehrere Projekte verwendet werden könnte. Dies ist jedoch nicht Bestandteil dieses Tutorials. 15 In dem Projekt wird nun ein neues Verzeichnis angelegt. Hier wird es bench genannt da dieses Verzeichnis später die Arbeitsbank des Compilers und des Simulators sein wird. In bench wird nun noch eine Batch-Datei (hier run.bat) angelegt. 16 Beim bestätigen dieses Fensters produziert Eclipse einige Fehler da es die Datei offenbar direkt versucht auszuführen was jedoch fehlschlägt da sie noch leer ist. Diese Fehler können einfach ignoriert und weggeklickt werden. run.bat wird dafür zuständig sein, auf Knopfdruck die kompilierte Verilog-Datei zu Simulieren und anschließend ihr Waveform-Diagramm in GTKWave anzuzeigen. Diese Datei jetzt mit Rechtsklick → Open with → Text editor im Eclipse öffnen und bearbeiten. Sie sollte folgenden Inhalt (Pfad- und Dateinamen müssen angepasst werden sollten bei den vorigen Installationen andere Einstellungen verwendet worden sein als in diesem Dokument) bekommen: Listing 3.1: run.bat 1 2 3 4 5 6 7 @echo off PATH =% PATH %;C:\ Programme \gtk2\bin PATH =% PATH %;C:\ programme \ icarusverilog \bin echo Now statring vvp ( simulation )... vvp testbed .out echo Simulation done , now starting gtkwave (wave form display )... c:\ programme \ gtkwave testbed .vcd Die Datei speichern und wieder schließen. 3.3.3 Konfiguration des Projekts Auf das Projekt einen Rechtsklick → Properities um die Eigenschaften zu öffnen. Dort links Verilog/VHDL Simulator auswählen und die Einstellungen wie folgt setzen: 17 Außerdem ganz oben Enable Verilog/VHDL Builder anhaken und das ganze bestätigen. Zuletzt im Verilog-Projekt Hauptverzeichnis (nicht im bench-Verzeichnis) ein neues Verilog File anlegen mit Namen testbed.v. Sollte ein anderer Name gewählt werden müsste sowohl die Batch-Datei run.bat als auch die Simulatorparameter angepasst werden. 18 Die angelegte Datei sollte sich direkt in Eclipse öffnen. testbed.v ist jetzt das „Kontrollzentrum“ und Simulationsumgebung. Welche Toplevel-Module auch immer getestet oder simuliert werden sollen müssen in dieser Datei instanziert und mit Eingaben gefüttert werden. 3.4 Beispiel und Test Im Folgenden wird testbed.v mit einem Beispielprogramm gefüllt welches die Benutzung des nun erstellten Systems klarstellen soll: Als erstes braucht man für eine Simulation ein Testobjekt. Das zu testende Modul in diesem Fall ist ein ClockInverter der ein Taktsignal als Eingangssignal aufnimmt und Phaseninvertiert wieder ausgibt. 3.4.1 Die Testumgebung testbed.v testbed.v muss nun also eine Instanz des Inverters erstellen und einen Takt generieren der an den Inverter gegeben wird. Des weiteren muss testbed.v die Ausgabeparameter für den Simulator bestimmen, zum Einen, welche Signale alle in die Waveform-Datei geschrieben werden sollen und zum Anderen, wo die Waveform-Datei erstellt werden soll2 . Der Inhalt der Datei sollte also wie folgt aussehen: Listing 3.2: testbed.v für die Simulation des Clock-Inverters 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2 module testbed (q); output q; // ---TESTZONE --clockInverter clkInv (clk ,q); initial #10 $finish ; // ---Ende der Testzone --// clock generation reg clk; initial clk =1; always #2 clk =~ clk; // waveform settings initial begin $dumpfile (" testbed .vcd"); $dumpvars (0); end endmodule In diesem Fall muss die Ausgabedatei immer testbed.vcd heißen, es sei denn man ändert die Batch-Datei run.bat. 19 Sobald diese Datei gespeichert wird sollte der Verilog-Builder einen Fehler produzieren: {} Elaboration failed *** These modules were missing: clockInverted referenced 1 times. *** Dieser Fehler ist selbstverständlich, testbed.v benutzt schließlich ein Modul namens clockInverter welches noch nicht existiert. 3.4.2 Das Modul clockInverter Also wird eine Datei gleichen Namens auf die selbe Weise wie testbed.v erstellt und mit folgendem Inhalt gefüllt: Listing 3.3: clockInverter.v 1 2 3 4 5 module clockInverter (clkin , clkout ); input clkin; output clkout ; assign clkout =~ clkin; endmodule Beim speichern dieser Datei sollte in der Konsole erneut ein build erfolgen, diesmal jedoch ohne Fehler. Ist das der Fall war der build erfolgreich und die Simulation kann gestartet werden. 3.4.3 Ausgabe der Waveform in GTKWave An dieser Stelle hat die Batch-Datei run.bat ihren Einsatz. Man kann sie sowohl manuell ausführen als auch Eclipse konfigurieren, dass die Datei auf Knopfdruck gestartet wird. Dafür erstellt man unter External tools (der grüne Play-Knopf mit rotem Werkzeugkasten davor in der Menüleiste) per Rechtsklick auf Program → New eine neue RunKonfiguration. 20 In dieser neuen Konfiguration, hier Simulate+Display genannt, sollte man nun über die Browse WorkspaceButtons die Batch-Datei run.bat beziehungsweise ihr Verzeichnis auswählen. 21 Die Konfiguration abspeichern und Run drücken. Dadurch läuft das Output der Batch-Datei mit dem Simulator über die Konsole. An dieser Stelle sieht man dann auch eventuelle Textausgaben aus den Verilog-Modulen die ausgeführt werden. Anschließend wird GTKWave mit der frisch erzeugten Waveform-Datei gestartet. Dort muss nurnoch aus unter testbed das Modul clockInverter ausgewählt werden, clkIn und clkOut markiert und über Insert- oder Append-Button am unteren Rand in die Darstellung aufgenommen werden. Die Verlaufskurven der Werte erscheinen Dann im Darstellungsfenster. Jetzt kann man jederzeit nach Änderungen in der Kontrollumgebung testbed.v oder in den Modulenvornehmen und wenn der build nach dem Speichern fehlerfrei durchgelaufen ist einfach über den grünen Play-Knopf mit dem roten Werkzeugköfferchen mit einem klick die Simulation ablaufen lassen und bekommt direkt GTKWave mit der entsprechenden Waveform-Datei geladen auf den Bildschirm. 22 4 Tutorial für Quartus II Diese Kurzanleitung beschreibt anhand eines einfachen 4-Bit Zählers die Eingabe, Simulation, Synthese und Programmierung mit der Entwicklungsumgebung Quartus II. 4.1 Anlegen eines Projekts Nach dem Start von Quartus II in der Menüleiste unter Files New Project Wizard auswählen. Mit dem Wizard wird u. a. das Projektverzeichnis , die im Projekt benutzten Design-Files (VHDL, Verilog HDL etc.) ausgewählt. Im ersten Schritt des Wizards muss das TopLevelModul angegeben werden, der Name muss identisch mit dem Namen des Verilog-Hauptmoduls sein. Weiterhin kann an dieser Stelle schon die Device-Family angegeben werden (zum Beispiel der Cyclone EP1C20F324C7). Durch Drücken des Button Finish wird der Project Wizard geschlossen. 23 4.2 Eingabe eines Design-Files In der Menüleiste wird unter Files New ausgewählt. Dort wählt man den File-Typ aus (Device Design Files, Software Files, Other Files). Bei den Device Design Files kann man zwischen AHDL, Block Diagram, EDIF, Verilog HDL und VHDL wählen. Nach Auswahl von z.B. Verilog HDL hat man ein Syntax Highlighting für Verilog HDL. Nach Eingabe des Codes File speichern. 4.3 Übersetzung des Design-Files Der Übersetzungsvorgang (Netzlistengenerierung, Synthese) wird durch Auswahl von Start Compilation (Strg + L) im Processing- Menü ausgeführt. In der Regel wird es immer einige Warnings geben, da in der WebEdition einige Features nicht vorhanden sind. 4.4 Simulation des Design-Files Zur Simulation wird unter Files New die Registerkarte Other Files ausgewählt. Dort wird dann Vector Waveform File ausgewählt. Daraufhin öffnet sich ein Fenster „Waveform1.vwf“. 24 Durch drücken der rechten Maustaste im linken Teil des Fenster (Name, Value at) kommt man zum Node Finder (Insert Node or Bus). Im Node Finder kann man durch Klick auf „List“ alle Signale anzeigen lassen. Diese werden durch den Button » in das Fenster „Selected Nodes“ kopiert und mit „OK“ bestätigt. Im Waveform-Fenster sind jetzt alle ausgewählten Pins angezeigt. Wenn man die Eingänge in der Waveform auswählt, kann man über die Buttons links neben der Waveform-Ansicht die Werte für die markierten Bereiche ändern. Über das Menü „Processing“, „Start Simulation“ kann die Simulation gestartet werden, vorher muss jedoch die Waveform-Datei gespeichert werden. 25 4.5 Benutzung des RTL Viewers Der RTL Viewer befindet sich im Menü „Tools“, „Netlist Viewers“, „RTLViewer“. 26 5 Tutorial für Verilogger Pro Vorgehensweise für eine Simulation mit dem SynaptiCAD VeriLogger am Beispiel des Halbaddierers. Für die Simulation sind die notwendigen Dateien in ein Projekt einzubinden. Dazu sind folgende Schritte notwendig. 1. Hinzufügen von Files zu einem Projekt: Im Projektfenster (links oben) mit rechter Maustaste und Add HDL File(s) die Dateien zu einem Projekt hinzufügen. 2. Mit dem gelben Button werden die Files übersetzt (Simulation Built). 3. Simulation mit dem grünen Button starten. Die Signale des Top-Level-Moduls werden automatisch im Fenster Diagram angezeigt.