Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возможная метастабильность
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Александр77
Доброго времени суток, уважаемые форумчане!
И так по порядку.
Предполагается такая структурная схема (вложение)
Нажмите для просмотра прикрепленного файла
Сверху внешнее устройство (матрица формирующая поток данных с частотой 96 МГц).
Управляется посредством Cyclon III.
С выхода PLL ПЛИС идет тактовая частота (24 или 48 МГц) и далее поступает на вход PLL матрицы, где формируется частота 96Мгц.
Одновременно в PLL ПЛИС формируется частота 192МГц, для тактирования ядра обработки.
Согласно AN42 от Альтеры, при переходе из одного тактовогового домена к другому, рекомендуется "вставлять" буферирующую "тройку" триггеров. Первые два триггера тактировать частотой clk1 (в моем случае 96 МГц), а третий - частотой clk2 (192 МГц).
Вопрос собстенно вот в чем, правильно ли я понял принцип борьбы с метастабильностью и нужна ли в данном случае эта защита, если работа идет на кратной частоте? (за привязку фронтов 96 и 192 МГц ручаться не могу - т.к. формируются разными PLLками)
SM
Цитата(Александр77 @ Jan 9 2013, 23:47) *
(за привязку фронтов 96 и 192 МГц ручаться не могу - т.к. формируются разными PLLками)

Это в данном случае ключевой момент. В таком случае все средства защиты от метастабильности при переходе из домена в домен необходимы, как и объявления двух этих доменов асинхронными.

Непонятен другой момент - почему бы не сделать 192 МГц из 96-ти в другой PLL в ПЛИС (их ведь там не одна?), таким образом гарантировано привязав фронты этих сигналов друг к другу, и заранее убрав потенциальную возможность появления метастабильного состояния на переходе между этими доменами?

ЗЫ
тройка триггеров должна быть такая - два триггера на стороне принимающего домена, и один - передающего. Так что если сигнал переходит из домена 96 в домен 192, то два триггера должны стоять в домене 192. Если же наоборот - сигнал генерируется в домене 192 и уходит в 96, то тогда два триггера нужны в домене 96. И в этом случае следует иметь в виду, что в момент метастабильности возможна задержка изменения сигнала на 1 такт, то есть переходы данных из домена в домен должны делаться через регистры с квитированием - например для передачи данных из домена 1 в домен 2 данное должно быть записано в промежуточный регистр по клоку домена 1, затем информация о том, что в регистре есть данное, через "три триггера" должна пройти в домен 2, и только потом домен 2 может считать данное из регистра, и опять через "три триггера" вернуть в домен 1 сигнал о том, что данное получено, чтобы инициировать передачу следующего данного. Ну, или если такая задержка недопустима, то использовать FIFO на переходе между доменов.
Александр77
Цитата(SM @ Jan 9 2013, 23:28) *
Это в данном случае ключевой момент. В таком случае все средства защиты от метастабильности при переходе из домена в домен необходимы, как и объявления двух этих доменов асинхронными.

Спасибо. Вот как раз это и смущало - наличие двух неприязанных фронтов.
Цитата(SM @ Jan 9 2013, 23:28) *
Непонятен другой момент - почему бы не сделать 192 МГц из 96-ти в другой PLL в ПЛИС (их ведь там не одна?), таким образом гарантировано привязав фронты этих сигналов друг к другу, и заранее убрав потенциальную возможность появления метастабильного состояния на переходе между этими доменами?

Единственным доводом против формирования частоты 96 МГц в ПЛИС является длина линий связи. Сейчас (в пределах отладочной платы) это порядка пары-тройки см плюс еще порядка 5 см на плате с матрицей - итого 7..8 см.
Но попробовать все равно можно и нужно)
Цитата(SM @ Jan 9 2013, 23:28) *
тройка триггеров должна быть такая - два триггера на стороне принимающего домена, и один - передающего.

Благодарю за уточнение.
SM
Цитата(Александр77 @ Jan 10 2013, 07:29) *
Сейчас (в пределах отладочной платы) это порядка пары-тройки см плюс еще порядка 5 см на плате с матрицей - итого 7..8 см.


И как это связано с тем, чтобы применить или не применить PLL? Согласуйте эту линию, поставьте хотя бы резистор последоветального согласования у источника клока, или, вообще, поставьте LVDS-передатчик и введите этот клок в ПЛИС через LVDS-вход. Вариантов решения проблемы длинной линии связи много. Да и 7-8 см для 96 МГц это не длина, так что резистора хватит за глаза.
Александр77
Спасибо, SM
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.