Forum: FPGA, VHDL & Co. Signal eines Systems mit 4MHz-Clk um 125ns verzögern


von Anne R. (lilalola)


Lesenswert?

Hallo,

ich würde gerne ein Signal eines Systems, welches mit 4MHz läuft um ca 
100ns verzögern um einen Puls dieser Breite zu erhalten.
Zunächst dachte ich an einen Frequenzverdoppler. Allerdings erhalte ich 
dann mehrere Flanken und die Phasenbeziehung zwischen beiden Signalen 
ist nicht mehr eindeutig.

Wie wird so etwas üblicher Weise gelöst.

Grüße lilalola

von P. K. (pek)


Lesenswert?

Vom Forum her nehme ich mal an, dass das Ganze auf einem FPGA läuft, 
dann kannst Du ganz grob:

- Mit einem DCM/PLL einen schnellen internen Clock herstellen
  (40 MHz reicht hier).
- Eine Flankendetektion machen.
- Den erhaltenen Puls auf 4 Zyklen ausdehnen, et voilà,
  fertig ist der 100 ns-Puls.

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


Lesenswert?

Anne R. schrieb:
> ich würde gerne ein Signal eines Systems, welches mit 4MHz läuft um ca
> 100ns verzögern um einen Puls dieser Breite zu erhalten.
Ich hätte da noch 2, 3 Fragen:
Wie genau muss die Verzögerung sein? Welcher Jitter ist erlaubt? Wie 
sieht das Originalsignal aus? Woher kommt das Signal, wohin geht es? 
Warum muss es verzögert werden? Kurz: Was ist dein eigentliches Problem?

von Anne R. (lilalola)


Lesenswert?

Es handelt sich hier eigentlich um ein IC-Design Problem auf einem 
Mixed-Signal Chip.

Das digitale Signal nennen wir es "switch-enable" hat momentan eine 
einstellbare Frequenz zwischen 10kHz und 100kHZ.
Dies wird dazu genutzt einen Switch anzusteuern.

Der Switch muss jedoch im statischen betrieb 40mA liefern können und 
aufgrund der dazu nötigen Niederohmigkeit sind die Transistoren sehr 
groß.
Zudem müssen die Flanken relativ Flach sein (VHL=VLH=100ns).
Dies führt zu einem unerwünscht großen Querstrom.

Um den zu verringern möchte ich die beinen Transistoren des Switches 
getrennt ansteuern und den Ausschaltenden Transistor immer früher 
Schalten als den Einschaltenden.

Dazu wiederum muss ich aus dem "switch-enable"-Signal einen Puls einer 
Breite zwischen 90ns bis 180ns erzeugen. Dieser muss nicht sehr präzise 
sein, sollte jedoch möglichst gleichbleibend sein. Jitter ist daher eher 
unerwünscht.
Diesen Puls mit einem einfachen RC-Glied zu erzeugen ist nicht möglich, 
da dies zu zu großen Bauteilen auf dem Chip führen würde.

Das signal "switch enable" wird aus einem Digitalteil, welcher mit den 
besagten 4MHz getaktet wird generiert.

Ist die Fragestellung hiermit etwas klarer?

von Anne R. (lilalola)


Lesenswert?

Ahhhh ich glaube ich bin auf dem Schlauch gestanden.
Ein Master-Slave D Flip Flop sollte es doch tun oder?

von Schlumpf (Gast)


Lesenswert?

Wenn du Zugriff auf den Digital teil hast, dann könntest du, 
vorausgesetzt, das Steuersignal ist synchron zu den 4MHz, dieses durch 
ein Register führen, welches gerade mit der anderen Flanke arbeitet, als 
das,welches das Steuersignal erzeugt. Dann hättest du schon mal eine 
Phasenverschiebung von 125ns. Daraus kannst du ja dann vielleicht durch 
entsprechende Logik ein passendes Signal erzeugen

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.