Я понимаю, что такое метастабильность, но не понимаю, как связывание вместе шлепанцев уменьшает это?
Если выходные данные первого триггера метастабильны, они используются в качестве входных данных для второго. Но я не вижу, как 2-й триггер сможет что-то сделать с этим входом и сделать его стабильным.
Заранее спасибо!
digital-logic
flipflop
metastability
Воутер А
источник
источник
Ответы:
Метастабильность нельзя «вылечить», но если вы будете ждать достаточно долго , вероятность ее возникновения может быть сколь угодно малой. Когда вы дойдете до одного раза в эпоху вселенной, это вряд ли доставит вам неприятности.
Это как уравновешивание карандаша. Вероятно, он упадет, и чем дольше вы будете ждать, тем меньше вероятность, что он останется стоять.
Есть две проблемы с долгим ожиданием, и одна из них является фундаментальной.
Основная проблема заключается в том, что если у вас есть один элемент памяти (защелка или триггер, они оба страдают от метастабильности) в синхронизированной системе, получающей выходные данные от асинхронной внешней системы, то вы физически не можете определить нижний предел времени ожидания иногда внешний сигнал совершает переход вблизи грани фиксации. Вы должны передать сигнал на другой триггер, чтобы он дождался там. Это дает вам гарантированное минимальное время ожидания одного такта.
Вторая проблема заключается в том, что часто вы пытаетесь запустить систему настолько быстро, насколько это возможно, и системная тактовая частота не может быть уменьшена, чтобы дать достаточно времени во втором триггере. Единственный способ увеличить задержку сигнала до необходимого без снижения пропускной способности - это направить ожидание на большее количество этапов.
У некоторых людей возникают проблемы с визуализацией того, что происходит между шлепанцами. Есть два способа вызвать метастабильность, и оба они связаны с нарушением правил триггера. Одним из способов является нарушение настройки ввода и времени удержания, чтобы выполнить переход, когда триггер ожидает, что вход будет стабильным. Другой - нарушать логические уровни входа, чтобы входной сигнал триггера находился на промежуточном уровне напряжения. Триггер, который является метастабильным, может вызвать любой тип нарушения на его выходе, чтобы каскадно перейти к следующему триггеру.
источник
Это уменьшает вероятность того, что метастабильность влияет на схему, предоставляя больше времени для фактического использования сигнала. С двумя триггерами это дает полный дополнительный тактовый цикл для установления сигнала. С тремя, это позволяет два дополнительных тактовых цикла.
источник
Они не препятствуют влиянию метастабильности на выход, но они могут значительно увеличить среднее время между инцидентами, поскольку метастабильность должна быть относительно продолжительной.
Каскадирование трех (или более) хорошо спроектированных шлепанцев может увеличить время между инцидентами примерно до возраста Земли.
источник
Потому что первый триггер, даже если он метастабильный, будет иметь весь период времени для стабилизации. К тому времени, когда второй триггер сэмплирует первый триггер, его выход может быть уже стабильным.
источник
Если вы хотите возбуждения метастабильности, внедрите ДВА ОЧЕНЬ МЕДЛЕННЫХ ИНВЕРТОРА, подключите их вплотную и сместите их (в симуляции) в VDD / 2. Затем уберите смещение и наблюдайте скорость разрешения до уровней logic1 и logic0. Вам может потребоваться выбрать начальное напряжение смещения, отличное от VDD / 2.
Если ваши 2 или 3 триггера медленные по сравнению с периодом времени, жизнь может быть полна проблем.
источник
Метастабильность просто означает, что, если у вас есть передача данных в пределах определенного временного окна, на которое ссылаются часы, выходные данные будут плохо работать в течение определенного периода после фронта часов. Тем не менее, окно не является фиксированным интервалом. Скорее, вероятность плохого значения (колебания или промежуточного уровня напряжения) экспоненциально уменьшается со временем. Таким образом, если вы сэмплируете сигнал с часами, а затем немного подождете, прежде чем применить часы ко второму триггеру, вы можете уменьшить вероятность плохого бита до любой желаемой (но ненулевой) вероятности. Если требуемое время слишком велико, вы можете использовать 3 или более триггеров подряд.
источник