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
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
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.
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.
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.
> Mein Problem ist dass der Zeitabstand bei der Simulation immer 2ns ist.
Der Abstand von was?
Von Taktflanke zu Taktflanke?
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.
???? 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...
>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.
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.
@Lothar Miller Habe deinen Beitrag nicht gesehen. Es war das Lupensymbol. Danke. Kann ich noch einstellen dass es mir von 1000-1500 ns anzeigt.
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.