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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.