14
Anleitung ModelSim ModelSim SE6.3j, PE (Mentor Graphics) Designflow 1/14 Aktualisiert: 11/2012 Pal

Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

Anleitung ModelSim

ModelSim SE6.3j, PE (Mentor Graphics)

Designflow

1/14 Aktualisiert: 11/2012 Pal

Page 2: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

Inhaltsverzeichnis

1 Konfiguration 3

1.1 Projekterstellung 3

1.2 Einbinden von Dateien in das Projekt 4

2 Funktionale Simulation 5

2.1 Compilieren 5

2.2 Fehlerkorrektur beim Compilieren 6

2.3 Starten der Simulation 7

2.4 Stimulation ohne DO-Datei 8 2.5 Stimulation, Ausführen einer DO-Datei 9

2.6 Bedienung Wave-Fenster 10

3 Timing Simulation, Start der Simulation 11

3.1 Start der Simulation mit der DO-Datei 11

3.2 Timing Simulation mit der Testbench 13

3.3 Testbench für die Timing Simulation 14

2/14

Page 3: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

Starten von vom Desktop :

1. Konfiguration

1. 1 Projekterstellung

Ein neues Projekt (Projektordner, Projektdatei ~.mpf) wird angelegt mit:

→ File → New → Project

Das Menü „Create Project“ erscheint:

Der einzig zu tätigende Eintrag ist die Angabe eines Namens für das Projekt.

Hierbei ist zu beachten, daß

keine Sonderzeichen (ausgenommen Unterstrich),

kein Leerzeichen,

keine Umlaute und

nicht mehr als 20 Zeichen

verwendet werden.

In den Feldern „Project Location“, „Default Library Name“, und

„Copy Settings From“ ist darauf zu achten, dass die obigen Einträge

übereinstimmen. Hier sind normalerweise keine Änderungen nötig.

Weiter mit Klick auf

Es geht automatisch weiter mit dem Auswahlmenü „Add Items to the Project „ .

3/14

Page 4: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

1.2 Einbinden von Dateien in das Projekt

Die zu verwendenden Quelldateien sind in das Projekt einzubinden mit:

→ Project → Add to Project → Existing File(Wird auch erreicht mit : Rechter Mausklick in das „Workspace“-Feld → Add to Project → Existing File)

Das Auswahlmenü „Add Items to the Project „ erscheint :

Klicke „Add Existing File“, um die benötigten Dateien (~.vhd, evtl. ~.do) über das darauf folgende Menü „ Add file to Project“ einzubinden:

Über die Schaltfläche „Browse“ die Quelldatei(en) im Open-Menü auswählen.

Weiter mit Klick auf:

Schließe das Menü „ Add Items to the Project“ mit:

Im Feld „Workspace“ , unterer Reiter „Project“ im Vordergrund, sieht man den Dateinamen der in das Projekt eingebundenen Datei.

4/14

Page 5: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2. Funktionale Simulation 2.1 Compilierung

Vor der Simulation müssen die VHD-Quelldatein fehlerfrei compiliert sein. Dazu ist der Eintrag der angesprochenen Quelldatei im „Workspace“ zu markieren und folgendes

auszuführen:

→ Compile → Compile Selected

Der Compiliervorgang wird gestartet mit ausgewähltem Dateieintrag (markiert) im „Workspace“ und :

→ Compile → Compile Selected

oder rechte Maustaste auf den Dateieintrag und: → Compile Selected

auch möglich: → Compile All

Wenn kein Fehler vorliegt erscheint im Transcript-Fenster die Meldung:

# Compile of >Dateiname< was successful. S.u.

Der Status der Datei erhält einen grünen Haken.

Hier kann man weitergehen zum Punkt :

Starten der Simulation.

Ein Fehler beim Compilieren wird durch ein rotes Kreuz in der Status-Spalte angezeigt:

. Und durch eine Fehlermeldung im Transcript-Fenster:

Hier muss man weitergehen zum Punkt :

Fehlerkorrektur beim Compilieren

5/14

Page 6: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2.2 Fehlerkorrektur beim Compilieren

Fehlerkorrektur beim Compilieren

