Tutorials im Zusammenhang mit Verilog-Simulation · gezeichneten Variablen aus dem Verilog...

27
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

Transcript of Tutorials im Zusammenhang mit Verilog-Simulation · gezeichneten Variablen aus dem Verilog...

Tutorials im Zusammenhangmit Verilog-SimulationInstallation, Konfiguration, Simulation15. Oktober 2008Autoren: Wolfgang Heenes, Jacqueline Vogel, Joscha DrechslerZusammenstellung: Joscha [email protected]

FB InformatikFG Rechnerarchitektur

1

Inhaltsverzeichnis

1 Simulation mit dem Xillinx ISE WebPack 21.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Erstellung und Simulation eines Projektes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Tutorial für Icarus und GTKWave 62.1 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Tutorial für Integration von Icarus Verilog und GTKWave in Eclipse unter Windows 103.1 Verwendete Pakete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1.1 Eclipse developement platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.2 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.3 „Verilog Editor“ Plugin für Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.4 Gimp Tool Kit (GTK) for Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1.5 GTKWave (Win32 Version) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.1 Eclipse developement platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2 Icarus Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.3 Gimp Tool Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.4 GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2.5 Verilog Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3 Konfiguration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3.1 Einstellen der Verilog-Ansicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.3.2 Erstellen des Verilog-Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.3.3 Konfiguration des Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.4 Beispiel und Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.4.1 Die Testumgebung testbed.v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.4.2 Das Modul clockInverter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.4.3 Ausgabe der Waveform in GTKWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4 Tutorial für Quartus II 224.1 Anlegen eines Projekts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.2 Eingabe eines Design-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3 Übersetzung des Design-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.4 Simulation des Design-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.5 Benutzung des RTL Viewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . ). AlsProjektname 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 Sieals 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 Installa-tion vorhanden. Dazu muss in einem Terminalfenster source/usr/local/CAD-Tools/ise-9.1/settings.sh ausgeführt werden. Mit ise wird dasProgramm 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 module hadd(

2 input a,

3 input b,

4 output c,

5 output s

6 );

7 assign s = a ^ b; // ^ exklusiv -oder

8 assign c = a & b; // & und

9 endmodule

Nach der Eingabe soll die Syntax des Programms überprüft werden. Oben links bei Sources for muss Implementationausgewählt und das Programm hadd.v markiert sein. Unter dem Punkt Synthesize-XST kann die Syntaxüberprüfungdurch Check Syntax gestartet werden.

4

Erzeugen Sie nun eine Testbench2. Dazu starten sie den New Source Wizzard (Project → New Source). Wählen Siediesmal 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, welchesentsprechend folgendem Beispiel zu ergänzen ist. Natürlich können auch andere Zeiten angeben werden.

Listing 1.2: Testbett

1 module testbed;

2 // Inputs

3 reg a;

4 reg b;

5 // Outputs

6 wire c;

7 wire s;

89 // Instantiate the Unit Under Test (UUT)

10 hadd uut (

11 .a(a),

12 .b(b),

13 .c(c),

14 .s(s)

15 );

1617 initial begin18 // Initialize Inputs

19 a = 0; b = 0;

2021 // Simulate

22 #10 a = 1; b = 0;

23 #20 a = 1; b = 1;

24 end25 endmodule

Für die Simulation muss im Fenster oben links bei Sources for jetzt Behavioral Simulation ausgewählt werden. NachMarkieren 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 VerilogCode in ein bestimmtes Zielformat. Icarus Verilog ist kommandozeilenbasiert. Es ist sowohl für Linux als auch fürWindows 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 module hello;

2 initial $display("Hallo Welt");3 endmodule

Um es zu kompilieren muss iverilog aufgerufen werden. In den Poolräumen erfolgt das über die Kommandozeiledurch Eingabe des entsprechenden Befehls. Unter Windows ist ebenfalls eine Kommandozeile erforderlich. Hierfüreignet sich am besten cygwin oder die windowsinterne Kommadozeile. Cygwin ist eine linuxähnliche Umgebung fürWindows.

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 Kompilierungwerden in die Datei hello geschrieben. Wird keine Ausgabedatei angegeben, wird das Ergebnis standardmäßig in dieDatei 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 module hadd2(a, b, c, s);

