FSM Automat(für bestimmte zeit in einem zustand bleiben)

Gast #888594
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
Gast #889763
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
Gast #894206
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.