mikrocontroller.net

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


Autor: Simulator (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spartanne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simulator (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spartanne (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Simulator (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Chef (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Simulator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Christian R.

Danke das war die Lösung.

Autor: Simulator (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
   _ 
  | __
   |  |
   |__|
     _\|
Und dann kannst du mit den Maustasten in der Waveform herumzoomen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.