Forum: FPGA, VHDL & Co. VHDL/SystemC Co-Simulation mit ModelSim


von F. R. (ekos)


Lesenswert?

Hallo alle zusmamen,

ich bin gerade dabei ein VHDL Design nach SystemC zu übersetzen. Hierzu 
übersetze ich immer ein Modul und führe danach eine Co-Simulation mit 
ModelSim durch. Bisher funktionierte es immer wunderbar. Jetzt habe ich 
leider einen Fehler, bei dem ich mit meinem Latein am Ende bin.

Um eine FSM zu simulieren, nutze ich Enumerations.

Also habe ich im Header sowas stehen:

enum fsm_state{state_A, state_B, state_C};
signal<fsm_state> i_fsm_state;

Danach benutze ich es in der CPP in einem Synchronen Prozess 
folgendermaßen:

if(Bedingung){
 i_fsm_state = state_B;
}

Hat bisher immer wunderbar funktioniert. Jetzt wird mir in der 
Simulation aber bei jedem Takt ein Zustanswechsel angezeigt (von der 
Logik her nicht möglich) und anstatt des Zustands immer folgender Wert 
"?(1618060916)".

Compilieren und Linken funktiuoniert super und alle anderen Werte werden 
auch korrekt angezeigt.

Hat jemand eine Idee?

von Ahmed (Gast)


Lesenswert?

Hi,

ich glaube du musst einen Delta-Zyklus nach der Zuweisung des neuen 
Zustandes warten.


if(Bedingung){
 i_fsm_state = state_B;


wait(SC_ZERO_TIME);
}



HTH

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.