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ę!
digital-logic
flipflop
metastability
Wouter A
źródło
źródło
Odpowiedzi:
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło