Zmniejszanie metastabilności w projektach FPGA

Jason Howie
|  Utworzono: luty 21, 2017  |  Zaktualizowano: listopad 11, 2020

Tutaj przyglądamy się koncepcji metastabilności w odniesieniu do obwodów cyfrowych – a więc również projektów FPGA – oraz jak jej "pojawienie się" może być znacznie zredukowane, po prostu przestrzegając sprawdzonych zasad projektowania, które łagodzą jej efekt.

Metastabilność! Można by wybaczyć myślenie, że może to być związane z integralnością jakiegoś futurystycznego pojemnika czy pola siłowego: "Metastabilność triangulatora fluxu napędu warp i kriogenicznej osłony osiąga krytyczne poziomy, Kapitanie!"

Dla tych z Was, którzy na co dzień żyją i oddychają elektroniką cyfrową, termin ten prawdopodobnie zostanie przyjęty z mieszaniną niechęci i szacunku.

Tutaj przyglądamy się koncepcji metastabilności w odniesieniu do obwodu cyfrowego – a więc również projektów FPGA – oraz jak jej "pojawienie się" może być znacznie zredukowane, po prostu przestrzegając sprawdzonych zasad projektowania, które łagodzą jej efekt.

Wyjaśnienie metastabilności

Metastabilność dotyczy wyjść rejestrów (lub przerzutników zegarowych w starym języku) w obwodach cyfrowych i potencjalnej możliwości wejścia wyjścia w 'stan metastabilny'. Urządzenia FPGA zazwyczaj wykorzystują przerzutniki typu D. Zanim przyjrzymy się, jak można wejść w taki stan, dobrze jest przypomnieć sobie kilka podstawowych kluczowych elementów czasowych związanych z działaniem rejestru:

'Czas ustawienia' – jest to minimalny czas, przez który wejście do rejestru musi być stabilne, przed nadejściem następnego zbocza zegara. Zwykle pojawia się jako Tsu w kartach danych.

'Czas podtrzymania' – jest to minimalny czas po nadejściu zbocza zegara, przez który wejście do rejestru musi nadal pozostać w tym samym stabilnym stanie. Zwykle pojawia się jako Th w kartach danych.

'Opóźnienie zegara do wyjścia' – jest to ilość czasu, po nadejściu zbocza zegara, w którym punkcie wyjście rejestru ulega zmianie. Jest to również określane jako 'czas ustalania się' lub 'opóźnienie propagacji' rejestru. Może pojawić się w kartach danych jako, na przykład, Tco, lub Tphl i Tplh.

Kiedykolwiek sygnał podróżuje między dwoma asynchronicznymi domenami zegarowymi – cyfrowymi podobwodami w ramach ogólnego projektu, które działają na różnych lub niepowiązanych zegarach – istnieje możliwość napotkania metastabilności. Dotyczy to również transferu danych z niezegarowanej części projektu do systemu synchronicznego – na przykład zewnętrznych (zewnętrznych) sygnałów wprowadzanych do FPGA.

Poniższy obraz ilustruje dwa przykłady asynchronicznych sygnałów wchodzących do systemu synchronicznego. W górnym przykładzie sygnał podróżuje między różnymi domenami zegarowymi. W dolnym przykładzie sygnał z systemu niezegarowanego jest wprowadzany do systemu zegarowanego (synchronicznego).

Asynchronous System and Synchronous System Graphic

Problem pojawia się, gdy sygnał danych z jednej domeny zegarowej przybywa do logiki rejestru w innej domenie zegarowej. Przychodzący sygnał danych z domeny źródłowej może zmieniać się w dowolnym momencie w porównaniu do zegara w domenie docelowej – nie ma synchroniczności między dwoma domenami, brak wiedzy o prędkościach przejściowych w dwóch podobwodach logicznych. Jeśli sygnał danych zmieni się w punkcie, który narusza wymagane czasy ustawienia lub utrzymania dla docelowego rejestru, wyjście tego rejestru może wejść w 'stan metastabilny' – stan, w którym sygnał wyjściowy nie jest ani logicznie niski, ani logicznie wysoki, ale raczej w niestabilnym obszarze pomiędzy tymi dwoma.

