Uart Timing aus Zustandsautomat

Gast #995578
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
#995658
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

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