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