Hallo, ich benoetige eine Haltefunktion in VHDL. Es soll auf einen Eingang(fallende Flanke) reagiert werden. Dann soll der Ausgang immer noch einige Zeit an bleiben. Idealerweise im Code einzustellende Taktzyklen. Ich habe das mal aufgemalt, siehe Anhang. Meine derzeitige Idee ist ein Zaehler, wo das Eingangssignal immer der Reset und Start ist. Geht das auch einfacher?
Mark W. schrieb: > Meine derzeitige Idee ist ein Zaehler, wo das Eingangssignal immer der > Reset und Start ist. > Geht das auch einfacher? Schieberegistermakro (SRL32) wenn es um bis zu 16/32 Takte geht. Das ist dann aber architekturabhängig.
Mark W. schrieb: > Es soll auf einen Eingang(fallende Flanke) reagiert werden. Ist das ein asynchroner Eingang? Soll nur auf die fallende Flanke des Eingangssignals reagiert werden? Ist das Eingangssignal immer gleich lange auf low? Sind das immer 2 Takte? Oder kann das Eingangssignl auch mal nur einen halben Takt low sein? Oder kann das Eingangssignal mal 20 Takte low sein? Falls ja: was soll dann passieren? Soll dann das Ausgangssignal 8..12 Takte low sein oder eher 28..32? Im Großen&Ganzen würde ich aber bisher damit und einem dahintergeschalteten 7..11 Takte-Zähler dein Problem angehen: http://www.lothar-miller.de/s9y/archives/19-Kurzer-Spike-in-Puls-umgewandelt.html
Mark W. schrieb: > Ich habe es jetzt mit einem Integerzaehler gemacht. Und wie hast du das mit den 0-1 Takten Latency hinbekommen? Hoffentlich nicht in bester Anfängermanier, indem das Eingangssignal asynchron direkt schnurstraks auf die Flipflops des Zählers geht... Siehe dazu das da (denn ein Zähler ist die reinste Form einer FSM): http://www.lothar-miller.de/s9y/archives/64-State-Machine-mit-asynchronem-Eingang.html Und natürlich das: http://www.lothar-miller.de/s9y/archives/70-Asynchroner-Reset.html
Nein, aber das oben beschriebene Signal ist tatsaechlich asyncron. Aber ich habe im Design schon ein Signal, was von dem abhaengt. Natuerlich von der einsyncronisierten Variante. Damit ging es auch. Somit konnte ich mir ein FIFO wegoptimieren. Jetzt kann ich Asyncron einen 3MHz ADC auslesen, allerdings mit 6MHz, weil der 16 bit hat und ich nur 8 bit jeweils abholen kann. Also ich muss bei jedem Abholen immer zuerst das High-Byte abholen, dann aber jedes bis die Uebertragung fertig ist. Also muss jede Uebertragung immer mit einem High-Byte anfangen.
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.