Forum: FPGA, VHDL & Co. VHDL UART: FSM vs. Shift Register


von Johannes W. (doubleu)


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

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


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

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.