Doppelklick mit der linken Maustaste auf den Dateinamen im „Workspace“ öffnet diese in einem Editor.

Doppelklick mit der linken Maustaste auf die Fehlermeldung im „Transcript“-Fenster öffnet ein Fenster mit näherer Fehlerbeschreibung:

Hierbei wird der Dateiname mit dem kompletten Pfad angegeben und in runden Klammern die Zeilennummer hier z.B.: (3)

Dahinter folgt eine Fehlerbeschreibung. Doppelklick auf diese „Error“-Zeile markiert die fehlerhafte Zeile des Quelltextes im Editor:

Nun muss der Fehler im Quelltext korrigiert, die Datei abgespeichert, das Fehlerfenster wieder geschlossen und erneut compiliert werden.

Empfohlenes Vorgehen:

Den obersten Fehler in der Fehlerliste korrigieren ( die weiteren Fehler sind meist nur Folgefehler ), Quelltext abspeichern und neu compilieren

Es kann auch durchaus vorkommen, dass nach einer Fehlerkorrektur beim erneuten Compilieren noch mehr Fehler angezeigt werden als zuvor. Das kann z.B. daran liegen, dass bei einem Fehler in der Portbeschreibung, die Architektur gar nicht compiliert wird.

Manchmal ist der eigentliche Fehler eine Zeile darüber zu finden z.B. fehlendes Semikolon.

Auch Warnungen sind zu korrigieren.

Dieser Kreislauf muss ggf. noch weitere Male wiederholt werden, bis die Compilierung fehlerfrei ist.

. Der Status der Datei erhält ein grünes Häkchen:

Nun kann man weitergehen zum Punkt : Starten der Simulation.

6/14

Page 7: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2.3 Starten der Simulation Die Simulation ist erst nach fehlerfreier Compilierung zu starten mit:

→ Simulation → Start Simulation

Das Menü „Start Simulation“ öffnet sich:

Hier ist unter → Design → Work unter E = Entity die A = Architektur auszuwählen.

Die Zeitauflösung ist in unserer Modelsim-Ini für die timing-Simulation auf „ps“ = Pikosekunde gesetzt.

Weiter geht es mit:.

Es entstehen neue Fenster: „Objects“, „Active Processes“ und zusätzliche hinterlegte Fenster im Bereich „Workspace“: „Sim“, „Files“, „Memories“:

7/14

Page 8: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2.4 Stimulation ohne Do-Datei

Stimulation ohne DO-Datei

Nach → Simulate → Start Simulation mit Auswahl der „Entity“ oder Architektur sieht man im

Fenster „Objects“ die verfügbaren Ein- und Ausgangssignale.

Hier mit rechter Maustaste auf ein Signal klicken und auswählen:

→ Add to Wave → Signals in Region

Darauf öffnet sich das „Wave“-Fenster für die Zeitdarstellung mit den Signalen in der linken Spalte.

Mit rechter Maustaste auf ein Signal klicken und auswählen:

→ Force

Ermöglicht im Fenster „Force Selected Signal“ (siehe darunter) im Feld „Value“ eine Wertzuweisung

( Nur Eingangssignale stimulieren ! Bit als 0 oder 1, Vektoren in Hex: z.B. 1E3 )

Dann eine Laufzeit „Run Length“ in das kleine Feld der Buttonleiste eingeben

z. B. 100 ns und den Button rechts daneben „Run“ klicken:

8/14

Page 9: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2.5 Stimulation, Ausführen einer DO-Datei

→ Tools → TCL → Execute Makro

Die erste Anweisung „restart“ in der DO-Datei erzeugt dieses Menü:

Deaktiviere

→ Keep → Wave Format

(Beim 1. Mal nicht nötig.)

Über die Schaltfläche „Restart“ wird die DO-Datei fortgesetzt.

DO-Datei schnellerer Start:

Mit rechter Maustaste auf den „Workspace“ klicken und → Add to Project → Existing File .

Im Menü „ Add File to Project“ „Browse“ ausführen und die DO-Datei importieren.

Dabei den Extensionfilter rechts unten auf „All Files (*.*)“ setzen.

