|
|
  |
Как достоверно проверить тайминги? |
|
|
|
Jun 13 2008, 13:36
|

Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069

|
Цитата(Epikur @ Jun 13 2008, 16:19)  Наверняка такие вопросы возникали у многих, но сходу ничего найти не удалось. Так что звиняйте, если боян. Есть кристалл (Spartan 3), на котором работает тактируемый модуль с математикой. Необходимо подобрать максимальную стабильную тактовую частоту и тайминги для этого модуля. С учётом возможных температурных отклонений, отклонений в серии и.т.д. Знает ли кто-нибудь, как это правильно делать? Может быть, где-то статьи толковые на эту тему есть? А чем post place & route simulation не устраивает?
|
|
|
|
|
Jun 13 2008, 13:56
|

Местный
  
Группа: Свой
Сообщений: 435
Регистрация: 8-03-06
Из: степей Украины
Пользователь №: 15 069

|
Цитата(Epikur @ Jun 13 2008, 16:47)  Предельную частоту модуля выдаёт ещё синтезатор (93 Мгц). Но реально на такой частоте модуль почему-то работать не хочет. Синтезатору как раз верить нельзя. Это число "для справки", поскольку не учитывает задержек на распространение сигнала при его размещении в кристалле. Более правильный подход: описать констрейны и смотреть в Place & Route report выполнились они или не выполнились. А после этого провести post place & route simulation. IMHO ничего более гарантированного, чем post place & route simulation (до проверки в железе) придумать нельзя. А насколько качественный testbench написал разработчик - это уже другой вопрос
|
|
|
|
|
Jun 13 2008, 14:44
|
Знающий
   
Группа: Свой
Сообщений: 859
Регистрация: 7-04-05
Из: Санкт-Петербург
Пользователь №: 3 943

|
Вообще-то говоря, синтезаторы и place-and-route tool действуют наоборот - они смотрят, какую частоту задал разработчик, и пытаются ее обеспечить. Если задать очень низкую частоту - автоматом может получится рабочая существенно выше, но она не будет максимальной. Вот когда вы попросите скажем 100 Мгц, а вам после размещения отрапортуют о 90 - тогда можно считать, что это максимальная частота, и надо переписывать дизайн для достижения 100 Мгц - смотреть critical path и т.д. А для гарантии, если надо в железе 100 Мгц, задайте с запасом, например 105 или 110.
--------------------
"Человек - это существо, которое охотнее всего рассуждает о том, в чем меньше всего разбирается." (с) С.Лем
|
|
|
|
|
Jun 16 2008, 08:35
|
Участник

Группа: Свой
Сообщений: 36
Регистрация: 21-11-05
Из: Минск
Пользователь №: 11 166

|
Цитата(Gate @ Jun 13 2008, 17:44)  Вот когда вы попросите скажем 100 Мгц, а вам после размещения отрапортуют о 90 - тогда можно считать, что это максимальная частота, и надо переписывать дизайн для достижения 100 Мгц - смотреть critical path и т.д. Не всегда задав заведомо большую частоту можно получить в отчете максимальную частоту для проекта. У xilinx есть скрипт XPLORER, который позволяет в авто-режиме разложить проект несколько раз с различными параметрами и в результате получить наиболее оптимальное их сочетание для проекта. Ну и конечно, запас по частоте нужно иметь, например задав для проекта с микроблазом некоторую чатоту (практически максмальную для проекта) я не получил ошибок таймингов, запас времени для данной частоты по отчету составлял не более 10 пик (для одного из путей в ядре проца), но ядро микроблаза не завелось (остальная логика функционировала нормально), чуть снизив частоту проект запустился (частоту для проверки менял DCMом). Теперь я всегда задаю ограничения с не менее 5% запасом.
Сообщение отредактировал denisys - Jun 16 2008, 08:54
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|