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
@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
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)??
@ 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
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?
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
bzw im *.MPF file, das lokal als Kopie der INI angelegt wird.
@ 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)
> 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
OK Danke dann bringt mir die ganze Sache sowieso nichts, ich dachte ich kann damit Simulationszeit sparen...
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!
Sicher wird das Ergebnis ungenauer. Ein falscher Ergebnis berechnet sich aber nicht schneller als ein genaues, warum sollte man deshalb Simulationszeit einsparen?
man kann es auch direkt beim Vsim Aufruf übergeben: vsim -t 1ps work.blabla_tb
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.