Damit erscheint die DO-Datei zusätzlich im „Workspace“ und kann leicht mit:

Rechte Maustaste auf den Eintrag der DO-Datei und → Execute gestartet werden.

3 Beispiele einer Stimulation (DO-Datei):

Minimal benötigt werden die Anweisungen: „restart“, „add wave2 und „force“.

Um das Zahlenformat zu setzen : radix hex { bin, dec, oct }

„Force“ ist die Wertezuweisung und wird wie folgt verwendet:

force >Signalname< >Wert< [ >Zeitpunkt< , >Wert< >Zeitpunkt< , >Wert< >Zeitpunkt< ]

Im „Repeat“-Mode „-r“ besonders für einen Takt (Clock) :

force >Signalname< >Wert< >Zeitpunkt< , >Wert< >Zeitpunkt< -r >Periodenzeit<

9/14

Page 10: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

2.6 Bedienung Wave-Fenster

Das Wave Fenster

Das Wave-Fenster öffnet sich mit der kleinsten Auflösung, d.h. man sieht evtl. nur das letzte Ende. Mit

Klick auf die Funktion „Full Zoom“ wird das Ergebnis vom Zeitpumkt 0 an dargestellt.

Zoomfunktionen:

1. Zoom In : Vergrößern

2. Zoom Out : Verkleinern

3. Zoom Full : Alles im Fenster

4. Zoom In on active Cursor : Vergrößern an der Position des aktiven Cursors

In der ersten Spalte werden die Signalnamen aufgelistet. In der zweiten erscheint der numerische Wert

der Daten an der Cursorposition.

Weitere Cursor werden durch Klicken auf den kleinen grünen - Button der Zeitskalenzeile , erste

Spalte eingesetzt:

Der Bildhintergrund des Wave-Fensters lässt sich durch vorbereitete TCL-Kommandodateien ändern:

Mit → Tools → TCL → Execute Makro

im Ordner D:/ISE_Lab_Files/ModelSim_Makros die Datei WaveBackgroundBlack.tcl für schwarzen

oder WaveScreenshotFormat.tcl für weißen Hintergrund auswählen.

Vergrößerung des Wave-Fensters mit: 1. Vergößerung auf die gesamte Bildschirmbreite

2. Auskoppeln des Wave-Fensters

Die Cursor können mit Hilfe der „Buttons“ „ Find Previous Transition“ und „Find Next Transition“ genau auf die Flanken eines Signals gesetzt werden:

10/14

Page 11: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

3.1 Timing Simulation, Start der Simulation mit der DO-Datei Timing simulation

→ Simulation → Start Simulation

Benötigt werden zwei Dateien, die vom Implementierungstool ISE (Xilinx) durch Ausführen der Funktion → Implementation → Optional Implementation Tools --> „Generate Post-Fit Simulation Model“ in den Unterordner <projektname>/netgen/fit bei CPLDs oder <projektname>/netgen/par bei FPGAs

gelegt werden:

<Entity_name>_timesim.vhd und <Entity_name>_timesim.sdf (Standard Delay Format)

Die Datei ~_timesim.vhd ist dem Projekt hinzuzufügen mit „Rechtem Mausklick“ in das „Workspace“-Feld“ und Auswahl von : → Add to Project → Existing File und Schaltfläche „Browse“ zur o.g. Datei.

Diese ist mit „Rechtem Mausklick“ zu compilieren und Auswahl von: → Compile → Compile Selected Beim Menüpunkt → Simulate → Start Simulation ist zusätzlich auszuführen:

Im folgenden Menü jetzt zuerst den „SDF“-Tab anklicken und über „Add“ die SDF-Datei aus dem ISE-Projektordner auswählen:

Mit Delete oder Modify kann dies korrigiert werden.

Fortfahren über das „Design“-Tab :

Der von ISE gelieferte Logikentwurf ~_timesim.vhd besteht aus einer Entity gleichen Namens wie der

eigene Ursprungsentwurf, jedoch unterschiedlich ist der Architekturname hier: structure Die Zeitauflösung „Resolution“ kann im Labor auf „default“ bleiben, da „default“ :“ps“. ( Bei anderen als der Laborinstallation ist auf „ps“ zu stellen).

