Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Схема достаточно универсальна для любых частот... Для любых связанных частот без асинхронщины между ними. Мне toggle тоже больше нравится, но обсуждалась в стакане воды именно схема из Т-Ш, растягивающая и синхронизирующая асинхронные импульсы произвольной длины, то есть без входного клока. Я бы сказал, золотая середина. Ведь на выходе - качественный продукт, понятный каждому. До тех пор, пока указанные вами условия не начинают вступать в противоречие друг с другом, вы, безусловно, правы. Поэтому схематики более понятны для "золотой середины", чем любой HDL. Но, как как хорошо известно из истории развития программирования, по мере усложнения любой системы балланс неизбежно смещается в сторону использования более удобных языков с более продвинутой идеологией и, соответственно, более сложных в изучении. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Для любых связанных частот без асинхронщины между ними. Мне toggle тоже больше нравится, но обсуждалась в стакане воды именно схема из Т-Ш, растягивающая и синхронизирующая асинхронные импульсы произвольной длины, то есть без входного клока. До тех пор, пока указанные вами условия не начинают вступать в противоречие друг с другом, вы, безусловно, правы. Поэтому схематики более понятны для "золотой середины", чем любой HDL. Но, как как хорошо известно из истории развития программирования, по мере усложнения любой системы балланс неизбежно смещается в сторону использования более удобных языков с более продвинутой идеологией и, соответственно, более сложных в изучении. И асинхронных тоже!(его основная функция по статье применяется для переходов между доменами и синхронизациями). На HDL три триггера описываются легко. Я в своих проектах разделяю эту схему на два фрагмента. Один я уже привёл(выходной), а второй, в большинстве своём, прячется в моих автоматах. События у меня- просто смена состоояния на противоположный! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба И асинхронных тоже!(его основная функция по статье применяется для переходов между доменами и синхронизациями). Для асинхронных клоков ваша схема подвержена риску сбоев из-за метастабильности второго триггера. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 (изменено) · Жалоба Для асинхронных клоков ваша схема подвержена риску сбоев из-за метастабильности второго триггера. В наших силах держать эту пару рядом друг с другом , чтобы уйти от проблемы метастабильности. Мне важен факт события, а не момент... Изменено 11 апреля, 2011 пользователем Мур Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба В наших силах держать эту пару рядом друг с другом , чтобы уйти от проблемы метастабильности. Эта метастабильность выходит через логику на выход этой схемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 (изменено) · Жалоба Эта метастабильность выходит через логику на выход этой схемы. Может я чего не понимаю... Можете сформулировать вариант, когда на один входной импульс на выходе не появиться отклик вообще , или их вдруг появится пара? Изменено 11 апреля, 2011 пользователем Мур Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Может я чего не понимаю... Можете сформулировать вариант, когда на один входной импульс на выходе не появиться отклик вообще , или их вдруг появится пара? А вы не видите сами условие, когда на выходе вашей схемы появится метастабильность, которая может привести к неправильной работе логики в последующих схемах, если не хватит времени на её разрешение? А времени там может не хватить, потому что неизвестно сколько логики подключено к вашей схеме, и каковы задержки в самой этой подключенной логике. Да, можно в принципе попытаться обконстрейнить время распространения сигнала с выхода, если очень хочется, с огромной вероятностью не вписаться в тайминги вблизи максимальной частоты кристалла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ethereal 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Может я чего не понимаю... Можете сформулировать вариант, когда на один входной импульс на выходе не появиться отклик вообще , или их вдруг появится пара? Когда на фронте f2 попадется переключение входного триггера, защелкивающего инверсное состояние f1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба А вы не видите сами условие, когда на выходе вашей схемы появится метастабильность, которая может привести к неправильной работе логики в последующих схемах, если не хватит времени на её разрешение? А времени там может не хватить, потому что неизвестно сколько логики подключено к вашей схеме, и каковы задержки в самой этой подключенной логике. Да, можно в принципе попытаться обконстрейнить время распространения сигнала с выхода, если очень хочется, с огромной вероятностью не вписаться в тайминги вблизи максимальной частоты кристалла. Ну почему же? Даже если возникнет неопределённость при соотношении входного уровня на D-входе и фронта CLK, он уверенно поймается следующим фронтом! Триггер в любом случае в сером уровне не останется (иначе бы это не был триггер!). Мне не важен (ещё раз!) момент. Мне важен факт! Он гарантировано появится! И на выходе будет выдан одноклоковый импульс, но привязанный уже к другой опорной частоте. Что и требуется... Я постараюсь расширить варианты проблем.. Помогите! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sazh 8 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба может привести к неправильной работе логики в последующих схемах Если метастабильность - неопределенное состояние на выходе триггера, то ведь конкретно для этой схемы это состояние или будет отработано последующим триггером как переход из например 0 в 1 или нет. Что на выходе будет давать формирование импульса или в одном такте или в последующем, что для флага не так уж и важно. Важно что событие на входе будет отработано однозначно. Нет? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Мур 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Если метастабильность - неопределенное состояние на выходе триггера, то ведь конкретно для этой схемы это состояние или будет отработано последующим триггером как переход из например 0 в 1 или нет. Что на выходе будет давать формирование импульса или в одном такте или в последующем, что для флага не так уж и важно. Важно что событие на входе будет отработано однозначно. Нет? Вот и я о том! Страшно, когда на один входной импульс на выходе не появиться отклик вообще , или их вдруг появится пара! Вот это есть ошибка! Возможно тут такое? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Если метастабильность - неопределенное состояние на выходе триггера, то ведь конкретно для этой схемы это состояние или будет отработано последующим триггером как переход из например 0 в 1 или нет. Что на выходе будет давать формирование импульса или в одном такте или в последующем, что для флага не так уж и важно. Важно что событие на входе будет отработано однозначно. Нет? Это неопределенное состояние попадает через логику прямо на выход, как и в вашей первоначальной схеме. Соответственно, этот импульс на выходе схемы сам оказывается "нелогическим" вначале, и поэтому на него тоже распространяются требование иметь запас по времени для выхода из метастабильности. Если при этом путь прохождения этого импульсу до следующих входов окажется слишком большим, времени для выхода из метастабильности не хватит. Ситуация ничем не отличается от попытки использования в синхронизаторе только одного триггера. Теоретически обконстрейнить можно, но сложнее проконтролировать, и нужен дополнительный запас по времени за счет большего периода клока. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Страшно, когда на один входной импульс на выходе не появиться отклик вообще , или их вдруг появится пара! Вот это есть ошибка! Возможно тут такое? Про эту картинку речь идет? Пусть висит. Если на входе Data будет импульс в 3 такта Clock1, на Output появится 2 импульса длительностью Clock2. И без всякой метастабильности. В метастабильном состоянии триггер может висеть "между небом и землей" сколь угодно долго, в идеальном случае. До следующего такта. А если в следующем такте вход неопределен, то все продолжится. Если вдруг почему-то Clock1 отстанет от Data, доберется до "желтого" триггера чуть позже, триггер влетит в метастабильное состояние. Это я не к тому, что схема плохая или неправильная, а к тому, что идеального в мире ничего нет. Нужно смотреть внимательно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oldring 0 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба В метастабильном состоянии триггер может висеть "между небом и землей" сколь угодно долго, в идеальном случае. ... Если вдруг почему-то Clock1 отстанет от Data, доберется до "желтого" триггера чуть позже, триггер влетит в метастабильное состояние. Нет, в метастабильном состоянии триггер обычно бесконечно долго болтаться не может. Точнее, может, но с нулевой вероятностью. Если, конечно, там метастабильное состояние, а не паразитное стабильное, с образованием стабильного нелогического уровня, что допускают редко. Вероятность оставания в метастабильном состоянии экспоненциально уменьшается со временем. Поэтому смысл работы синхронизатора из двух триггеров - за счет короткого пути сигнала до второго триггера дать достаточное время первому триггеру для того, чтобы вероятность сохранения метастабильного состояния первого триггера к моменту переключения второго оказалась пренебрежимо малой. В вашей схеме 4 триггера, а в обсуждаемой - три. В вашей схеме внутри полноценный голубой синхронизатор, в обсуждаемой его нет. Но предполагается, что Data синхронна по отношению к Clock 1, и поэтому она отстать не может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 апреля, 2011 Опубликовано 11 апреля, 2011 · Жалоба Вероятность оставания в метастабильном состоянии экспоненциально уменьшается со временем... Конечно. Это мы обсуждали год назад :) В вашей схеме 4 триггера, а в обсуждаемой - три. В вашей схеме внутри полноценный голубой синхронизатор, в обсуждаемой его нет. Это рисунок 8, на который ссылается Мур. Думаю, часть темы стоит посвятить этой картинке. Но предполагается, что Data синхронна по отношению к Clock 1, и поэтому она отстать не может. Я сейчас смотрю в TimeQuest (пришло время), и прихожу к выводу, что по ПЛИС такты приходят на триггера совсем не одновременно. P.S. Отстаивая честь Quartus'а, скомпилировал следующий код. always @(posedge clkin, posedge din) if (din) dout[4] <= din; else dout[4] <= 0; Для Циклона-2 получил триггер с ADATA и ALOAD, подключенными к din, тактовым сигналом на clkin, и нулем на входе данных. Спасен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться