Übungen zu VLSI II

Erläuterungen zum praktischen Teil

1. Die Werkzeuge

In der Übung werden zwei Werkzeuge zur Kontrolle der Korrektheit des Programmes und zum Auffinden von Fehlern verwendet: Der Verilog-Simulator: Nach dem Start des Simulators liest dieser zunächst die Quelldatei ein und überprüft diese auf syntaktische Korrektheit. Treten dabei keine Fehler auf, so wird aus der Quelldatei eine Simulationsdatei generiert, die im nächsten Schritt ausgeführt wird. Dabei können Kontrollkommandos wie $display oder $monitor zu Debug-Zwecken genutzt werden. Der Aufruf des Verilog Simulators erfolgt über die Eingabe von verilog Dateiname. Soll die Ausgabe nicht auf die Konsole, sondern auf ein X-Fenster erfolgen, so ist verilog +vcw Dateiname anzugeben.

Das Wave-Tool: Dieses Tool dient zur Visualisierung von Leitungs- und Registerzuständen. Diese werden wie bei einem Logikanalysator über der Zeitachse aufgetragen. Dieses Werkzeug wird mit dem Kommando cwaves aufgerufen.

2. Erzeugung einer Wave-Datei

Das Wave-Tool arbeitet auf einer Datei, die während des Simulationsvorganges angelegt wird. Damit dies geschieht, müssen folgende Zeilen in der Verilog-Quelldatei unmittelbar auf das initial-Statement folgen:

Anlegen der Simulationsdatendatei: Zuerst ist eine Simulationsdatendatei anzulegen. Dies geschieht durch das Kommando $shm_open(Dateiname).

Spezifizierung der zu speichernden Signale: Im nächsten Schritt sind die Signale anzugeben, die in der Simulationsdatendatei gespeichert werden sollen. Dazu dient das Kommando $shm_probe(Signalname).

3. Ein Beispiel zur Arbeit mit den Werkzeugen

Erstellen Sie eine Datei mit folgendem Inhalt und speichern Sie sie unter dem Namen test1.v ab:

// Beispielprogramm 1: TriState-Treiber
// Beschreibung eines TriState-Treiber
module triDriver(bus, drive, value);
endmodule // triDriver
// Beschreibung des Testmoduls
module Test1;
endmodule // Test 1

Der erste Schritt besteht nun darin, den Verilog-Simulator aufzurufen. Dazu muß die Zeile verilog test1.v eingegeben werden. Anschließend erscheint, nach der Ausgabe zahlreicher Copyright-Informationen u.a. folgender Text auf dem Bildschirm:

Compiling source file "test1.v"
Highest level modules:
Test1
L44 "test1.v": $finish at simulation time 120
178 simulation events
CPU time: 0.3 secs to compile + 0.1 secs to link + 0.2 secs in simulation
End of VERILOG-XL 2.2.1 May 7, 1998 19:16:37

Alternativ kann zusätzlich auch ein Bedienertool mit X-Oberfläche gestartet werden. Dazu ist verilog +vcw b3.v einzugeben. Nach dem Aufruf erscheint dann ein Fenster mit folgendem Inhalt auf dem Bildschirm:

Der Simulationsvorgang ist nun abgeschlossen. Traten in der Simulation unerwartete Ereignisse auf, oder reichen die Textausgaben nicht zur Schaltungsverifikation aus, so kann anschließend noch die Simulationsdatendatei betrachtet werden. Dazu ist zunächst cwaves einzugeben. Daraufhin erscheint folgendes Fenster auf dem Bildschirm:

Anschließend sind über die Funktion Load Data aus dem Menü File die Simulationsdaten zu laden. Die Eingabe der Daten kann der folgenden Abbildung entnommen werden:

Die anzuzeigenden Signale sind nun über den Dialog Browser/Display Tool einzustellen, der sich über das Menü Edit öffnen läßt. Im Fenster Subscopes werden die Elemente der aktuellen Ebene angezeigt, im Fenster Signals die zugehörigen Signale. Die markierten Signale können durch die Betätigung des Schalters Add Selections in das Fenster strips übernommen werden. Signale, die sich in diesem Fenster befinden, werden auch im CWaves-Hauptfenster angezeigt. Wurden alle Signale übernommen, so erscheint folgender Signalverlauf auf dem Bildschirm: