Hallo Zusammen! Ich würde gerne eine Zustandsmaschine in VHDL erstellen die folgendes tut: 1. Erkennen von drei seriellen Steuerbits. 2. Zustand umschalten anhand der erkannten Steuerbits 3. Solange im Zustand verbleiben, bis eine bestimmte Zeit (in Takten) um ist oder ein Signal gegeben wird wieder in den Zustand zum erkennen der Steuerbits zurückzukehren. Steuerbits und zu verarbeitende Daten kommen hierbei über die gleiche Leitung. Ich habe es bisher so gelöst, dass ich die Steuerbits in ein Register schiebe diese und dann mit Hilfe eines Zählers bei definiertem Zählwert auslese. Das klappt soweit wunderbar. Mein Problem ist nun: Wie kann ich elegant realisieren, dass der Zustand nur dann gewechselt wird, wenn ich das auch will. Oder anders: Wie kann ich bestimmen: "Lese jetzt wieder Steuerbits und schalte dann in diesen und jenen Zustand um" ? Beispiel: Es soll so aussehen: Eine Bit-Kette kommt herein, die ersten 3 Bits sind die Steuerbits, daran anschließend eine "Leerstelle" und dann z.B. 16 Bits die Auf einen Ausgang geleitet werden sollen. (Ausgabezustand). Anschließend soll der Automat wieder zurück in einen Modus schalten bei dem er die Steuerbits erkennt....am besten sogar noch ein Reset vorher ausführen... Hoffe die Problematik ist klar geworden. Für Vorschläge und Ideen wäre ich sehr dankbar! Gruß Tobi
> Eine Bit-Kette kommt herein, die ersten 3 Bits sind die Steuerbits Ist das eine asynchrone Übertragung (wie RS232) oder eine synchrone (wie SPI)? > und dann z.B. 16 Bits die Auf einen Ausgang geleitet werden sollen. Sollen die seriell auf 1 Ausgang ausgegeben werden, oder auf 16 parallele Ausgänge? Wie erkennst du den Beginn und das Ende der Bitstroms?
Danke für die schnelle Antwort! Die Übertragung soll synchron sein, also ein Bit pro Taktperiode. Es soll später über die gleiche Leitung auch eine SPI Kommunikation laufen. Die Bits sollen parallel auf 16 Ausgänge. Das mache ich mit einem Multiplexer und einem Zähler mit dessen Hilfe ich die CE-Eingänge der Ausgangs-FF ein und aus schalte. Die letzte Frage ist eigentlich Teil meines Problems. Der Einfachheit halber gehe ich aber davon aus: Einmal Steuerbits erkennen dauert 4 Takte. Einmal Ausgabemodus dauert 16 Takte. Dann geht alles wieder von vorne los. Letztendlich wird es aber natürlich noch mehr Zustände geben die auch verschieden lang sein können. Ich habe mir etwas vorgestellt, wie ein Signal, dass am Ende des Prozesses, also wenn die Arbeit innerhalb eines Zustands sozusagen abgeschlossen ist, signalisiert, dass jetzt wieder in den Erkennungsmodus umgeschaltet werden kann. Gruß Tobi
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.