Чому каскадні D-Flip Flops запобігають метастабільності?


15

Я розумію, що таке метастабільність, але не розумію, як зв’язування разом тригерів зменшує це?

Якщо вихід першого фліпфлопу метастабільний, він використовується як вхід для другого. Але я не бачу, як другий фліп-флоп зможе зробити що-небудь із цим входом і зробити його стабільним.

Спасибі заздалегідь!


2
Завжди шукаю можливість згадати про попку
Буридана

Відповіді:


11

Метастабільність не можна «вилікувати», але якщо ви будете чекати досить довго , ймовірність її виникнення може бути довільно невеликою. Після того, як ви довели це до одного разу у епоху Всесвіту, це, ймовірно, не викличе вам проблем.

Це як урівноважити олівець на своїй точці. Це, ймовірно, перевалиться, і чим довше ви будете чекати, тим менше шансів залишитися стоячи.

Існує дві проблеми з тривалим очікуванням, і одна з них є принциповою.

Фундаментальна проблема полягає в тому, що якщо у вас є один елемент пам'яті (засувка або триггер, вони обоє страждають від метастабільності) в тактовій системі, що отримує вихід з асинхронної зовнішньої системи, ви фізично не можете визначити нижню межу часу очікування , іноді зовнішній сигнал здійснить перехід біля кромки керування засувки. Ви повинні передати сигнал іншому триггеру, щоб він зачекав там. Це дає вам гарантований мінімальний час очікування на один тактовий цикл.

Друга проблема полягає в тому, що часто ви намагаєтеся запустити систему якнайшвидше, і тактову частоту системи не можна уповільнити, щоб приділити достатньо часу другому триггерю. Єдиний спосіб збільшити затримку сигналу до необхідного, не зменшуючи пропускну здатність, - це провести очікування на кілька етапів.

Деякі люди мають проблеми з уявленням того, що відбувається між шльопанками. Існує два способи спонукати метастабільність, і обидва вони пов'язані з порушенням правил обертання. Один із способів - порушити параметри введення та тримати час утримання, зробити перехід, коли тригер очікує, що вхід буде стабільним. Інша полягає в порушенні вхідних логічних рівнів, змушувати введення даних, що перевертається, сидіти на рівні проміжного напруги. Металебний триггер може спричинити порушення будь-якого типу на своєму виході, щоб перейти на наступний триггер.


6
Наприклад, коли я займався дизайном чіпів, я «володів» метастабільністю, усі переходи годин, ми проводили математику, з'ясовували шанси виходу з ладу синхронізатора на кожному флопі, групі флопів тощо, і т. Д. Розглядали, які результати будуть бути ... здебільшого піксель на дисплеї може спалахувати, врешті-решт весь чіп зводився приблизно раз на два роки - це була відеокарта для Win95, яка на той час не могла залишатися більше, ніж більше приблизно за день ми вирішили, що ніхто не помітить навіть 2-річного синхронізатора MTBF.
Taniwha

7
Крім того, одне, про що ніхто не згадує, - це те, що відбувається з абсолютно гіршим випадком відмови метастабільності ... іноді несправність синхронізатора призводить до того, що флоп коливається внутрішньо на дурно високому частоті, можливо, на рівнях між звичайними цифровими максимумами та мінімумами - якщо це уникне вашого високого рівня, підсилюють флопи синхронізатора проти метастабільності, що шумна катастрофа може заразити всі флопи нижньої течії (як фанатики), що призводить до величезних струмових витяг та навіть потенційного перегріву та загибелі мікросхем - тому зверніть увагу на це як на проблему
Taniwha

@Neil_UK Ви використовуєте слово засувка, яке я вважаю заплутаним. У моїх колах засувка - це асинхронний елемент. Я б назвав їх шльопанці для наочності.
джалаліпоп

1
@jalalipop Я використовував засувку, щоб означати фліп-флоп, хоча, можливо, його зміст змістився за десятиліття, відколи я почав його використовувати. Хоча я згоден, що "засувка", як правило, відноситься до асинхронного прозорого типу, вони також страждають від метастабільності, якщо дані змінюються на краю "фіксації" входу для включення. Тригер головного раба, як правило, будується внутрішньо з пари засувок, що рухаються в антифазі годинниками. Дякую, що згадуєте про це, я зміню відповідь, щоб уточнити.
Neil_UK

