Hilfe bei Metastabilität von D-FlipFlops

Gast #4165095
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?
Angehängte Dateien:
Gast #4165145
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.
Gast #4165162
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.
Gast #4165178
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?
Gast #4165198
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.
Moderator (Firma: Titel) Persönliche Seite #4165313
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.
Gast #4165486
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
#4165537
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.
Angehängte Dateien:

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.