Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменение работоспособности с добавлением виртуального логического анализатора
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Putnik
Замечено изменение работоспособности проекта при добавлении виртуального логического анализатора (Identify, ChipScope)
C чем может быть связано, и куда смотреть (код, констрейны, ...)?
Интересны даже общие соображения, или может кто-то с таким тоже сталкивался..
Boris_TS
Цитата(Putnik @ Jun 28 2010, 19:47) *
Замечено изменение работоспособности проекта при добавлении виртуального логического анализатора (Identify, ChipScope)
C чем может быть связано, и куда смотреть (код, констрейны, ...)?
Интересны даже общие соображения, или может кто-то с таким тоже сталкивался..

Да, есть такое дело.
1. Обычно плывут не за'constraint'ненные или неправильно за'constraint'ненные цепи. Более вероятны потаённые глюки в местах перехода данных с одного clock domain в другой.
2. Частенько, при добавление логических проб, они устанавливаются не только на выходы триггеров, но и на цепи, сформированные логикой - а это может изменить разбивку логики на LUT'ы в результате чего вылезают ранее не выявленные проблемы, описанные в предыдущем пункте.
3. Так бывает, что некоторая не очень новая версия ISE не правильно рассчитывает задержки для Hardware IP, например ISE 9.2 (без SP) неправильно проводила временной анализ Virtex-5 PCI-E Endpoint'а.
disel
Также если чипскоп прицеплен к выходным пинам, то они не могут быть расположены в триггерах которые там живут. Это может влиять на задержки выходных данных.
Boris_TS
Цитата(disel @ Jun 28 2010, 22:31) *
Также если чипскоп прицеплен к выходным пинам, то они не могут быть расположены в триггерах которые там живут. Это может влиять на задержки выходных данных.

Ага, а чтобы такого не было, надо использовать constraint IOB, принуждающий среду укладывать нужные триггеры в IOB. Ну и еще необходимо использовать constraint'ы OFFSET IN/OUT, которые задают те самые временные ограничения. Т.е. если наблюдается описанный негативный эффект, то:
Цитата(Boris_TS @ Jun 28 2010, 20:23) *
1. Обычно плывут не за'constraint'ненные или неправильно за'constraint'ненные цепи.
disel
Цитата(Boris_TS @ Jun 30 2010, 19:06) *
Ага, а чтобы такого не было, надо использовать constraint IOB, принуждающий среду укладывать нужные триггеры в IOB. Ну и еще необходимо использовать constraint'ы OFFSET IN/OUT, которые задают те самые временные ограничения. Т.е. если наблюдается описанный негативный эффект, то:


IOB используются, но если подключен чипскоп, то маппер кладет на этот констрейн и пишет соотвествующий варнинг, который не всегда можно заметить. Задавать же OFFSET OUT не всегда бывает нужно. Например у меня ЦАП АД9776А сам умеет подстраиваться, и никакой OFFSET OUT ему задавать не нужно, достаточно знать что IOB выполнен.
Boris_TS
Цитата(disel @ Jun 30 2010, 20:18) *
IOB используются, но если подключен чипскоп, то маппер кладет на этот констрейн и пишет соответствующий варнинг, который не всегда можно заметить.

Ну так, map же ДАЖЕ напишет Warning - а смотрите ли Вы на них,.. или не смотрите - это уже персонально Ваши проблемы. Важно, что Warning принципиально появится.

Цитата(disel @ Jun 30 2010, 20:18) *
Задавать же OFFSET OUT не всегда бывает нужно. Например, у меня ЦАП АД9776А сам умеет подстраиваться, и никакой OFFSET OUT ему задавать не нужно, достаточно знать что IOB выполнен.

Да, если Вы любите острые ощущения, то, пожалуй, OFFSET OUT - лишний constraint. Я же обычно добавляю OFFSET OUT на критичные ножки при любом раскладе: для цепей, где это не важно - развожу проект с пустым OFFSET OUT, смотрю получившиеся значения и вношу их в OFFSET OUT; и если что-то в проекте уносит - я это вижу. Но, опять-таки, некоторые любят острые ощущения... я же отношусь к перестрахуям - область применения обязывает.
disel
Цитата(Boris_TS @ Jul 1 2010, 22:53) *
Ну так, map же ДАЖЕ напишет Warning - а смотрите ли Вы на них,.. или не смотрите - это уже персонально Ваши проблемы. Важно, что Warning принципиально появится.

ISE этих варнингов сотнями выдает, в том числе на собственные ядра. Если каждый раз анализировать все, то можно только этим и заниматься.

Цитата(Boris_TS @ Jul 1 2010, 22:53) *
Да, если Вы любите острые ощущения, то, пожалуй, OFFSET OUT - лишний constraint. Я же обычно добавляю OFFSET OUT на критичные ножки при любом раскладе: для цепей, где это не важно - развожу проект с пустым OFFSET OUT, смотрю получившиеся значения и вношу их в OFFSET OUT; и если что-то в проекте уносит - я это вижу. Но, опять-таки, некоторые любят острые ощущения... я же отношусь к перестрахуям - область применения обязывает.

Любите вы себе лишнюю работу себе добавитьsmile.gif
Про острые ощущения... Мне кажется вы не прочитали мое сообщение про то что ЦАП сам умеет подстраивать окно приема данных под эти данные. Надо его только попросить об этом. Главное чтобы разброс в шине был минимальный, что гарантируется укладыванием тригеров в IOB. Это гораздо более надежное и простое решение чем установка OFFSET OUT. Потому что оно не зависит от того куда чего уведет в проекте, как измениться фазовый сдвиг частот между ЦАПом и плисом, ни от температуры (циклы самоконтроля проходят периодически), ни от длины проводников в плате (ну при условии что шина выровнена). При этот отпадает необходимость применения DLL, PLL и прочих плисовых синтезаторов, без которых выполнение OFFSET OUT на высоких частотах не возможно. Соответственно меньше потребление, нет необходимости следить за локом синтезатора и формировать ему ресет.
C OFFSET IN та же история. Современные АЦП и клочныме дистртибьютеры позволяют обойтись без задания OFFSET IN.
Понятно, что есть случаи, когда эти констрейны обязательны.
Про OFFSET OUT на некритичных ногах вообще не понял. Зачем и куда? На статичные сигналы? Возможно просто у вас очень много свободного времени.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.