реклама на сайте
подробности

 
 
> Тайминговые констрейны - как правильно их назначать
AlphaMil
сообщение Nov 6 2010, 13:22
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 135
Регистрация: 1-01-10
Из: Минск, Беларусь
Пользователь №: 54 588



Уважаемые Гуру, подскажите где посмотреть/почитать про определение и назначение тайминговых констрейнов. САПР Xilinx ISE 12.2, хотя это к делу отношения наверное не имеет.
Для конкретности - как правильно ограничивать MAXDELAY и MAXSKEW для шин.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shtirlits
сообщение Nov 7 2010, 17:01
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 845
Регистрация: 18-10-04
Из: Pereslavl-Zalessky, Russian Federation
Пользователь №: 905



Поделюсь одной мыслью, которую нахожу жутко умной smile.gif
Пересечение границы независимых клоковых доменов всегда рискованное мероприятние. Вероятность неприятных последствий можно лишь снизить до допустимого уровня, но нельзя устранить совсем. Защита от метастабильных состояний всегда требует времени на прохождение последовательных регистров - часто вижу синхронизаторы на 2-3 такта, но для надежности можно и больше!

А что если по опасному пути передавать не всю широкую шину с полезными данными, а только информацию о соотношении клоков? Именно так делают в асинхронных FIFO. Полезные данные безопасно читаются из памяти по адресам, которые достаточно давно не менялись и не меняются, а информация о "клоке", то есть, о фактах записи и чтения, передается в коде Грея и защитные регистры - это указатель с противоположного конца.
Путь простого человека, не обремененного заботой о низкой задержке данных- применить готовое dual clock FIFO.

Сложный путь - развить идею FIFO на сам клок.
При сохранении вероятности сбоя такой вариант даст выигрыш тех самых 2-3 тактов и позволит снижать вероятность сбоя не повышая задержку данных.
Это возможно, если поведение клоков можно предсказать на время прохождения информации через синхронизирующие регистры. Еще одно условие - плохие данные можно догнать и придушить, если клок "дрыгнется" когда нельзя.
Например, клоки периодические и данные сначала как-то обрабатываются пока идет синхронизация информации о фазе в момент захвата, а на "исполнительные механизмы" поступают когда уже известно, что нарушения времянок не было.
Как это выглядит? Это может быть блок, который выдает разрешение для захвата сигналов с шины на данном такте или даже два разрешения - DDR. Наличие активного уровня на выходе означает, что на данном такте чтение безопасно.
В качестве исходных данных этот блок получает некий сигнал с той стороны клокового домена, например, инвертируемый противоположным клоком регистр. Наблюдаемый с этой стороны стробоскопический эффект позволяет синхронизировать и подстраивать счетчики для предсказания фазы, учитывая задержку вызванную синхронизирующей (глосующей) схемой.
Можно и в другую сторону - записывать данные только когда это безопасно с точки зрения читающей стороны.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01399 секунд с 7
ELECTRONIX ©2004-2016