Czas, przez który wyjście pozostaje w stanie metastabilnym, może przekroczyć określony dla rejestru czas opóźnienia „zegar-wyjście” (czas ustalania). W większości przypadków rejestry szybko rozwiązują tę niestabilność wyjścia i wracają do jednego z dwóch zdefiniowanych (i stabilnych) stanów. Problem dla projektu pojawia się jednak w mniejszości przypadków, gdy czas na ustabilizowanie się w stabilnym stanie nie jest wystarczająco szybki, lub gdy sygnał wyjściowy ustala się na nieprawidłowym poziomie logiki.

Poniższy obraz ilustruje wyjście rejestru w zależności od przejścia sygnału danych wejściowych.

Output of a register

Rozważając trzy wejścia:

Wejście A: Wejście przestrzega czasów przygotowania i utrzymania rejestru, a wyjście jest dostępne po czasie opóźnienia zegar-wyjście urządzenia.

Wejście B: Wejście zmienia się w czasie przygotowania rejestru, z wyjściem przechodzącym w stan metastabilny, aż do ustabilizowania się na poprawnym stabilnym poziomie poza czasem opóźnienia zegar-wyjście.

Wejście C: Wejście zmienia się w czasie utrzymania rejestru, z wyjściem przechodzącym w stan metastabilny. Nie tylko wyjście ustala się w stabilnym stanie poza czasem opóźnienia zegar-wyjście, ale także ustala się na niewłaściwym poziomie logiki!

Jeśli wyjście z rejestru jest kierowane do więcej niż jednego kolejnego rejestru w obwodzie – równolegle – istnieje możliwość, że te docelowe rejestry przechwytują dane na różnych poziomach logicznych, w zależności od tego, czy metastabilne wyjście z rejestru źródłowego ustabilizowało się przed każdym z docelowych rejestrów, które są zegarowane do przechwycenia następnych danych. Opóźnienia ścieżek między rejestrami źródłowymi i docelowymi, dodane do czasu potrzebnego na ustabilizowanie metastabilnego wyjścia, tylko pogłębiają problem.

Podsumowując, metastabilność jest statystycznym lub prawdopodobieństwowym wrogiem dla projektanta. W zależności od użytych urządzeń i układu obwodów w projekcie, mogą wystąpić stany metastabilne, a może ich nie być. Jeśli wystąpią, mogą być szkodliwe – powodując niepowodzenie projektu – lub szczęście może być po twojej stronie, a czasy ustalania urządzeń, prędkości zegarów i trasowane ścieżki mogą sprawić, że ich pojawienie się będzie łagodne. Problemem dla projektanta jest jednak to, czy naprawdę można sobie pozwolić na podjęcie tego 'ryzyka'? Co jeśli projektowany produkt jest częścią instalacji medycznej lub komercyjnego samolotu – niepowodzenie projektu mogłoby być katastrofalne.

Chociaż metastabilności nie można całkowicie wyeliminować – żadne urządzenie na świecie nie może pretendować do działania całkowicie wolnego od potencjalnych efektów metastabilności – można ją zredukować do punktu, w którym staje się ledwie 'plamką na radarze'.

Jako miarę niezawodności projektu, w odniesieniu do awarii wywołanych przez metastabilność, mówimy o czymś, co nazywa się Średnim Czasem Między Awariami – lub MTBF. Gdy metastabilność pozostaje niekontrolowana – to znaczy, nie są wprowadzone żadne środki w projekcie, aby złagodzić jej efekt – MTBF może wynosić zaledwie sekundy. Stosując sprawdzone metody projektowania cyfrowego, aby zwalczać metastabilność, oraz dokonując starannego wyboru urządzeń cyfrowych używanych w projekcie, MTBF może być znacznie zwiększony. Tysiąc lat między awariami. Milion lat. Nawet miliard lat, jeśli matematycznie obliczone i ekstrapolowane. Przy tych wartościach MTBF, taki projekt może być oznaczony jako 'Wysoce Niezawodny' lub praktycznie 'Bezawaryjny' (a może powinno być 'Wolny od Awarii') – ale rozumiesz o co chodzi.

