Dlaczego kaskadowe klapki D-Flip zapobiegają metastabilności?

15

Rozumiem, czym jest metastabilność, ale nie rozumiem, w jaki sposób łączenie klapek to zmniejsza?

Jeśli wynik pierwszego flipflopa jest metastabilny, zostanie on wykorzystany jako dane wejściowe dla drugiego. Ale nie rozumiem, jak drugi flip flop będzie w stanie cokolwiek zrobić z tym wejściem i sprawi, że będzie stabilny.

Z góry dziękuję!

Wouter A
źródło
2
Zawsze szukam okazji, by wspomnieć o dupie Buridana: en.wikipedia.org/wiki/…
copper.hat

Odpowiedzi:

11

Metastabilności nie można „wyleczyć”, ale jeśli zaczekasz wystarczająco długo , prawdopodobieństwo jej wystąpienia może być dowolnie zmniejszone. Kiedy już osiągniesz jeden raz w erze wszechświata, prawdopodobnie nie sprawi to kłopotów.

To jak balansowanie ołówkiem na swoim punkcie. Prawdopodobnie przewróci się, a im dłużej będziesz czekać, tym mniejsze prawdopodobieństwo, że pozostanie.

Długo czekają dwa problemy, a jeden z nich ma fundamentalne znaczenie.

Podstawowym problemem jest to, że jeśli masz pojedynczy element pamięci (zatrzask lub przerzutnik, oba cierpią z powodu metastabilności) w taktowanym systemie odbierającym dane wyjściowe z asynchronicznego systemu zewnętrznego, to fizycznie nie możesz zdefiniować dolnej granicy czasu oczekiwania , czasami sygnał zewnętrzny wykona przejście w pobliżu krawędzi kontrolnej zatrzasku. Musisz przesłać sygnał do innego flip-flopa, aby mógł tam poczekać. Zapewnia to minimalny czas oczekiwania na jeden cykl zegara.

Drugi problem polega na tym, że często próbujesz uruchomić system tak szybko, jak to możliwe, a częstotliwość taktowania systemu nie może zostać spowolniona, aby zapewnić wystarczającą ilość czasu w drugim przerzuceniu. Jedynym sposobem na zwiększenie opóźnienia sygnału do niezbędnego poziomu bez zmniejszania przepustowości jest potokowanie oczekiwania na więcej etapów.

Niektóre osoby mają problemy z wizualizacją tego, co dzieje się między klapkami. Istnieją dwa sposoby wywołania metastabilności i oba polegają na naruszeniu zasad flip-flop. Jednym ze sposobów jest naruszenie ustawień wejścia i czasów wstrzymania, aby dokonać przejścia, gdy flip-flop oczekuje, że dane wejściowe będą stabilne. Drugim jest naruszenie poziomów logiki wejściowej, aby wejście danych typu flip-flop znajdowało się na pośrednim poziomie napięcia. Flip-flop, który jest metastabilny, może spowodować naruszenie dowolnego rodzaju wyjścia, aby kaskadować do następnego flip-flopa.

Neil_UK
źródło
6
Jako przykład, kiedy projektowałem układy scalone, miałem „metastabilność”, wszystkie przejścia przez zegary, robiliśmy matematykę, zastanawiałem się, jakie są szanse na awarię synchronizatora przy każdym flopie, grupie flopów itp. być ... przeważnie piksel na wyświetlaczu może pękać, w końcu cała droga do układu spadła do mniej więcej raz na dwa lata - była to karta graficzna dla Win95, która w tym czasie nie mogła wytrzymać dłużej niż około dnia zdecydowaliśmy, że nikt nawet nie zauważy synchronizatora 2-letniego MTBF.
Taniwha,
7
Jedną rzeczą, o której nikt nie wspomina, jest to, co dzieje się z absolutnie najgorszym awarią metastabilności ... czasami awaria synchronizatora powoduje, że flop oscyluje wewnętrznie z głupio wysoką częstotliwością, może na poziomach między normalnymi cyfrowymi wzlotami i upadkami - jeśli ucieknie od twojego wysokiego - zyskaj anty-metastabilność klap synchronizujących, że hałaśliwa buzza może zainfekować wszystkie kolejne klapy (jako rzeczy wyrzucane przez fanów), powodując ogromne pobory prądu, a nawet potencjalnie przegrzanie i śmierć chipa - więc zwróć na to uwagę jako problem
Taniwha
@Neil_UK Używasz słowa zatrzask, które moim zdaniem jest mylące. W moich kręgach zatrzask jest elementem asynchronicznym. Dla jasności nazwałbym je klapkami.
jalalipop
1
@jalalipop Używałem zatrzasku, aby oznaczać flip-flop, choć może jego znaczenie zmieniło się w ciągu dziesięcioleci, odkąd zacząłem go używać. Chociaż zgadzam się, że „zatrzask” ogólnie odnosi się do asynchronicznego typu przezroczystego, oni również cierpią z powodu metastabilności, jeśli dane zmienią się na „zatrzaskującej” krawędzi wejścia aktywującego. Przerzutnik master slave jest zwykle zbudowany wewnętrznie z pary zatrzasków napędzanych w przeciwfazie przez zegar. Dzięki, że o tym wspomniałeś, zmodyfikuję odpowiedź, aby wyjaśnić.
Neil_UK
@ Tamiwha Czy możesz udzielić odpowiedzi ze schematami i stałymi czasowymi oraz matematyką, aby wyjaśnić wewnętrzne zachowania zatrzasków podczas ich próby rozwiązania. Musisz pokazać (jak na pewno wiesz), w jaki sposób wzmocnienie pętli i stała czasowa regeneracji oraz poziom szumu (termiczny i VDD) wpływają na zdolność do rozwiązania.
analogsystemsrf
9

