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?
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.
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.
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?
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.
Vielen Dank für die Antwort Dussel. Ich wäre dankbar, wenn jemand die Vermutung von Dussel und mir bestätigen könnte.
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.
Nun habe ich alles verstanden. Vielen Dank für die Hilfe!
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

