Forum: FPGA, VHDL & Co. GENERIC aus Modelsim heraus ändern


von Peter (Gast)


Lesenswert?

Hallo zusammen,

ich habe eine Simulation mit einem GENERIC vom Typ NATURAL.
Diesen GENERIC möchte ich gerne ändern, ohne immer wieder alles neu 
durch den Compiler zu schicken.

Ich kompliliere als alles mit einem GENERIC Wert von 0x12.
Ich starte meine Simulation, führe ein .do File aus und schaue mir das 
Ergebnis an.

Nun wollte ich den Wert des GENERICs ändern und habe dazu den Befehl
1
change /tb_top/dut/G_DELAY 25
verwendet.

Nun meckert mir Modelsim an, dass es sich um eine Konstante handelt.

Kann ich diesen Generic irgendwie ändern, ohne mit "vsim quit" die 
komplette Simulation nochmal neu zu laden?

Mein .do File verwende ich hauptsächlich um  zahlreiche Signale zur 
Waveform hinzuzufügen. Wenn ich dort etwas ändere speichere ich das 
aktuelle waveform-Format immer neu ab, damit wären da neue Einträge 
schnell wieder überschrieben.

An welcher Stelle kann ich also sinnvoller Weise meinen GENERIC ändern?

Vielen Dank!
Peter

von Fpgakuechle K. (Gast)


Lesenswert?

Peter schrieb:
> Hallo zusammen,
>
> ich habe eine Simulation mit einem GENERIC vom Typ NATURAL.
> Diesen GENERIC möchte ich gerne ändern, ohne immer wieder alles neu
> durch den Compiler zu schicken.
>
> Ich kompliliere als alles mit einem GENERIC Wert von 0x12.
> Ich starte meine Simulation, führe ein .do File aus und schaue mir das
> Ergebnis an.
>
> Nun wollte ich den Wert des GENERICs ändern und habe dazu den Befehl
>
1
> change /tb_top/dut/G_DELAY 25
> verwendet.
>
> Nun meckert mir Modelsim an, dass es sich um eine Konstante handelt.
>
> Kann ich diesen Generic irgendwie ändern, ohne mit "vsim quit" die
> komplette Simulation nochmal neu zu laden?

> An welcher Stelle kann ich also sinnvoller Weise meinen GENERIC ändern?


IMHO sind Generics nach compile nicht mehr änderbar, Änderungen werden 
nur durch Neu-compilation aktiv.

von Duke Scarring (Gast)


Lesenswert?

Fpga Kuechle schrieb:
> IMHO sind Generics nach compile nicht mehr änderbar, Änderungen werden
> nur durch Neu-compilation aktiv.
vsim kennt die folgenden Parameter:
1
 -g<Name>=<Value>        Specify generic/parameter default Value for Name
2
 -g <Name>=<Value>       Alternate way to specify generic/parameter default Value for Name
3
 -G<Name>=<Value>        Override generic/parameter with specified Value
4
 -G <Name>=<Value>       Alternate way to override generic/parameter with specified Value
Ob es einen Weg innerhalb von vsim gibt, die generics zu ändern, weiß 
ich allerdings auch nicht.
Vielleicht kann der Support von Mentor weiterhelfen. Der ist bisher sehr 
gut gewesen.

Duke

von Christian R. (supachris)


Lesenswert?

Man muss nicht zwingend neu kompilieren, man kann die GENERICS durch 
alles durchreichen bis in die Test Bench und dann im do-File angeben. 
Dann musst du nur die Simulation neu starten.

von Fpgakuechle K. (Gast)


Lesenswert?

Peter schrieb:
> Hallo zusammen,
>
> ich habe eine Simulation mit einem GENERIC vom Typ NATURAL.
> Diesen GENERIC möchte ich gerne ändern, ohne immer wieder alles neu
> durch den Compiler zu schicken.
>

> Nun wollte ich den Wert des GENERICs ändern und habe dazu den Befehl
>
1
> change /tb_top/dut/G_DELAY 25
> verwendet.

Also laut manual 
http://homepages.cae.wisc.edu/~ece554/new_website/ToolDoc/Modelsim_docs/docs/pdf/se_man.pdf 
S. UM-64
sind generics nur bedingt änderbar.

"Use of the change command to modify parame
ters or generic values. This affects values
only; it has no effect on triggers, compiler
directives, or generate statements that
reference either a generic or parameter. "


Genau die Variante das das generic in einem generate verwendet wird 
hatte ich im Hinterkopf, als ich schrieb das eine neu-compilation 
erforderlich ist.


Jetzt hab ich mich mal durch die neueren Versionen durchgewühlt und bin 
auf das gestossen:
http://www.fbeit.htwk-leipzig.de/~reinhold/files/Modelsim/ModelSimSE_10.0c/modelsim_se_10_0_Reference_Manual.pdf 
S. 133


You cannot use this command on generics or parameters if you optimized 
the design, unless you
used the +floatgenerics or +floatparameters switches. These switches 
allow the generics and
parameters to remain floating after the optimization. Refer to the 
section "
Optimizing
Parameters and Generics
" in the User’s Manual for more information.

The following sections list supported objects:
•
VHDL
o
Scalar variable, constant, or generics of all types except FILE.
Generates a warning when changing a VHDL constant or generic. You can 
suppress
this warning by setting the TCL variable WarnConstantChange to 0 or in 
the


Also vielleicht hilft Dir das deaktivieren der Optimierung weiter, resp. 
das Durcharbeiten des Kapitels: ""
Optimizing
Parameters and Generics
""

Oder dein konkreter Fall ist einer der unmöglichen.

MfG,

von Edi M. (Gast)


Lesenswert?

Ist das soo aufwändig, neu zu compilieren und zu starten?
Ich drücke immer compile, und dann den restart button, manchmal muss die 
sim neu geladen werden, bei nem generic change aber eigentlich nicht

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.