Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Метастабильность Altera
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ElectroKarp
В документе Альтеры понимание метастабильность
Альтера понимание метастабильности
на странице 4 есть пример схемы которой можно оценить MTBF. Собрал я эту схему (длина цепи синхронизации 1), описал констрейны для тайминг анализера, описал в ассигнментс эдиторе, короч все как надо, в итоге получил MTBF равное 2 050 лет для clka= 5 ns (200 МГц) clkb=8.333 ns (120 МГц) на Циклоне 3.
Проведя симуляцию в моделсиме неопределенное состояние выскакиволо каждые 4166 us

Вопрос такой: 4166 мкс << 2 050 лет. Кто либо проводил такой же экспиремент, может поделится опытом и результами.

ElectroKarp
Еще такой вопрос, может кто грамотно описать механизм работы цепи синхронизации. Я его понимаю так.

Допустим регистр scr работает по clka регистр sync (регистр цепи синхронизации для простоты 1) работает по clkb далее к sync подключен регистр dest который принимает данные из клокового домена clka.
Допустим не выполнились временные ограничение по Thold (просто для определенности) получается регистр sync воше в местабильное состояние, но данные в регистр dest поступят только на следующем тактовом импульсе, таким образом у регистра sync есть время = такт - Tsetup для того чтобы выйти из этого стостояния.
В случаи 2 регистров в цепи синхронизации (sync1 и sync2) допустим что sync1 не успел выйти из неопределенного состояния за так и он передал свое состояние регистру sync2. У sync2 так же есть так на разрешение неопределенного состояния до передачи данных в регистр dest. Таким образом время на разрешения неопределенного состояния регистров = 2 такта - Tsetup и так далее.

Вопрос в какое состояние попадут регистры синхронизации после разрешения неопределенности (старое или новое)? Похоже что тут зависит многое зависти когда эта неопределенность произошла. Допустим регистр scr переключался из 0 (соотв. напр U=0В) в 1 (соотв. напр U=5В) в тот момент когда на тактовый вход sync пришел фронт тактирующего импульса. Рассмотрим 3 случая для напряжения на выходе регистра scr (1) U=1 В (2) U=2.5В (3) U=4В. В случаи (1) sync скорее всего примет старое значение 0, (3) - новое 1. (2) как карта ляжет 1 либо 0 зависит от шумов и прочей лабуды.

Еще один вопро если у меня массив допустим из 8 регистров scr[7:0] и по 8 регистров sync и dest соответственно, так вот можно ли гарантировать что если регистр sync [1] принял старое значение scr[1] то и все остальные примут старое значение, кроме случая ((2) из предыдущего примера). То есть при разрешении неопределенности массив регистров ведет себя одинаково??? Если принять во внимание предыдущий пример то похоже на то, так ли это?
XVR
Цитата(ElectroKarp @ Jan 8 2012, 20:59) *
Вопрос в какое состояние попадут регистры синхронизации после разрешения неопределенности (старое или новое)?
В неопределенное rolleyes.gif Т.е. может быть как старое, так и новое
Цитата
Еще один вопро если у меня массив допустим из 8 регистров scr[7:0] и по 8 регистров sync и dest соответственно, так вот можно ли гарантировать что если регистр sync [1] принял старое значение scr[1] то и все остальные примут старое значение,
Нет
ElectroKarp
тогда смысл цепи синхронизации, без не было бы тоже самое, разве нет?
des00
Цитата(ElectroKarp @ Jan 8 2012, 11:36) *
тогда смысл цепи синхронизации, без не было бы тоже самое, разве нет?

Поиском по форуму, тема многократно и со всех сторон обсуждалась. Один из участников конференции даже изобрел теорему о метастабильности "теорема Oldring-а".
Maverick
Цитата(des00 @ Jan 8 2012, 19:46) *
Поиском по форуму, тема многократно и со всех сторон обсуждалась. Один из участников конференции даже изобрел теорему о метастабильности "теорема Oldring-а".

стало интересно...(ранее пропустил и не читал...)
Мур
Мне нравится аналогия с перевернутым маятником, когда его переброс в противоположное состояние не имеет нужной энергии и он зависает в верхней неустойчивой точке. Куда его качнет?...
dvladim
Цитата(ElectroKarp @ Jan 8 2012, 19:40) *
Проведя симуляцию в моделсиме неопределенное состояние выскакиволо каждые 4166 us

Чтобы такого не было нужно для первого триггера синхронизатора поставить в 0 значеня setup и hold. Например поправить sdf.

Цитата(ElectroKarp @ Jan 8 2012, 21:36) *
тогда смысл цепи синхронизации, без не было бы тоже самое, разве нет?

А смысл такой: синхронизация делается для флагов. Флаг поднимается вместе с данными, а уже когда флаг передан на другой клок данные гарантированно не меняются и захватываются корректно. Потом таким же флагом обратно передается подтверждение получения. Там на самом деле несколько разных вариантов. Тема широко обсуждаемая, лично мне нравится этот и этот документы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.