Forum: FPGA, VHDL & Co. FSM Automat(für bestimmte zeit in einem zustand bleiben)


von VHDL_Bginner (Gast)


Lesenswert?

Guten Morgen,
ich will in einem zustand einen zaehler ,der hochzaehlt 
programmieren.Mit jeder psitiven Flanke wird der zaehler inkrementiert 
wenn ich den maximalwert nicht erreiche bleibt er in demselben zustand 
sonst Folge_zustand--->Synchrones prozess.
Bei der simulation merke ich mir dass mein zaehler reagiert nicht und ja 
ivh bleibe fuer ewig in meinen zustand.
.
.
.
when S2: if counter < 31 then
         counter<= counter+1;--counter schon initialisiert
          folge_z<=S2;--wenn ich hier anderer zustand definiere
         else         --funktioniert wunder bar aber ich will da bleiben
         counter<=(others=>'0');--für bestimmte zeit
         Folge_z<=S4;
         end if;
.
.
.
MFG

von Thomas H. (mac4ever)


Lesenswert?

Kann hier keinen Fehler finden. Sieht eigentlich ganz gut aus.

von Start-ING (Gast)


Lesenswert?

wieviel bit hat Dein Counter? kann der wirklich den wert 31 annehmen? 
ändert der Counter überhaupt seinen Pegel wert?

von Rick Dangerus (Gast)


Lesenswert?

Wenn Du keine default-Zuweisung an 'Folge_z' machst, kannst Du die FSM 
etwas übersichtlicher machen:
1
when S2 : if counter < 31 then
2
       counter <= counter + 1;            --counter schon initialisiert
3
     else                               --funktioniert wunder bar aber ich will da bleiben
4
       counter <= (others => '0');      --für bestimmte zeit
5
       Folge_z <= S4;
6
     end if;

Was sagen den Folge_z und counter in der Simulation?

Rick

von lkmiller (Gast)


Lesenswert?

@ VHDL_Bginner

ist der Codeschnipsel aus dem kombinatorischen oder aus dem getakteten 
Bereich der Statemachine?
Ist das eine Zwei-Prozess-SM?
Sehen wir hier den kombinatorischen Teil?

Wenn die Zuweisung im kombinatorischen Teil steht, dann ist der 
Simulator sofort fertig. Der zählt nämlich in der Zeit 0ps auf 31 und 
schaltet den Zustand um.

       counter <= counter+1;--counter schon initialisiert

Stichwort hierzu: kombinatorische Schleife.
Auch eine Art, einen Oszillator zu bauen.

Zähler sind Flip-Flops, die gehören in einen getakteten Prozess.

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.