|
Reset для Xilinx DCM и флаг LOCKED |
|
|
|
May 23 2006, 05:46
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Раньше использовал DCM и не особо не задумывался, что LOCKED может пропасть и т.п. Но на всякий случай использовал его для выработки сигнала сброса той части схемы, которая тактировалась с выхода DCM.
Но вот настал момент, когда в случае пропадания LOCKED сброс недопустим. Т.е. схема может остановиться, но сброса быть не должно, т.к. это приведет невосполнимой потере данных, загруженных ранее микроконтроллером в регистры ПЛИС (и которых у микроконтроллера больше нет).
Мне в голову пришла идея, что можно реализовать схему сброса DCM, которая будет тактироваться от внешнего тактового сигнала и будет производить сброс DCM в самом начале (после конфигурации) и при пропадании сигнала LOCKED. При этом для того, чтобы избежать неизвестного состояния выходных тактовых сигналов DCM можно с помощью LOCKED управлять буферами BUFGMUX (например BUFGCE). Это теоретически должно позволить остановить на требуемое время ту часть схемы, которая тактируется от DCM.
Но при этом возникает один маленький вопрос - для DCM нужен сигнал обратной связи. Брать его с выхода BUFGCE нельзя, т.к. этот сигнал нужен еще до того, как будет LOCKED, но в то же время нужно его брать с выхода BUFGCE, т.е. именно для этого сигнала нужно устранить clock skew.
В общем я в сомнениях... Может кто сталкивался с подобной проблемой? Какие варианты?
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
 |
Ответов
|
May 23 2006, 06:39
|

Местный
  
Группа: Свой
Сообщений: 449
Регистрация: 28-10-04
Из: Украина
Пользователь №: 1 002

|
Цитата(makc @ May 23 2006, 09:46)  Раньше использовал DCM и не особо не задумывался, что LOCKED может пропасть и т.п. Но на всякий случай использовал его для выработки сигнала сброса той части схемы, которая тактировалась с выхода DCM.
Но вот настал момент, когда в случае пропадания LOCKED сброс недопустим. Т.е. схема может остановиться, но сброса быть не должно, т.к. это приведет невосполнимой потере данных, загруженных ранее микроконтроллером в регистры ПЛИС (и которых у микроконтроллера больше нет).
Мне в голову пришла идея, что можно реализовать схему сброса DCM, которая будет тактироваться от внешнего тактового сигнала и будет производить сброс DCM в самом начале (после конфигурации) и при пропадании сигнала LOCKED. При этом для того, чтобы избежать неизвестного состояния выходных тактовых сигналов DCM можно с помощью LOCKED управлять буферами BUFGMUX (например BUFGCE). Это теоретически должно позволить остановить на требуемое время ту часть схемы, которая тактируется от DCM.
Но при этом возникает один маленький вопрос - для DCM нужен сигнал обратной связи. Брать его с выхода BUFGCE нельзя, т.к. этот сигнал нужен еще до того, как будет LOCKED, но в то же время нужно его брать с выхода BUFGCE, т.е. именно для этого сигнала нужно устранить clock skew.
В общем я в сомнениях... Может кто сталкивался с подобной проблемой? Какие варианты? Вообще говоря, потеря LOCKED - это аварийная ситуация. При этом на выходе есть клок с непредсказуемыми параметрами (как правило, наезжает фаза, что меняет скважность от нуля до максимума). При этом говорить о каких-то определенных состояниях ваших драгоценных регистров не приходится - туда МОГ записаться мусор. Хорошо, вы занулили выходной клок, обнаружив не-LOCKED. Как вы гарантируете, что в момент выключения не нарушился какой-либо setup-hold и это не были именно ТЕ регистры? Идея хороша, но есть опасность получить редко возникающие, а от того очень труднообнаруживаемые глюки. Я бы предложил ТЕ регистры сделать без ресета. А саму схему управления ими - как обычно, с ресетом от DCM. Так мы гарантируем сохранение регистров при состоянии Ресет, а наличие ресета для всей схемы от DCM гарантирует отсутствие неопределенного ее поведения в случае потери LOCKED.
--------------------
Умею молчать на 37 языках...
|
|
|
|
|
May 23 2006, 14:35
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(Gorby @ May 23 2006, 10:39)  Вообще говоря, потеря LOCKED - это аварийная ситуация. При этом на выходе есть клок с непредсказуемыми параметрами (как правило, наезжает фаза, что меняет скважность от нуля до максимума). При этом говорить о каких-то определенных состояниях ваших драгоценных регистров не приходится - туда МОГ записаться мусор. Согласен, аварийная. И именно по этому хочется разрабатывать устройство, которое бы могло восстановиться после подобной аварии или пережить ее с минимальными потерями. В регистры действительно МОГ записаться мусор, но вероятность этого не так уж просто посчитать. И если она не равна 1, то есть не нулевая вероятность успешного выхода из аварийной ситуации. Цитата Хорошо, вы занулили выходной клок, обнаружив не-LOCKED. Как вы гарантируете, что в момент выключения не нарушился какой-либо setup-hold и это не были именно ТЕ регистры? Опять же согласен, есть и такая проблема. Но у меня есть маленькая надежда, что LOCKED пропадет раньше, чем нарушатся параметры выходного клока, т.к. его удастся успешно отключить на некоторое время. Цитата Идея хороша, но есть опасность получить редко возникающие, а от того очень труднообнаруживаемые глюки. Пока что задача прямо противоположная - защититься от редко возникающих и труднообнаруживаемых глюков по причине пропадания LOCKED.  Цитата Я бы предложил ТЕ регистры сделать без ресета. А саму схему управления ими - как обычно, с ресетом от DCM. Так мы гарантируем сохранение регистров при состоянии Ресет, а наличие ресета для всей схемы от DCM гарантирует отсутствие неопределенного ее поведения в случае потери LOCKED. Я это все понимаю, но подобные решения сложны в применении и не всегда допустим ресет для схемы управления, который может придти в процессе работы. Остановить можно, сбрасывать - крайне не желательно. В общем пока получается, что нужно уповать на надежность работы DCM и крайне малую вероятность возникновения проблем.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
|
May 23 2006, 14:57
|
Частый гость
 
Группа: Свой
Сообщений: 122
Регистрация: 21-02-05
Из: Питер
Пользователь №: 2 811

|
Задача была немного другая, но суть не меняется: почему бы вам не взять 2 BUFGMUXа на один выход DCMа? Один - feedback, второй рабочий.
--------------------
Dies diem docet.
|
|
|
|
|
May 23 2006, 15:52
|

Гуру
     
Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904

|
Цитата(Victor @ May 23 2006, 18:57)  Задача была немного другая, но суть не меняется: почему бы вам не взять 2 BUFGMUXа на один выход DCMа? Один - feedback, второй рабочий. Да я собственно пока так и сделал. Единственно что меня смущает, так это различие в характеристиках глобальных цепей, идущих от разных BUFG. Хотя, думаю, это различие не так страшно и сказываться на работе не должно.
--------------------
BR, Makc В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|