-
YarPv14
-
Автор темы
-
Не в сети
-
Новый участник
-
-
Сообщений: 7
-
Спасибо получено: 0
-
-
|
Здравствуйте!
В статье
Еще о метастабильности
описан синхронизатор, назначение его понятно, но не понятно назначение второго триггера. Если первый триггер установился в метастабильное состояние, то это состояние к следующему фронту клока исчезнет и в последующие защёлки проекта запишется 1 или 0. Так зачем второй триггер?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от YarPv14.
|
-
nckm
-
-
Не в сети
-
Администрация форума
-
-
Сообщений: 112
-
Спасибо получено: 34
-
-
-
-
-
|
Я думаю так. Можно рассмотреть схему без второго триггера:
[input] -> [trigger1] -> [logic] -> [trigger2]
Если trigger1 поймал метастабильное состояние, то оно, как неустойчивое, само пройдет через Tres.
Для trigger2 входной сигнал в момент фиксации должен быть стабильным хотя бы Tsetup time.
Если Tlogic - это время выполнения логической функции и Tres+Tlogic+Tsetup<Tclk, то да, второй триггер можно не ставить.
Tclk - период тактовой частоты.
То есть если уверены, что за период тактовой частоты и возможное неустойчивое состояние первого триггера перейдет в устойчивое и логическая функция выполнится, и Tsetup второго триггера выдержано, то проблем нет и второй триггер можно не ставить. В этом случае второй триггер гарантированно не попадет в метастабильное состояние.
Ситуация усложняется, когда входной сигнал фиксируется в первом триггере и дальше расходится/ветвится на несколько логических функций и далее на несколько других триггеров. Тогда учесть все трудно. Гораздо проще просто поставить два триггера подряд и больше не думать.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.136 секунд