Poniższe sekcje przyglądają się, jak ty, jako projektant, możesz przedłużyć MTBF, oraz jak technologia urządzeń odgrywa swoją rolę.

Synchronizowanie Sygnałów Asynchronicznych

Być może najbardziej rozpowszechnionym i powszechnie akceptowanym rozwiązaniem problemu metastabilności jest dodanie układu front-endowego do synchronizacji przychodzącego sygnału asynchronicznego z zegarem docelowego układu synchronicznego. W swojej najprostszej formie, ten układ składa się z jednego lub większej liczby przerzutników typu D, połączonych szeregowo, i taktowanych za pomocą zegara systemu docelowego. To jest określane jako „łańcuch rejestru synchronizacji” lub po prostu „synchronizator”.

Dodatkowe opóźnienie nałożone przez każdy rejestr pozwala przychodzącemu sygnałowi wyjść z ewentualnego stanu metastabilnego, w który mógł wejść. Im więcej rejestrów w łańcuchu, tym większe opóźnienie, a więc więcej czasu na rozwiązanie metastabilnego wyjścia. Całkowite opóźnienie jest często znane jako „Czas Ustalania Metastabilności”. Zwykle układ synchronizacji składa się z dwóch rejestrów, ale dla krytycznych zastosowań – takich jak medyczne i wojskowe – trzy nie są rzadkością.

Poniższy obraz ilustruje przykład dodania 2-stopniowego synchronizatora na początku systemu synchronicznego, aby zsynchronizować przychodzący sygnał asynchroniczny.

adding a 2-stage synchronizer to the front-end of a synchronous system

Logika uzgadniania między układami w różnych domenach zegarowych oraz logika FIFO są również stosowane – oprócz synchronizacji front-endowej – aby zapewnić odbiór poprawnych wartości danych. Jest to szczególnie ważne przy pracy z grupowaniem magistrali wielu sygnałów asynchronicznych, z których każdy może zmieniać stan w dowolnym momencie i niezależnie od siebie.

Najsłabsze ogniwo...

W projektowaniu cyfrowym może występować wiele różnych domen zegarowych oraz mnóstwo sygnałów przekazywanych między nimi. Dodatkowo, może być wiele zewnętrznych, asynchronicznych sygnałów – pochodzących z zewnątrz (szczególnie dla projektu zaimplementowanego w FPGA i wykorzystującego zewnętrzne komponenty peryferyjne oraz interfejsy komunikacyjne). W takich przypadkach, nie jest rzadkością znalezienie wielu łańcuchów rejestrów synchronizujących, obsługujących różne asynchroniczne transfery sygnałów w ramach całego systemu.

W kontekście MTBF, każdy łańcuch synchronizujący będzie miał swoją własną "wartość". Ponieważ ogólna częstotliwość awarii dla projektu jest sumą indywidualnych częstotliwości awarii dla łańcuchów synchronizujących wewnątrz, a częstotliwość awarii to 1/MTBF, można łatwo zauważyć, że łańcuch synchronizujący z obniżonym MTBF w porównaniu do innych, będzie miał ogólnie szkodliwy wpływ na ogólne MTBF dla projektu. W rzeczywistości, MTBF dla projektu będzie w zasadzie podążać za MTBF najgorszego łańcucha synchronizującego – co może być katastrofalne, jeśli pięć łańcuchów miało MTBF wynoszące milion lat, a szósty łańcuch miał MTBF 50 lat!!

Aby sobie z tym poradzić, rozwiązaniem jest dodanie kolejnego etapu rejestru do najgorzej działającego łańcucha synchronizującego w projekcie, co zwiększa czas ustalania metastabilności i znacząco (jeśli nie eksponencjalnie!) poprawia MTBF dla tego łańcucha - a więc i całego projektu.

Technologia urządzeń - Szybsze vs Mniejsze

