Forum: FPGA, VHDL & Co. Haltefunktion in VHDL gesucht


von Mark W. (kram) Benutzerseite


Angehängte Dateien:

Lesenswert?

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?

von Fpgakuechle K. (Gast)


Lesenswert?

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.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Mark W. (kram) Benutzerseite


Lesenswert?

Ich habe es jetzt mit einem Integerzaehler gemacht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

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

von Mark W. (kram) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.