11/14

Page 12: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

Ergebnis:

Die internen Signale sind im obigen Bild gelöscht ( oberes Signal markieren , Strg-Taste unteres und Entf-Taste. Ein zweiter Cursor ist durch „Linker Mausklick“ auf den kleinen grünen Knopf mit dem Zeichen entstanden.

Die Cursor sind mit Hilfe der „Buttons“ „ Find Previous Transition“ und „Find Next Transition“ genau auf die Flanken des Eingangssignals X1 und des Ausgangssignals Q1 gesetzt.

12/14

Page 13: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

3.2 Timing Simulation mit der Testbench Timing simulation

→ Simulation → Start Simulation

Von ISE (Xilinx) erhält man durch:

→ Implementation → Optional Implementation Tools --> „Generate Post-Fit Simulation Model“

unter /netgen/fit bei CPLDs oder /netgen/par bei FPGAs

~_timesim.vhd und ~_timesim.sdf

Die Datei ~_timesim.vhd ist dem Projekt hinzuzufügen mit:

→ Add to Project → Existing File

und zu compilieren mit: → Compile → Compile Selected Beim Menüpunkt → Simulate → Start Simulation ist zusätzlich auszuführen:

Im folgenden Menü jetzt zuerst den „SDF“-Tab anklicken und über „Add“ die SDF-Datei aus dem ISE-Projektordner auswählen:

Mit Delete oder Modify kann dies korrigiert werden.

In das Feld „Apply to Region“ ist der Instanzname einzutragen (incl. „/“ „Slash“). Die Zeitdaten in der SDF-Datei müssen der jeweiligen Instanz zugeordnet werden.

Oft z.B. DUT (Device under Test) oder UUT ( Unit under Test)

In der Testbench wird die Komponente des Entwurfs als Instanz aufgebaut und in der „port map“ werden die Signale verbunden.

Nun geht es weiter mit dem Tab: „Design“.

Dann weiter im Tab „Design“ die Entity der Testbench markieren und unten starten mit:

Die Zeitauflösung „Resolution“ kann im Labor auf „default“ bleiben, da „default“ :“ps“. ( Bei anderen als der Laborinstallation ist auf „ps“ zu stellen).

13/14

Page 14: Anleitung ModelSim€¦ · „Copy Settings From“ ist darauf zu achten, dass die obigen Einträge übereinstimmen. Hier sind normalerweise keine Änderungen nötig. Weiter mit Klick

Eine minimale DO-Datei oder „zu Fuß“ liefert das hardwarenahe Ergebnis:

Ein zweiter Cursor ist durch „Linker Mausklick“ auf den kleinen grünen Knopf mit dem Zeichen entstanden.

Die Cursor sind mit Hilfe der „Buttons“ „ Find Previous Transition“ und „Find Next Transition“ genau auf die Flanken des Eingangssignals X1 und des Ausgangssignals Q1 gesetzt.

3.3 Testbench für die Timing Simulation Testbench

Der von ISE gelieferte ~timesim.vhd-Entwurf bedingt Änderungen in der Testbench.

Durch das benutzte Datenformat „std_logic“ und „std_logic_vector“ sind folgende Anpassungen erforderlich:

1. Zusätzliche Bibliotheksangaben: library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

2. Alle „ bit“ ändern auf „std_logic“ , alle „bit_vector“ ändern auf std_logic_vector“ mit → Edit → Replace

Die Signale erscheinen in der ~_timesim.vhd“-Datei gewöhnlich nicht in der gleichen Reihenfolge. D.h.

3. In der Instanziierung ist die „port map“-Verbindungsliste reihenfolgeunabhängig zu machen:z.B.port map ( X1 => X1_TB,

X2 => X2_TB, Q1 => Q1_TB );

„Generics“ werden nicht unterstützt. D.h.

4. „Generics“ müssen ersetzt werden.

Zur einfacheren Bedienung ist eine minimale DO-Datei sinnvoll:

restartview signalsview wave

add wave EXOR_TB/*

run 200 ns

14/14