2 input a, b;

3 output c, s;

4 assign s = a ^ b; // ^ exklusiv -oder

5 assign c = a & b; // & und

6 endmodule789 module testbed(c,s);

10 reg a,b;

11 output c,s;

1213 hadd2 test(a,b,c,s);

1415 initial begin16 a = 0; b = 0;

17 # 10 a = 1; b = 0;

18 # 20 a = 1; b = 1;

19 end2021 initial #50 $finish;2223 always@ (c or s)

24 $display("Ausgang s (Summe) ist %b. Ausgang c (Carry) ist %b. Zeitpunkt %0d",s ,c , $time);

2526 endmodule

In Zeile 23 des Listings 2.2 erfolgt die Ausgabe der Simulationsergebnisse. Bei jeder Änderung der an den Ausgän-gen 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 Aus-gabedatei für GTKWave erstellt werden. Mit den folgenden Zeilen, eingefügt in das Top-Level Modul des Verilogpro-gramms, wird eine solche Datei geschrieben.

Listing 2.3: Erstellen der Ausgabedatei für GTKWave

1 initial2 begin3 $dumpfile("und.vcd");

4 $dumpvars(0);

5 end

Mit dem Befehl $dumpfile wird der Name der Ausgabedatei für die graphische Darstellung mit GTKWave angege-ben. Der zweite Befehl bestimmt welche Variablen aufgezeichnet werden. Mit $dumpvars(1) werden nur die Variablendes aktuellen Moduls protokolliert, mit $dumpvars(0) werden die Variablen im eigenen und in allen untergeordnete-ten Modulen aufgezeichnet.

Als Beispiel greifen wir hier erneut zurück auf den Halbaddierer. Die Ausgabe der Testumgebung wird durch denin Listing 2.3 geschriebenen Code ersetzt.

Listing 2.4: Erstellen der Ausgabedatei für GTKWave

1 module hadd(a, b, c, s);

2 input a, b;

3 output c, s;

4 assign s = a ^ b; // ^ exklusiv -oder

8

5 assign c = a & b; // & und

6 endmodule78 //Simulationsumgebung

910 module testbed_1(c,s);

11 reg a,b;

12 output c,s;

1314 hadd test(a,b,c,s);

1516 ‘timescale 1ns/1ns

1718 initial begin19 a = 0; b = 0;

20 # 5 a = 1; b = 0;

21 # 5 a = 1; b = 1;

22 # 5 a = 0; b = 0;

232425 end2627 initial #30 $finish;2829 initial begin30 $dumpfile("hadd.vcd");

31 $dumpvars(0);

32 end3334 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 Signalezu sehen.

