Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Spartan-3: Расхождения в максимальных частотах
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
olegras
После танцев с бубном вокруг констрейнов и оптимизаций, PAR выдает: "Min delay = 5.8 ns, max freq. = 172.4 MHz". Но запустить проект на реальном устройстве (S3BOARD от DIGILENT) удается только на частотах системного клока до 137,5 МГц включительно. На частотах выше проект работает нестабильно, т.е. при одних и тех же входных данных, каждый раз результат непредсказуемо разный.
Собственно вопрос: неужели расчетная максимальная частота, расчитанная PAR, так сильно должна отличаться от реальной? Где подвох?
На камень заведен внешний тактовый сигнал 50 МГц, который подключен ко входу DCM. Системные клоки снимаются с выходов DCM CLKFX и CLKFX180, и далее через BUFG в систему. Обратная связь между CLK0 и CLKFB имеется.
Boris_TS
Цитата(olegras @ Apr 26 2009, 14:40) *
На частотах выше проект работает нестабильно, т.е. при одних и тех же входных данных, каждый раз результат непредсказуемо разный.

С наскоку я могу только спросить:
1. А проверяли ли Вы, выполняются ли ограничения на входные сигналы (setup и hold) в живом стенде ?
2. Был ли использован constraint temperature для снижения предельной рабочей температуры ?
SFx
olegras, Вы каждый раз перекомпилировали проект поднимая частоту или подавали внешний тактовый сигнал на DCM различной частоты ?
olegras
Цитата(SFx @ Apr 26 2009, 23:51) *
olegras, Вы каждый раз перекомпилировали проект поднимая частоту или подавали внешний тактовый сигнал на DCM различной частоты ?


Каждый раз перекомпилировал. Кажый раз PAR выдает одинаковые ограничения (конечно если меняю только атрибуты DCM не трогая код, констрейны и параметры оптимизации). Внешний сигнал всегда 50 МГц с борта S3BOARD.

Цитата
А проверяли ли Вы, выполняются ли ограничения на входные сигналы (setup и hold) в живом стенде ?

Входные данные загружаются и выгружаются четко при любом значении системной частоты. Так как не зависят от системных клоков. Загрузка тактируется внешним медленным клоком от управляющего МК. Проверял даже при сист. частоте 280 МГц.

Цитата
Был ли использован constraint temperature для снижения предельной рабочей температуры ?


Нет не был. А что это мне даст (в смысле моего вопроса)?.
DmitryR
Так-так, у вас используется CLKFX и CLKFX180.
1. На этих выводах джиттер может быть несколько (пикосекунд на 500) больше, чем думает PAR.\
2. У вас наверное есть хитрый переход между CLKFX и CLKFX180, которого PAR почему-то не видит при анализе, но который эффективно уполовинивает реальную тактовую частоту.
olegras
Цитата(DmitryR @ Apr 27 2009, 09:54) *
Так-так, у вас используется CLKFX и CLKFX180.
1. На этих выводах джиттер может быть несколько (пикосекунд на 500) больше, чем думает PAR.\
2. У вас наверное есть хитрый переход между CLKFX и CLKFX180, которого PAR почему-то не видит при анализе, но который эффективно уполовинивает реальную тактовую частоту.


Переходов нету: каждый из сигналов подключен к "своему" BUFG, выходы которых используются независимо. А насчет джиттеров - судя по всему так оно и есть...
DmitryR
Если они используются абсолютно независимо, то смысла в использовании CLKFX180 нет никакого - можно все тактировать от CLKFX. Что же касается "наверное" - то джиттер CLKFX умеет считать CoreGen, и еще специальные отдельные утилитки для этого были.
olegras
Цитата(DmitryR @ Apr 27 2009, 11:57) *
Если они используются абсолютно независимо, то смысла в использовании CLKFX180 нет никакого - можно все тактировать от CLKFX. Что же касается "наверное" - то джиттер CLKFX умеет считать CoreGen, и еще специальные отдельные утилитки для этого были.


Ну конечно же "независимо" я имел ввиду совсем другое. Есть конечный автомат. Переключение между состояниями - CLKFX. Есть несколько BRAM, значения из которых должны считываться между переключениями состояний автомата, чтобы следующее состояние могло использовать знеачение из BRAM, адрес которого сформирован в предыдущем состоянии автомата (во загнул - сам бы не понял smile.gif). Для этого и используется CLKFX180, который подключен только к CLK BRAM. Тактировать одним сигналом не получается по определению.
CLKFX: сформировать адрес БРАМ
CLKFX180: считать значения
CLKFX: чтото сделать со считанным значением + сформировать следующий адрес БРАМ и т.д.
Все процессы оттестированы сначала в симуляции, а затем и на реальной плате. Но на реальной плате выше 137,5 МГц - ... В принципе меня устраивает и эта скорость. Но с разностью частот между PAR и устройством - хотелось бы разобраться.
Была бы разница в пару (ну в пяток) МГц - я бы вопрос не поднимал. Вот я и хотел бы услышать мнения гуру: может это нормальная ситуация?? Или же кто сталкивался а потом устранил?

Цитата(DmitryR @ Apr 27 2009, 11:57) *
и еще специальные отдельные утилитки для этого были.


А что за утилитки?

Цитата(DmitryR @ Apr 27 2009, 11:57) *
Что же касается "наверное" - то джиттер CLKFX умеет считать CoreGen


CoreGen выдает: "Period Jitter (unit interval) - 0.11 ns", "Period Jitter (pk-to-pk ns) - 0.78 ns" для режима DCM 50 в 137.5 МГц. Для частот выше - второй джиттер еще меньше. Ну пусть общий джиттер = 1 нс.
150 МГц должен работать по любому...
DmitryR
Цитата(olegras @ Apr 27 2009, 12:58) *
CLKFX: сформировать адрес БРАМ
CLKFX180: считать значения
CLKFX: чтото сделать со считанным значением + сформировать следующий адрес БРАМ и т.д.

Ну вот у вас тут и есть пол-периода. Правда, PAR такие корки должен понимать, но очевидно не понимает: вам разрешают период 5.8, то есть в память и из памяти пути типа менее 3 ns. Не верю, © Станиславский. А попробуйте вместо CLKFX180 использовать инвертированный CLKFX (память поглотит инвертор и будет работать по падающему фронту) и посмотрите что станет с таймингами.
Boris_TS
Цитата(olegras @ Apr 27 2009, 07:51) *
Входные данные загружаются и выгружаются четко при любом значении системной частоты. Так как не зависят от системных клоков. Загрузка тактируется внешним медленным клоком от управляющего МК. Проверял даже при сист. частоте 280 МГц.

Если есть независимая от системной частота, то, соответственно, могут быть проблемы с метастабильностью при смене clock'ового домена.

Цитата(olegras @ Apr 27 2009, 07:51) *
Нет не был. А что это мне даст (в смысле моего вопроса)?

Теоретически Вы могли задать внутрикристальную температуру ниже реальной, тогда PAR заведомо неправильно оценивал бы задержки. То же касается и constraint'ов на питание. Кстати, а Вы проверяли: с питанием всё в порядке ? Остаются ли в допустимых пределах пульсации (по всем веткам питания) с ростом частоты ?

Кстати, а зачем Вам CLKFX180, если у Вас есть CLKFX ? - инверторы по CLK есть практически во всех элементах ПЛИС (IOB, Slice, BRAM,..). А DCM в Spartan-3x мне не понравился - на мой взгляд jitter просто огромен, стараюсь, по возможности обходиться без DCM работать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.