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.
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.
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.