VHDL UART: FSM vs. Shift Register

OP #2723375
Lesenswert?

hey!

hab fuer debuggingzwecke mal eben schnell einen uart rx und tx 
implementiert.
dabei sind mir zwei implementierungsmoeglichkeiten eingefallen. es ist 
zwar bereits fertig, aber ich frage mich trotzdem ob es vor- und 
nachteile der jeweiligen variante gibt.

1. fsmd: wertet je nach state die start-, stop-, paritaets- und 
datenbits aus.
2. shift register: shiftet nach dem startbit alle folgenden bits in 
einen vector, der den uart frame repraesentiert. die auswertung erfolgt 
danach.

welche moeglichkeit haltet ihr fuer sinnvoller? was hat sich als besser 
bewaehrt?

bin nur neugierig. ;)

all the best
johannes
Moderator (Firma: Titel) Persönliche Seite #2723423
Lesenswert?

Johannes Walter schrieb:
> dabei sind mir zwei implementierungsmoeglichkeiten eingefallen.
Ich könnte noch die Mux-Variante anbieten. Die ist beim sender in CPLDs 
besser:
http://www.lothar-miller.de/s9y/categories/49-RS232-IO

> aber ich frage mich trotzdem ob es vor- und
> nachteile der jeweiligen variante gibt.
Sieh dir mal den Ressourcenverbrauch an...

> welche moeglichkeit haltet ihr fuer sinnvoller?
Die zweite, weil die geradliniger und weniger fehlerträchtig ist.

> was hat sich als besser bewaehrt?
Man muss das Rad ja nicht neu erfinden. Sieh dir mal an, wie das in den 
weitverbreiteten uCs gemacht wird. Du wirst erkennen: Startbit 
detektieren und die folgenden Bits (evtl. nach Zweifach oder 
Dreifachabtastung) schieben. Danach auswerten...

Meine (gern kopierte und erprobte) Lösung ist die da:
http://www.lothar-miller.de/s9y/categories/42-RS232

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