Forum: FPGA, VHDL & Co. ModelSim Zeit ändern


von Simulator (Gast)


Lesenswert?

Hallo

ich habe jetzt einmal das ModelSim ausprobiert. Ich habe eine Simulation 
die 3000ns dauert. Den Zustand in der Testbench wechselt es immer nach 
200ns.

Mein Problem ist jetzt dass der Zeitabstand bei der Simulation immer 2ns 
ist.

Wie kann ich in der Simualation den Zeitabstand auf 200ns ändern.

Danke.

MfG

von spartanne (Gast)


Lesenswert?

Im Installationsverzeichnis von modelsim gibt es die Datei modelsim.ini.

Dort unter [vsim] kann die Auflösung eingestellt werden, z.B. Resolution 
= 100ns:

[vsim]
; Simulator resolution
; Set to fs, ps, ns, us, ms, or sec with optional prefix of 1, 10, or 
100.
Resolution = ps

von Simulator (Gast)


Lesenswert?

Bedeutet das wenn ich ein anderen VHDL-Code starte und eine andere 
Auflösung brauche jedesmal in der Datei modelsim.ini die Resolution 
ändern muss.

Kann ich das nicht im Programm irgendwie einstellen dass es mir die 
Simulation mit der jeweiligen Auflösung anzeigen soll?


Welche guten Texteditoren gibt es die, die C und VHDL Syntax kennen.

Mir ist die Funktion sehr wichtig dass es zb beim C-Code wenn es mehrere 
if-Bedingungen gibt die Abstände richtig setzt. Man sollte dass immer 
aktualisieren kann.

von spartanne (Gast)


Lesenswert?

Hmm, ich bin mir gerade nicht mehr ganz sicher was du erreichen willst.
Wenn man den Wert Resolution kleiner macht muss ModelSim halt mehr 
rechnen, ob man das braucht hängt von der gewünschten Auflösung ab.
Die Dauer der Sim stört dich ja vermutlich nicht.. was willst du also 
genau erreichen? Geht es um die Darstellung im wave-Fenster?

Man kann für die Simulation auch Skript-Files schreiben (ich glaube 
*.do-Files heissen die bei ModelSim, hab es gerade nicht vor mir). Dort 
kann man sicher auch die Resolution mit angeben, und welche Signale 
dargestellt werden sollen und und und ...

Als freien Texteditor würde ich Notepad++ empfehlen; kann VHDL, C, Asm, 
...
Allerdings rückt der geschachtelte if nicht automatisch weiter ein wie 
es z.B. VisualStudio o.ä. macht. Dafür hat Notepad++ andere (meines 
erachtens) wichtigere Funktionen wie z.B. Hervorheben eines Wortes bei 
Doppelklick. Damit sieht man z.B. bei VHDL schnell wo ein Signal überall 
verwendet wird.

von Klaus F. (kfalser)


Lesenswert?

Es ist ein Irrtum, dass die Rechenzeit von ModelSim von der Auflösung 
abhängt.
Jeder VHDL Simulator arbeitet EVENT-orientiert, das heist, er rechnet 
nur anden Zeitpunkten, an denen sich irgend ein Signal ändert. 
Dazwischen "hüpft" er von Zeitpunkt zu Zeitpunkt.
Die Zeit ist für den Simulator nur eine Zahl.
Gründe die Auflösung zu ändern gibt es eigenlich nur zwei:
- bestimmte Verzögerungen müssen feiner eingestellt werden, weil die 
Zeiten sonst auf den nächsten Zeitrasterpunkt gerundet werden.
- Man will eine längeren Zeitbereich simulieren.
Dazu muß man die Auflösung verringern, weil die Zeiten intern als 32 bit 
integerzahlen dargestellt werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Mein Problem ist dass der Zeitabstand bei der Simulation immer 2ns ist.
Der Abstand von was?
Von Taktflanke zu Taktflanke?

von Simulator (Gast)


Lesenswert?

Meine ganze Simulation dauert zb 3000ns. Die Zustände ändern sich immer 
erst nach 200ns.

