Forum: FPGA, VHDL & Co. Uart Timing aus Zustandsautomat


von Maik (Gast)


Lesenswert?

Hi alle Zusammen,
im Moment versuche ich mich damit einen Zustandsautomaten zu entwerfen, 
um das XILINX "KC - Uart" Makro (eigentlich zum Picoblaze gehörig) mit 
angeschlossenem 16-Bit Fifo mit Daten aus einem Rom zu füttern und über 
die RS232 aus dem FPGA auszugeben.

(Anstelle des ROMs soll dann mal irgendwann ein DP-Ram werden).

Das Design läuft auf einem Spartan 3E Board mit 50 MHz. Der 
Zustandsautomat soll folgende Funktionen haben :

Speicheradresszähler steuern (läuft linear hoch)- bei vollem Uart Fifo 
pausieren.

Daten vom 16 Bit Speicher - Datenbus über eine Mux in 8 Bit Busbreite 
für den UART aufsplitten. (Dafür 2 Zustände : Lowbyte senden und 
Highbyte senden)

Mein Problem ist:

Der Zustandsautomat muß relativ langsam laufen und einen "Clock Enable 
Impuls" für den Speicherzähler ausgeben. Der Speicherzähler läuft dabei 
mit ca. 115kHz/16 (Baudrate / 16).
Desweiteren wird noch ein Write Enable für den Uart Fifo gebraucht.

Diese beiden CE Signale dürfen nur jeweils max. 20 nsec lang sein, da 
sich sonst der Speicherzähler und der Fifo verschlucken.

Wie erzeuge ich so kurze Synchronimpulse im Zustandsautomaten, oder kann 
ich im Zustandsautomat die über einen entsprechenden Zähler erzeugten CE 
Signale durchreichen.

Macht ein Mealy Automat mehr Sinn, oder ist mein Gedanke an einen Moore 
Automaten ok.

mfg Maik

von Falk B. (falk)


Lesenswert?

@  Maik (Gast)

>mit ca. 115kHz/16 (Baudrate / 16).

Du brauchst sogar /20, weil ein Byte auf RS232 10 Bit hat.

>Diese beiden CE Signale dürfen nur jeweils max. 20 nsec lang sein, da

Einen 50 MHz Takt.

>Wie erzeuge ich so kurze Synchronimpulse im Zustandsautomaten,

Einfach über einen State. Signal ein, Signal aus.

>ich im Zustandsautomat die über einen entsprechenden Zähler erzeugten CE
>Signale durchreichen.

Jain.

>Macht ein Mealy Automat mehr Sinn, oder ist mein Gedanke an einen Moore
>Automaten ok.

Ich mach meist Moore.

MFG
Falk

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.