FSM verliert aktiven zustand

Gast #1111058
Lesenswert?
• ▲
▼
Hi,
Ich habe einen UART Core in VHDL geschrieben. Er arbeitet mit einem 
Zustandsautomaten. Zeitweise funktioniert der Automat einwandfrei, doch 
sporadisch verliert er seinen Zustand. Dann ist kein Zustand mehr aktiv.
Es scheint mir so als wenn das abhänig davon ist wie Quartus das Design 
"gefittert" hat. Denn in manchmal funktioniert es ganz gut, und wenn man 
neu fittert geht es mal wieder nicht. Fehler werden keine Angezeit! In 
der "funktion simulation" funktioniert es.
Habt ihr eine Idee woran es liegen kann?
Gast #1111063
Lesenswert?
• ▲
▼
Das ganze soll auf einen FPGA. Der Reset ist zusammgeführt und geht nur 
auf 2 Register um in zu Synchronisieren. Tue ich das nicht, meckert der 
Design Assistent in Quartus auch.
Mir ist grad eingefallen das ich rxd nicht synchronisiert hab, kann das 
einfluss haben?
Moderator (Firma: Titel) Persönliche Seite #1111075
Lesenswert?
• ▲
▼
> Das ganze soll auf einen FPGA.
Nur auf CPLDs wird gefittet, nicht auf FPGAs ;-)

> Mir ist grad eingefallen das ich rxd nicht synchronisiert hab, kann das
> einfluss haben?
Ja, was denn sonst?
Jedes Signal, das für das Weiterschalten einer SM zuständig ist, kann 
sie auch durcheinander bringen. Und dein RXD ist extensiv dafür 
verwendet:
1
    when Z8 => if rxd = '1' then -- warten bis Treiber freigeschaltet hat!
2
                  zustand <= Z1; -- senden fertig
3
               else
4
                  zustand <= Z8;
5
               end if;
Also: zwischen Eingangspin und SM mindestens 2 FFs.

BTW:
Woher kommt der clrn ?
Ist das der einsynchronisierte Reset?

EDIT:
Bei Xilinx enden VHDL-Files mit .vhd
Nimm für den Dateianhang auch diese Endung, dann kann der 
Dateibetrachter hier im Forum den Code schön formatieren.
Moderator (Firma: Titel) Persönliche Seite #1111124
Lesenswert?
• ▲
▼
> Im Quartus gibt es doch den Compilepunkt Fitter(Place & Route).
Man lernt nie aus   ;-)
Also ok, beim Quartus werden FPGAs gefittet (aber trotzdem ohne r)

Dann schau dir gleich noch die anderen Signale an (start, rd_wr...),
falls die von aussen kommen. Jedes davon kann dir solche Effekte
machen. Besonders, wenn es zum Umschalten einer SM verwendet wird.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren