Forum: Mikrocontroller und Digitale Elektronik Hilfe bei Metastabilität von D-FlipFlops


von Elektronikbeginner (Gast)


Angehängte Dateien:

Lesenswert?

Guten Tag,

unser Prof hat uns folgende Zeichnung gegeben und wir sollen überlegen, 
wie die zusätzliche Beschaltung des 2. D-Flipflops bei metastabilen 
Zuständen Abhilfe schaffen kann.

Fungiert das zweite D-Flip-Flop hier als eine Art "Synchronisator"? Wenn 
ich die Setup und Holdzeiten verletze und dann ein zweites FlipFlop 
davorschalte, wieso schafft dieses D-Flip-Flop dann Abhilfe bezüglich 
der Metastabilität?

von Achim S. (Gast)


Lesenswert?


von Elektronikbeginner (Gast)


Lesenswert?

Hallo Achim,

den Artikel habe ich erst gerade entdeckt und ich habe mir ihn 
vorgenommen. Das Einsychronisieren ist auch dort enthalten, ich verstehe 
aber nicht, wieso die zusätzliche Beschaltung eines D-FlipFlops das 
Signal dann wieder einsychronisiert. Ich wäre danbkar, wenn du mir das 
einmal erläutern könntest.

von Schlumpf (Gast)


Lesenswert?

Eine Metastabilität klingt nach einer gewissen Zeit wieder ab. Das 
heißt, der Ausgang des ersten FF "entscheidet" sich nach einer gewissen 
Zeit, ob er H oder L sein soll und nimmt diesen Zustand dann auch 
statisch an.

Geschieht dieses "Abklingen" schneller, als eine Taktperiode, so ist 
beim zweiten Takt der Ausgang des ersten FF und somit der Eingang des 
zweiten FF stabil.
Dieser stabile Wert wird dann mit der zweiten Flanke in das zweite FF 
übernommen. Ganz ohne Setup- oder Holdzeitverletzungen. Und damit wird 
der Ausgang des zweiten FF nicht mehr metastabil.

von Elektronikbeginner (Gast)


Lesenswert?

Aber das heißt doch, dass der Ausgang des zweiten FlipFlops dann nicht 
unbedingt den Zustand anzeigen wird, der eigentlich gewünscht ist, oder? 
Wenn man nach dem 1. FlipFlop beispielsweise High haben wollte, kann es 
doch sein, dass nach dem 2. FlipFlop dann Low da ist, oder nicht?

von Dussel (Gast)


Lesenswert?

Elektronikbeginner schrieb:
> Aber das heißt doch, dass der Ausgang des zweiten FlipFlops dann nicht
> unbedingt den Zustand anzeigen wird, der eigentlich gewünscht ist, oder?
Soweit ich weiß, ja. Aber es ist immer noch besser, einen stabile 
falschen Zustand zu haben, als einen instabilen.

von Elektronikbeginner (Gast)


Lesenswert?

Vielen Dank für die Antwort Dussel. Ich wäre dankbar, wenn jemand die 
Vermutung von Dussel und mir bestätigen könnte.

von Schlumpf (Gast)


Lesenswert?

Elektronikbeginner schrieb:
> ber das heißt doch, dass der Ausgang des zweiten FlipFlops dann nicht
> unbedingt den Zustand anzeigen wird, der eigentlich gewünscht ist, oder?
> Wenn man nach dem 1. FlipFlop beispielsweise High haben wollte, kann es
> doch sein, dass nach dem 2. FlipFlop dann Low da ist, oder nicht?

Exakt.. das ist so.
Wenn die Information am Eingang nicht "rechtzeitig" da war, dann kann 
die Elektronik dahinter nicht mehr erraten, was denn eigentlich 
gewünscht war.

Aber das Problem ist ja eher, dass du nicht nur ein FF, sonderen mehrere 
mit dieser Eingangsinformation fütterst. Z.B. nen Zähler.
Und wenn jetzt plötzlich ein Teil der FF eine 1 sehen und die anderen 
eine 0 und ein paar davon wild umherzappeln, dann führt das zu Zuständen 
im Zähler, die vielleicht gar nicht so gewünscht sind.

Darum synchronisiert man und erst den Ausgang der Synchronisationsstufe 
gibt man dann auf die restlichen FFs der Schaltung. So kann man sich 
sicher sein, dass wenigstens alle FF immer die identische Information 
bekommen.

von Elektronikbeginner (Gast)


Lesenswert?

Nun habe ich alles verstanden. Vielen Dank für die Hilfe!

von Schlumpf (Gast)


Lesenswert?

Gerne geschehen. :-)

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


Lesenswert?

Schlumpf schrieb:
> Aber das Problem ist ja eher, dass du nicht nur ein FF, sonderen mehrere
> mit dieser Eingangsinformation fütterst. Z.B. nen Zähler.
Siehe auch dort: 
http://www.lothar-miller.de/s9y/categories/35-Einsynchronisieren

Aber prinzipiell gilt, dass bei heutigen FPGAs Metastabilität 
frühestens bei Taktfrequenzen ab etwa 500MHz eine Rolle spielen. Wie 
schon erwähnt ist eben meist nicht Metastabilität das Problem, sondern 
unterschiedliches Routing zu den beteiligen Flipflops einer FSM. Und ein 
Zähler ist eben auch eine simple FSM.

von 6a66 (Gast)


Lesenswert?

Dussel schrieb:
>> Aber das heißt doch, dass der Ausgang des zweiten FlipFlops dann nicht
>> unbedingt den Zustand anzeigen wird, der eigentlich gewünscht ist, oder?

Ja das ist korrekt.
Beim Einsynchronisieren von Ereignissen/Signalen die asynchron zum 
System laufen auf das einsynchronisiert werden muss sind immer zwei 
Takte nötig. Einer der ersten ARMs hatte ein externes Businterface das 
asynchron zum Core war mit dem Effekt, dass Daten von extern (externer 
Datenbus) erst mal zwei Takte gebraucht haben um am Kern 
einsynchronisiert zu werden. Die CPU lief - wenn richtig erinnert - mit 
16 MHz.

rgds

von Matz K. (xt-matz)


Angehängte Dateien:

Lesenswert?

Schlumpf schrieb:
> Darum synchronisiert man und erst den Ausgang der Synchronisationsstufe
> gibt man dann auf die restlichen FFs der Schaltung. So kann man sich
> sicher sein, dass wenigstens alle FF immer die identische Information
> bekommen.

Schlumpf hat das schön erklärt.
Ich habe mal eine Schaltung aufskiziert (nicht schön aber selten). 
Manchmal sagt ein Bild mehr als viele Worte.
In Fall (1) wird der Eingang IN nicht auf den Takt aufsyncronisiert. 
Hier kann es passieren, dass A und B gleiche Zustände annehmen.
In Fall (2) syncronisiert das Eingangs Flip-Flop das Signal (IN) auf den 
Takt auf. Das stellt sicher, dass zum Zeitpunkt der Taktflanke die 
Eingänge der weiteren Flips-Flops immer unterschiedlich sind.

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.