Podsumowując, metastabilność (chociaż nie ma nic stabilnego w tym stanie!) występuje, gdy przychodzący sygnał asynchroniczny zmienia się w naruszeniu czasu ustawienia i/lub czasu trzymania rejestru. Całkowity czas, czas ustawienia + czas trzymania, zasadniczo definiuje "okno" dla występowania metastabilności – "okno metastabilności", jeśli można tak powiedzieć.

Rozsądne jest przypuszczenie, że im szybsze są czasy ustawienia (Set-Up) i utrzymania (Hold) rejestru, tym mniejsze jest okno metastabilności. Rzeczywiście, szybsze rodziny logiczne wykazują te szybsze czasy i w rezultacie zmniejszają prawdopodobieństwo wystąpienia zdarzenia metastabilnego. Jeśli zdarzy się zdarzenie metastabilne (pamiętajmy, że metastabilności nie można całkowicie wyeliminować), rejestry są na tyle szybkie, że mogą szybko się z niego otrząsnąć. Na przykład, rejestr z rodziny 74F prowadziłby do lepszego MTBF niż urządzenie używane z rodziny 74LS – dwa krańce spektrum prędkości urządzeń.

W przypadku FPGA, zmniejszenie geometrii procesu (od 180nm, przez 90nm i dalej do 65nm, 40nm i poniżej) sprzyja szybszym prędkościom przełączania tranzystorów – zwykle poprawiając MTBF ze względu na metastabilność. Jednak korzyści z redukcji rozmiaru nie są bez potencjalnych wad. Zmniejszanie geometrii naturalnie prowadzi do obniżenia napięć zasilających. Podczas stanu metastabilnego, wyjście z rejestru jest zwykle równe połowie napięcia zasilania. W miarę jak napięcie zasilania staje się coraz mniejsze, różnica napięcia między pełnym a połowicznym zawęża się, prowadząc do zmniejszenia wzmocnienia obwodu i dłuższego czasu, potrzebnego rejestrom na otrząśnięcie się ze stanu metastabilnego.

Dostawcy FPGA zwykle przeprowadzają rygorystyczną analizę metastabilności, aby zapewnić odporność na metastabilność w fizycznych urządzeniach wykorzystujących te coraz mniejsze geometrie procesu.

Przydatne linki

Skorzystaj z poniższych linków, aby uzyskać dostęp do zewnętrznych dokumentów, które przyglądają się bliżej i bardziej szczegółowo zjawisku metastabilności oraz temu, jak jego wpływ jest w zasadzie sprowadzany do nieistotności w projektach elektroniki cyfrowej. Wiele z tych dokumentów przygląda się równaniom używanym do obliczania MTBF dla przerzutnika, a następnie MTBF dla całego projektu, i same dostarczają odniesienia do dalszych informacji na ten temat.

Metastabilność w logice cyfrowej (www.interfacebus.com)

FPGA-FAQ 0017: Powiedz mi o metastabilności (Philip Freidin)

Metastabilność w elektronice (Wikipedia)

Co to jest metastabilność? (www.asic-world.com)

Metastabilność w projektowaniu (The VLSI Homepage)

Biała księga: Zrozumienie metastabilności w FPGA (Altera)

Notatka aplikacyjna: Odzyskiwanie metastabilności w FPGA Virtex-II Pro (Peter Alfke, Xilinx)

Notatka aplikacyjna: Metastabilność i rodzina ECLinPS (Inżynieria aplikacji, ON Semiconductor)

Reakcja metastabilna w obwodach logiki 5-V (Texas Instruments)

About Author

About Author

Jason Howie jest szefem ds. dokumentacji technicznej w Altium. Wnosi bogate doświadczenie w zakresie dokumentacji technicznej i często można usłyszeć, jak do wczesnych godzin porannych stuka w klawiaturę. Przed dołączeniem do Altium w maju 2000 Jason spędził nieco ponad 4 lata w Joint European Torus w Oxfordshire w Wielkiej Brytanii, gdzie pracował przy systemach oprzyrządowania i zabezpieczeń.

Powiązane zasoby

Powiązana dokumentacja techniczna

Powrót do strony głównej
Thank you, you are now subscribed to updates.