Forum: FPGA, VHDL & Co. Wo Resolution in Modelsim einstellen?


von Tom (Gast)


Lesenswert?

Hallo,

ich möchte gern die Resolution in Modelsim vom Standardwert 1ps ändern 
auf 1ns. Ziel bei der Sache ist längere Zeiträume zu simulieren ohne 
dafür stundenlang warten zu müssen.

Ich hab inzwischen (unter anderem hier im Forum) verschiedene 
Möglichkeiten gelesen wie das gehen soll.

Keine der Varianten hat bei mir funktioniert bzw sind die beschriebenen 
Einträge in den Menüs meiner ModelSim Version nicht vorhanden.

Ich habe die Version Modelsim XE III / Starter 6.2g (die kostenfreie von 
XILINX)

Kann mir jemand sagen ob es irgendwo einen Menüpunkt gibt wo ich die 
Resolution einstellen kann??

Grüße
Tom

von Falk B. (falk)


Lesenswert?

@om (Gast)

>ich möchte gern die Resolution in Modelsim vom Standardwert 1ps ändern
>auf 1ns.

Das macht man im Batchfile, wo die Simulation aufgerufen wird. Schau die 
mal die *.fdo in deinem Projektverzeichnis an.

MFG
Falk

von Tom (Gast)


Lesenswert?

In meinem Projektverzeichnis gibt es keine *.fdo Datei. Muss man die 
erst erstellen lassen?

Ist es wirklich nicht möglich dies in einem Menü einzustellen (So wie 
das mit der "Run"-Dauer auch funktioniert)??

von Falk B. (falk)


Lesenswert?

@ Tom (Gast)

>In meinem Projektverzeichnis gibt es keine *.fdo Datei. Muss man die
>erst erstellen lassen?

Nein, die erstellt ISE automatisch wen es die Simulation für Modelsim 
per Script startet. Wenn du Modelsim allein ohne Xilinx ISE nutzt ist 
das natürlich was anderes, wobei das prinzipielle Vorgehen das gleiche 
ist.

>Ist es wirklich nicht möglich dies in einem Menü einzustellen (So wie
>das mit der "Run"-Dauer auch funktioniert)??

AFAIK nein.

MFG
Falk

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Bringt das denn etwas? Modelsim muss doch immer noch alle Ereignisse 
auswerten, macht es da einen Unterschied wie die Simulationsauflösung 
eingestellt ist, solange sie klein genug ist dass keine Zeiten gerundet 
werden?

von Johannes T. (johnsn)


Lesenswert?

Also ich kenn da die Methode, bei der man in der Datei "modelsim.ini" 
unter folgendem Punkt den Parameter ändert:

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

von C.C.V. (Gast)


Lesenswert?

bzw im *.MPF file, das lokal als Kopie der INI angelegt wird.

von Tom (Gast)


Lesenswert?

@ Andreas Schwarz:
Ich hab mir das so gedacht das der Rechenaufwand wenn ich sagen wir eine 
Sekunde simulieren will doch wesentlich geringer sein muss wenn er nur 
jede ns statt jede ps berechnen/simulieren muss. Seh ich das falsch?

@ Johannes und C.C.V.:

In der mpf Datei kann ich die resolution wie beschrieben einstellen. 
Nachdem ich die Datei dann gespeichert habe und mittels "report 
simulator state" in Modelsim die aktuelle resolution anzeigen lasse 
steht dort immernoch ps drin. Also hab ich Modelsim neu gestartet und 
siehe da nun ist es auf ns geändert

A B E R

sobald ich auf simulate gehe und meine Testbench auswähle und die 
Simulation starte wird es wieder zurück auf ps gestellt (auch in der mpf 
Datei steht jetzt wieder ps)

von Klaus F. (kfalser)


Lesenswert?

> Ich hab mir das so gedacht das der Rechenaufwand wenn ich sagen wir eine
> Sekunde simulieren will doch wesentlich geringer sein muss wenn er nur
> jede ns statt jede ps berechnen/simulieren muss. Seh ich das falsch?

Ja. Der Simulator arbeitet Ereignis-orientiert, das heißt er berechnet 
nur an den Zeitenpunkten, an denen sich etwas ändert den neuen Zustand.
Die Auflösung legt nur das minimale Zeitincrement fest mit dem der 
Simulator rechnen kann, das heißt aus einem "wait for 10,4 ns" werden 
dann 10 oder 11.
Die Anzahl der Ereignisse ändert sich deshalb nicht.

Ursache dafür, dass man die Auflösung gröber oder feiner einstellen 
kann, ist  die interne Darstellung der Zeit mit 32 Bit, sodass man bei 
feiner Auflösung nicht so lange Zeiten simulieren kann.

Klaus

von Tom (Gast)


Lesenswert?

OK Danke dann bringt mir die ganze Sache sowieso nichts, ich dachte ich 
kann damit Simulationszeit sparen...

von FPGA Spezialist (Gast)


Lesenswert?

Sicher kannst Du Simulationszeit sparen. Die Rechung wird gröber und 
ungenauer (und damit falscher).

Teste das mal mit 2 clocks durch, welche mit krummen Freuqenzen 
arbeiten, die auf ps eingestellt werden müssen, um zu stimmen. Dann 
bekommst Du mit der gröberen Sim andere Clockübergänge!

von Klaus Falser (Gast)


Lesenswert?

Sicher wird das Ergebnis ungenauer.
Ein falscher Ergebnis berechnet sich aber nicht schneller als ein 
genaues, warum sollte man deshalb Simulationszeit einsparen?

von Erik (Gast)


Lesenswert?

man kann es auch direkt beim Vsim Aufruf übergeben:
vsim -t 1ps work.blabla_tb

von OliverKroll (Gast)


Lesenswert?

Man kann die zeitliche Auflösung auch im Auswahlfenster einstellen, das 
sich nach Aufruf von "Start Simulation" öffnet. Man muß das sogar, wenn 
man wait-Statements unterhalb der voreingestellten Auflösung verwendet, 
weil sonst die Simulation nicht anspringt (bleibt mit einer 
Fehlermeldung gleich am Anfang stehen).

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.