In GTKWave müssen noch die darzustellenden Signale ausgewählt werden. Dazu muss man in der AuswahlboxSST (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 werdenund 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 toSystem 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 aus-fü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. Diesekann 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 denOrdner net.sourceforge.veditor_0.5.0 im enthaltenen Unterverzeichnis plugins in das plugins-Verzeichnis derEclipse-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 keinenweiteren 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 erstellteDatei testbed.v dient in dem gesamten Projekt als Basis und muss für sämtliche Programmierungen angepasst oder neu angelegt werden. Miteiner 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äterdie 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 auszu-fü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 ihrWaveform-Diagramm in GTKWave anzuzeigen.

Diese Datei jetzt mit Rechtsklick → Open with→ Text editor im Eclipse öffnen und bearbeiten. Sie sollte folgen-den Inhalt (Pfad- und Dateinamen müssen angepasst werden sollten bei den vorigen Installationen andere Einstel-lungen verwendet worden sein als in diesem Dokument) bekommen:

Listing 3.1: run.bat

1 @echo off

2 PATH=%PATH%;C:\Programme\gtk2\bin

3 PATH=%PATH%;C:\programme\icarusverilog\bin

4 echo Now statring vvp (simulation)...

5 vvp testbed.out

6 echo Simulation done, now starting gtkwave (wave form display)...

7 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 Simu-

lator 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 mitNamen testbed.v. Sollte ein anderer Name gewählt werden müsste sowohl die Batch-Datei run.bat als auch dieSimulatorparameter angepasst werden.

18

Die angelegte Datei sollte sich direkt in Eclipse öffnen. testbed.v ist jetzt das „Kontrollzentrum“ und Simulati-onsumgebung. Welche Toplevel-Module auch immer getestet oder simuliert werden sollen müssen in dieser Dateiinstanziert 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 Systemsklarstellen soll:

Als erstes braucht man für eine Simulation ein Testobjekt. Das zu testende Modul in diesem Fall ist ein Clock-Inverter 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 gegebenwird. Des weiteren muss testbed.v die Ausgabeparameter für den Simulator bestimmen, zum Einen, welche Signalealle in die Waveform-Datei geschrieben werden sollen und zum Anderen, wo die Waveform-Datei erstellt werdensoll2. Der Inhalt der Datei sollte also wie folgt aussehen:

Listing 3.2: testbed.v für die Simulation des Clock-Inverters

1 module testbed(q);

2 output q;

34 //---TESTZONE ---

5 clockInverter clkInv(clk,q);

6 initial #10 $finish;7 //---Ende der Testzone ---

89 //clock generation

10 reg clk;

11 initial clk=1;

12 always #2 clk=~clk;

1314 //waveform settings

15 initial begin16 $dumpfile("testbed.vcd");

17 $dumpvars(0);

18 end19 endmodule

2 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 nochnicht 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 module clockInverter(clkin, clkout);

2 input clkin;

3 output clkout;

4 assign clkout=~clkin;

5 endmodule

Beim speichern dieser Datei sollte in der Konsole erneut ein build erfolgen, diesmal jedoch ohne Fehler. Ist das derFall 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 Eclipsekonfigurieren, dass die Datei auf Knopfdruck gestartet wird. Dafür erstellt man unter External tools (der grünePlay-Knopf mit rotem Werkzeugkasten davor in der Menüleiste) per Rechtsklick auf Program → New eine neue Run-Konfiguration.

20

In dieser neuen Konfiguration, hier Simulate+Display genannt, sollte man nun über die Browse Workspace-Buttons 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 überdie Konsole. An dieser Stelle sieht man dann auch eventuelle Textausgaben aus den Verilog-Modulen die ausgeführtwerden. Anschließend wird GTKWave mit der frisch erzeugten Waveform-Datei gestartet. Dort muss nurnoch ausunter testbed das Modul clockInverter ausgewählt werden, clkIn und clkOut markiert und über Insert- oderAppend-Button am unteren Rand in die Darstellung aufgenommen werden. Die Verlaufskurven der Werte erscheinenDann im Darstellungsfenster.

Jetzt kann man jederzeit nach Änderungen in der Kontrollumgebung testbed.v oder in den Modulenvornehmenund wenn der build nach dem Speichern fehlerfrei durchgelaufen ist einfach über den grünen Play-Knopf mit demroten Werkzeugköfferchen mit einem klick die Simulation ablaufen lassen und bekommt direkt GTKWave mit derentsprechenden 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 Program-mierung 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 wirdu. a. das Projektverzeichnis , die im Projekt benutzten Design-Files (VHDL, Verilog HDL etc.) ausgewählt. Im erstenSchritt des Wizards muss das TopLevelModul angegeben werden, der Name muss identisch mit dem Namen desVerilog-Hauptmoduls sein. Weiterhin kann an dieser Stelle schon die Device-Family angegeben werden (zum Beispielder 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, SoftwareFiles, Other Files). Bei den Device Design Files kann man zwischen AHDL, Block Diagram, EDIF, Verilog HDL undVHDL wählen. Nach Auswahl von z.B. Verilog HDL hat man ein Syntax Highlighting für Verilog HDL. Nach Eingabedes 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 einigeFeatures 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 Fileausgewä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 werdendurch 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-Ansichtdie Werte für die markierten Bereiche ändern.

Über das Menü „Processing“, „Start Simulation“ kann die Simulation gestartet werden, vorher muss jedoch dieWaveform-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 notwen-

dig.

1. Hinzufügen von Files zu einem Projekt: Im Projektfenster (links oben) mit rechter Maustaste und Add HDLFile(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.