Forum: FPGA, VHDL & Co. Frage zum Reset


von Frank (Gast)


Lesenswert?

Hallo,
ich arbeite mit der Altera Quartus II Umgebung und habe folgendes 
'Problem':
Der Kontroller (40MHz) meines Datenpfades arbeitet viel langsamer als 
der Datenpfad selbst (150MHz). Der Kontroller setzt die Steuersignal 
wenn der Datenpfad sich im Reset befindet. Zur Laufzeit ändern sich die 
Steuersignale nicht.
Wenn der Kontroller nun den Datenpfad anhalten möchte, tut er dies über 
das Setzen des Resets. Dieser kommt nun für den Datenpfad völlig 
asynchron.

Meine Frage nun: Wie kann ich ein 'langsameres' Signal sauber auf ein 
schnelleres synchronisieren, via One-Shot Lösung ... ??? Freue mich über 
Vorschläge ! Ansonsten schönes WE,
Frank

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


Lesenswert?

Du nimmst einfach ein 3-Bit Schieberegister in deinem 150MHz-Pfad und 
schiebst da deinen Reset durch. Wenn der am Ende angekommen ist, ist der 
Synchron zum 150MHz-Pfad.

>  Dieser kommt nun für den Datenpfad völlig asynchron.
Interessant ist nicht das Eintreten in den Reset, sondern das Verlassen 
des selben...

von Hans (Gast)


Lesenswert?

Hi Lothar,

das kann ich so nicht ganz stehen lassen. Ein Reset muß ja nicht immer 
die ganze Schaltung zurücksetzen. Und wenn dann beispielsweise am Ende 
einer Pipeline oder bei einem Datenbus ein asynchroner Reset eben mal 
die Datenregister zurücksetzt, aber das Handshake Signal noch nicht, 
dann würde die nachfolgende Schaltung noch irgendwelchen Murks 
übernehmen. Gerade bei lokal genutzten Resets sollte man daher auch auf 
ein synchrones setzen des Resets achten.
Ansonsten nur nebenbei: reichen nicht auch zwei Register zum 
einsynchronisieren?

von Oberklotz (Gast)


Lesenswert?

Dies gilt nicht nur für Resets. Alle Signale sollten so synchronisiert 
werden.

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


Lesenswert?

Hans schrieb:
> Ansonsten nur nebenbei: reichen nicht auch zwei Register zum
> einsynchronisieren?
Es reicht bei moderaten Taktgeschwindigkeiten (<200MHz) und aktuellen 
FPGAs sogar locker eines... ;-)
Siehe dort im Beitrag "Re: Signal per Taktflanken setten/resetten"


Oberklotz schrieb:
> Alle Signale sollten so synchronisiert werden.
Dazu vollstes ACK.

von Frank (Gast)


Lesenswert?

Hallo Lothar,
wie geht man den genau vor, um den reset sauber wegzunehmen. Genau 
hierüber 'removal & recovery' beschwert sich der timequest analyzer.
Gruss,
Frank

von MATLAB und VHDL-Chef (Gast)


Lesenswert?

>Es reicht bei moderaten Taktgeschwindigkeiten (<200MHz) und aktuellen
>FPGAs sogar locker eines... ;-)
Ja und nein. Es kommt auf die Wahrscheinlichkeit und den Schaden laut 
FMEA an. Nimm 3, dann sparst Du Dir die Betrachtung.

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.