Wenn ich das Wave-Fenster vergrößere sehe ich am ganzen Bildschirm immer 
nur ca. 6ns.

Jetzt würde ich gerne einstellen dass es mir zb. von 0 - 2000 ns im 
Wave-Fenster anzeigt damit ich die Zustandsveränderungen auf einen Blick 
sehe und nicht immer herumscrollen muss.


Das Notepad++ habe ich mir auch schon heruntergeladen aber gerade da 
stört es mich wenn ich zb. eine if-Bedingung hinzufüge dass ich den 
ganzen Code mit der Tabulatortaste ausbessern muss.

Bei VHDL wenn ich "end xxx" schreibe dann schreibt es diese Zeile nicht 
automatisch unter entity sondern ich muss es immer richtig hin- und 
herschieben.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

????
Mach doch mal einen Screenshot und zeichne rein, was dich stört.
Ich kann alle Namen anzeigen und beliebige Zoomfaktoren einstellen...
Hast du das Lupensymbol schon mal angeklickt?

> Bei VHDL wenn ich "end xxx" schreibe dann schreibt es diese Zeile nicht
> automatisch unter entity sondern ich muss es immer richtig hin- und
> herschieben.
Ja, dazu hat man einen Editor.
Die Auto-Indent-Funktion kann nicht alles selber richten...

von Chef (Gast)


Lesenswert?

>Es ist ein Irrtum, dass die Rechenzeit von ModelSim von der
> Auflösung abhängt.

Kein Irrtum. Gerade weil bei grober Auflösung mehrere Ergenisse auf 
einen Zeitpunkt gemapped werden, führt es am Ausgang von Kombinatorik 
jeweils nur zu einer Änderung im Intervall, was weniger events für 
nachfolgende Schaltungen bewirkt. Das läasst sichan Beispielen sehr 
einfach zeigen.

von Christian R. (supachris)


Lesenswert?

Simulator schrieb:
> Meine ganze Simulation dauert zb 3000ns. Die Zustände ändern sich immer
> erst nach 200ns.
>
> Wenn ich das Wave-Fenster vergrößere sehe ich am ganzen Bildschirm immer
> nur ca. 6ns.
>
> Jetzt würde ich gerne einstellen dass es mir zb. von 0 - 2000 ns im
> Wave-Fenster anzeigt damit ich die Zustandsveränderungen auf einen Blick
> sehe und nicht immer herumscrollen muss.

Rechte Maustaste auf das Wave-Fenster -> Zoom full. Oder oben auf das 
ausgemalte Lupen-Symbol klicken.

von Simulator (Gast)


Lesenswert?

@Christian R.

Danke das war die Lösung.

von Simulator (Gast)


Lesenswert?

@Lothar Miller

Habe deinen Beitrag nicht gesehen. Es war das Lupensymbol. Danke.

Kann ich noch einstellen dass es mir von 1000-1500 ns anzeigt.

von Klaus F. (kfalser)


Lesenswert?

Chef schrieb:
>>Es ist ein Irrtum, dass die Rechenzeit von ModelSim von der
>> Auflösung abhängt.
>
> Kein Irrtum. Gerade weil bei grober Auflösung mehrere Ergenisse auf
> einen Zeitpunkt gemapped werden, führt es am Ausgang von Kombinatorik
> jeweils nur zu einer Änderung im Intervall, was weniger events für
> nachfolgende Schaltungen bewirkt. Das läasst sichan Beispielen sehr
> einfach zeigen.

Das hängt jetzt davon ab, wovon wir reden.
Bei einer Timing-Simulation mag das stimmen.
Bei einer Funktionalen Simulation, wo mein einziges Delay im 
Taktgenerator steckt, habe ich weder mehr noch weniger Events beim 
Ändern der Auflösung.
Wenn nicht, dann habe ich irgendeine Unsauberheit im Design.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Kann ich noch einstellen dass es mir von 1000-1500 ns anzeigt.
Nimm den Button neben dem Pfeil-Button, der sieht etwa so aus:
1
   _ 
2
  | __
3
   |  |
4
   |__|
5
     _\|
Und dann kannst du mit den Maustasten in der Waveform herumzoomen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.