@ Tamiwha Чи можете ви надати відповідь діаграмами та константами часу та математикою, щоб зрозуміти внутрішню поведінку засувок, коли вони намагаються вирішити. Вам потрібно показати (як ви, звичайно, знаєте), як посилення контуру та постійна тривалість регенерації та шум підлоги (тепловий і VDD) впливають на здатність розв’язувати.
analogsystemsrf

9

Це знижує ймовірність метастабільності, що впливає на ланцюг, надаючи більше часу, поки сигнал фактично не використовується. За допомогою двох тригерів це дозволяє цілий додатковий тактовий цикл, щоб сигнал вгамовувався. З трьома, це дозволяє два додаткових тактових цикли.


2
Гарна відповідь. Важливим моментом є те, що метастабільність не запобігається , ми просто знижуємо ймовірність до прийнятного рівня.
Елліот Олдерсон

1
Отже, каскадні фліпфлопи дають час сигналу розміщуватися між 0 і 1, але це не вирішує неправильне значення? оскільки метастабільний сигнал може падати обома способами?
Wouter A

2
@WouterA Якщо це метастабільно, то обидва значення є правильними.
користувач253751

4
Я не думаю, що це є гарною відповіддю, лише перший флоп в даному випадку відбирає вхідний сигнал. Як вже було сказано вище, що відбувається, є ймовірність того, що метастабільність відбудеться (залежить від посилення внутрішніх циклів зворотного зв'язку флопа, тактової швидкості та швидкості, що відбирається вибірка між пороговими входами) у будь-якому конкретному флопі це (сподіваємось) a невелика кількість <1 = p - два флопи дають нам p ^ 2 шанс MS пройти 2 флопи, 3 p ^ 3 тощо тощо
Taniwha

4

Вони не заважають метастабільності впливати на вихід, але вони можуть значно збільшити середній час між інцидентами, оскільки метастабільність повинна мати відносно велику тривалість.

Каскадні три (або більше) добре розроблених шльопанці можуть збільшити час між інцидентами приблизно на кшталт віку Землі.


Залежить від вашої тактової частоти та технології обробки. Одного обертання може бути достатньо для того, щоб ваш MTBF був нескінченно малим, якщо ви постійно тримаєтесь на високому.
джалаліпоп

@jalalipop Звичайно. В оригінальному документі IEEE є деякі фактичні відомості про тести (дуже датовані зараз). DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany

@jalalipop: загалом це проблема, яка є більш актуальною, коли ви не можете гарантувати слабкий час ... так само асинхронний дизайн, наприклад FIFO, який спілкується між ядром процесора та SOC, коли відповідні годинники не блоковані фазово. Інакше ви просто встановите важкий час налаштування, і гарантія метастабільності не відбудеться.
jbord39

Так, метастабільність викликає занепокоєння в асинхронному інтерфейсі. Слабкість, на яку я звертаюсь, - це слабкість синхронної логіки після фліп-флопу. Якщо ваша слабкість велика, подія метастабільності згасне, перш ніж вона вплине на решту вашого дизайну.
джалаліпоп

2

Тому що перший триггер, навіть якщо він метастабільний, повинен мати весь період годин для стабілізації. До моменту, коли другий триггер відбирає перший триггер, його вихід може бути вже стабільним.


1

Якщо ви хочете хвилювати метастабільність, реалізуйте ДВІ ДУЖЕ СЛІДНІ ІНВЕРТЕРИ, з'єднайте їх спиною до спини та змініть їх (у симуляції) на VDD / 2. Потім вийміть зміщення та спостерігайте за швидкістю вирішення рівня логіки1 та логіки0. Можливо, вам доведеться вибрати початкову напругу зсуву, відмінну від VDD / 2.

Якщо ваші 2 або 3 відкидні вітрини низькі, порівняно з періодом годин, життя може бути заповнене проблемами.


1

Метастабільність просто означає, що якщо у вас є передача даних протягом певного часового вікна з посиланням на годинник, вихід буде поводитися погано протягом певного періоду після краю годинника. Однак вікно не є фіксованим інтервалом. Швидше за все, ймовірність поганого значення (коливання або проміжний рівень напруги) з часом зменшується експоненціально. Отже, якщо ви відібрали сигнал за допомогою годинника, а потім трохи зачекаєте, перш ніж застосувати годинник до другого тригера, ви можете зменшити шанси на поганий біт до будь-якої бажаної (але не нульової) ймовірності. Якщо потрібний час занадто довгий, ви можете використовувати 3 або більше тригерів послідовно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.