Forum: FPGA, VHDL & Co. ModelSim: Update nach Codeänderung?


von Chris R. (mrgreen)


Lesenswert?

Hi,
was muss ich machen, damit Modelsim auch ohne neu gestartet zu werden 
Codeänderungen erkennt und mir dn neuen Code simuliert?

Ich habe durch Rechtsklick auf die Bibliothek (work), dann Update und 
dann Refresh versucht, den Code neu zu compilieren. Laut Log compiliert 
er auch neu.

Aber wenn ich die Simulation neu starte, dann wird der alte Code 
simuliert?

Bisher hab ich es nur so geschafft, dass ich Modelsim beendet hab. Das 
kann's ja aber nicht sein...

MfG
Mr.Green

von SeriousSam (Gast)


Lesenswert?

Bei mir funktioniert in der Dateiansicht die Datei auswählen, auf 
kompilieren klicken und danach die Simulation neu starten.

von Thomas H. (mac4ever)


Angehängte Dateien:

Lesenswert?

Siehe Anhang ...

von simsam (Gast)


Lesenswert?

Startest du aus ISE?
Dann in der Kommandozeile unten den ersten ausgefuehrten Befehl wieder 
auswaehlen (Pfeiltaste nach oben bis zum ersten), das ist ein "do ..." 
der eine Kette von Eregnissen ausfuehrt. Dann kannst du den neuen Code 
simulieren.

von Chris R. (mrgreen)


Lesenswert?

Den Button anklicken hilft nicht.
Ein "do..." ist auch nicht der erste Befehl in der Liste.

Ich schreib den Code in Quartus, und auch die Testbench.

Dann starte ich extern Modelsim, lad mir den Code und simulier das.
Wenn ich jetzt die z.B. Testbench änder, und dann auf den Button klick, 
ändert sich das Waveform nicht. Ich seh weiter die Simulation des alten 
Codes...

von simsam (Gast)


Lesenswert?

Dann fuehr eben den ersten Befehl oder die ersten Befehle aus. Sollten 
die sein, die die Testbench initialisieren und das Design kompilieren.

von Chris R. (mrgreen)


Lesenswert?

Hab ich getan, das sollte meine Testbench neu compilieren.
Die Simulation bleibt dieselbe.

von Klaus F. (kfalser)


Lesenswert?

> Ich habe durch Rechtsklick auf die Bibliothek (work), dann Update und
> dann Refresh versucht, den Code neu zu compilieren. Laut Log compiliert
> er auch neu.
Refresh ist nicht das selbe wie neu kompilieren! Du musst im 
Projekt-Fenster die Datei auswählen und neu kompilieren.

Wenn man eine Datei ändert, dann muss man :
- Datei neu kompilieren
- Restart der Simulation machen. (Simulate->Run..->Restart). Dabei 
siehst du unten in der Kommandozeile
"Loading ....work/modul....
- Simulation neu laufen lassen (Run 100 ns)

Vielleicht kompilierst Du deine Testbench nicht in die richtige Library.

von FPGA-Jeck (Gast)


Lesenswert?

Bei package gibt modelsim gelegentlich die Warnung aus
".. not loading changed .." und empfiehl ein neustart der simulation.
ist aber selten, in der regel klappt neukompilieren und restart. dazu 
muß man
modelsim nicht neu starten.

kennst du die history funktion von modelsim? gibt dazu mal "history" in 
der modelsim shell ein. dann zeigt er dir die bisher ausgeführten 
kommandos.

bei Codeänderungen mache ich folgendes:
 -neukompilieren (im sim (oder lib) fenster ? die entity unter den 
mauszeiger nehmen, dann mit muosebottun (weiss grad nicht ob rechts oder 
links klicken und im Kontextmenu recompile auswählen, oder falls du 
schon mal diese datei während dieser sitzung kompiliert hast, in shell 
fenster !vcom tippern.
-jetzt entweder die Simualtion zurücksetzten (in der shell restart 
-force -all
tippern, oder die simulation neustarten (wieder per history !vsim)
nun run eintippern und alles ist neu.

natürlich kann der oben geschilderte selten auftreten (dann hilft aber 
!vsim)
oder simulierte /kompilierte file stimmen nicht überein (beispielsweise 
wie Vorredner erwähnt falsche Bibliothek) oder deine Änderungen sind 
keine wirklichen Änderungen,...

von Loizel (Gast)


Lesenswert?

Es könnte sein, daß in die falsche lib compiliert wird. Manche Tools 
setzen die temporäre Lib in die compiliert wird nicht für das Modelsim 
Projekt, sodaß die Vorteinstellungen dann für einen manuellen Restart 
nicht stimmen. Daher:

Dateien im Fenster anwählen, rechte Maustase und "compile properties" 
checken. -> "lib = work ???"

Ich arbeite immer über eigene Prokjekte mit den passenden zugelinkten 
libs. Da hat man alles unter Kontrolle.

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.