Zmniejsza prawdopodobieństwo wpływu metastabilności na obwód, pozostawiając więcej czasu do faktycznego wykorzystania sygnału. Dzięki dwóm przerzutnikom pozwala na cały dodatkowy cykl zegara, aby sygnał się ustabilizował. Z trzema umożliwia dwa dodatkowe cykle zegara.

użytkownik253751
źródło
2
Dobra odpowiedź. Ważne jest to, że nie zapobiega się metastabilności , po prostu zmniejszamy prawdopodobieństwo do akceptowalnego poziomu.
Elliot Alderson
1
Czy kaskadowe przerzucanie daje czas na ustabilizowanie się sygnału między 0 a 1, ale nie rozwiązuje złej wartości? skoro metastabilny sygnał może spaść w obie strony?
Wouter
2
@ WouterA Jeśli jest metastabilny, obie wartości są prawidłowe.
user253751
4
Nie sądzę, że to dobra odpowiedź, tylko pierwszy flop próbkuje w tym przypadku sygnał wejściowy. Jak wspomniano powyżej, zachodzi prawdopodobieństwo wystąpienia metastabilności (zależy od wzmocnienia wewnętrznych pętli sprzężenia zwrotnego na flopie, szybkości zegara i częstotliwości, z jaką próbowana rzecz przechodzi między progami wejściowymi) w danym flopie (mam nadzieję) mała liczba <1 = p - dwie klapy dają nam p ^ 2 szansę na przejęcie przez MS 2 flopów, 3 p ^ 3 itd. itd.
Taniwha
4

Nie zapobiegają wpływowi metastabilności na wynik, ale mogą znacznie wydłużyć średni czas między incydentami, ponieważ metastabilność musiałaby trwać stosunkowo długo.

Kaskadowanie trzech (lub więcej) dobrze zaprojektowanych klapek może wydłużyć czas między zdarzeniami do czegoś w rodzaju wieku Ziemi.

Spehro Pefhany
źródło
Zależy od częstotliwości taktowania i technologii procesu. Jeden przerzutnik może wystarczyć, aby Twój MTBF był nieskończenie mały, o ile utrzymujesz luz.
jalalipop
@jalalipop Sure. W oryginalnym dokumencie IEEE znajduje się kilka rzeczywistych informacji testowych (teraz bardzo datowanych). DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany
@jalalipop: generalnie jest to problem, który jest bardziej odpowiedni, gdy nie można zagwarantować wolnego czasu ... inaczej asynchroniczny projekt, taki jak FIFO, który komunikuje się między rdzeniem procesora a SOC, gdy odpowiednie zegary nie są zablokowane fazowo. W przeciwnym razie ustawiasz tylko trudny czas instalacji i nie gwarantujesz metastabilności.
jbord39,
Tak, metastabilność jest problemem dotyczącym interfejsu asynchronicznego. Slack, o którym mówię, to luz logiki synchronicznej po flip-flopie. Jeśli twój luz jest wysoki, zdarzenie Metastability umrze, zanim wpłynie na resztę twojego projektu.
jalalipop
2

Ponieważ pierwszy flip-flop, nawet jeśli jest metastabilny, będzie miał cały okres czasu na ustabilizowanie się. Zanim drugi przerzut zacznie próbkować pierwszy przerzut, jego wynik może być już stabilny.

Claudio Avi Chami
źródło
1

Jeśli chcesz emocji związanej z metastabilnością, zaimplementuj DWIE BARDZO WOLNE FALOWNIKI, połącz je jeden za drugim i odchyl je (w symulacji) na VDD / 2. Następnie usuń odchylenie i obserwuj szybkość rozwiązywania do poziomów logic1 i logic0. Może być konieczne wybranie początkowego napięcia polaryzacji innego niż VDD / 2.

Jeśli twoje 2 lub 3 przerzuty są WOLNE w porównaniu z okresem zegara, życie może być pełne problemów.

analogsystemsrf
źródło
1

Metastabilność oznacza po prostu, że jeśli masz tranzyt danych w określonym oknie czasowym odnoszącym się do zegara, dane wyjściowe będą się źle zachowywać przez pewien okres po zboczu zegara. Jednak okno nie jest stałym interwałem. Prawdopodobieństwo złej wartości (oscylacja lub pośredni poziom napięcia) maleje wykładniczo z czasem. Tak więc, jeśli próbkujesz sygnał za pomocą zegara, a następnie odczekujesz chwilę przed zastosowaniem zegara do drugiego przerzutnika, możesz zmniejszyć szanse na zły bit do dowolnego pożądanego (ale niezerowego) prawdopodobieństwa. Jeśli wymagany czas jest zbyt długi, możesz użyć 3 lub więcej przerzutników w szeregu.

WhatRoughBeast
źródło