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

 
 
 
Reply to this topicStart new topic
> Сигнал-тап и партишин
_Anatoliy
сообщение Jun 28 2017, 09:22
Сообщение #1


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 421
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Коллеги, от компиляции к компиляции не всегда выполняются констрейны для корки сигнал-тапа даже если в его структуре изменений не было. Т.к. работа ведётся на тактовых частотах близких к максимальным то это как то напрягает. Было бы неплохо для каждого инстанса сделать свой партишин, но в лоб квартус этого не позволяет. Кто нибудь сталкивался с такой проблемой, как решали?
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Jun 28 2017, 10:24
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Ну я встречал крики на констрейны лишь на сам сигнал тап. Тоесть это он у себя внутри не тянет - значит некорректная времянка будет, и только. Поэтому ставлю set_false_path и не парюсь.
Другое дело, если в сигнал тапе сигналы из разных клоковых доменов - это много хуже. Подчищал за менее опытными коллегами и убедился, что не просто влияет, а рушит проект от компиляции к компиляции! При этом set_false_path был на весь сигнал тап и вполне ожидаемо компилятор раскидывал выводимые сигнал кое-как.
При использовании инкрементной компиляции существенно падают частоты и растет размер проекта. Посему не пользуюсь.
Однако компиляции для 10 серии уже весьма длительны. Видимо придется опять ковыряться с этим делом, по другому не скажешь.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
Raven
сообщение Jun 28 2017, 11:04
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Цитата(_Anatoliy @ Jun 28 2017, 12:22) *
Коллеги, от компиляции к компиляции не всегда выполняются констрейны для корки сигнал-тапа даже если в его структуре изменений не было.

P&R алгоритмы используют рандомизацию, завязанную на ряд параметров (включая время старта компиляции), так что и результат в 2-х последовательных placement'ах будет отличаться в каких-то деталях для любого нетривиального дизайна. Ничего удивительного. И некотрые варианты оказываются неудачными (даже если все констрейнты грамотно прописаны, но конструкция уже "на пределе").

Цитата(_Anatoliy @ Jun 28 2017, 12:22) *
Было бы неплохо для каждого инстанса сделать свой партишин, но в лоб квартус этого не позволяет.

В каком смысле "для каждого инстанса"? Инстанса SignalTap? Тогда да, рассыпуха Tap'а в partition не оформляется. Думаю, по идеологическим причинам. SignalTap играет обслуживающую роль, он должен показать, как работает основной дизайн, который можно и должно "заморозить" в процессе отладки, а сам механизм отладки (SignalTap) пытается расположиться на оставшихся ресурсах, как получится.

Цитата(_Anatoliy @ Jun 28 2017, 12:22) *
Кто нибудь сталкивался с такой проблемой, как решали?

Конечно, сталкивались. Способ решения - такой же, как и всегда: докапываться до сути проблемы, изучая критические пути и другие репорты Timing Analysis, и пытаться что-то изменить в системе SignalTap - Device_Under_Test, производя компиляции. И вот тут как раз, для сокращения времени цикла перекомпиляции, incremental compilation, partitions and Logic Lock очень кстати.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2017, 11:33
Сообщение #4


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 421
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(warrior-2001 @ Jun 28 2017, 13:24) *
Ну я встречал крики на констрейны лишь на сам сигнал тап. Тоесть это он у себя внутри не тянет - значит некорректная времянка будет, и только. Поэтому ставлю set_false_path и не парюсь.

Честно говоря не понял - как это? Что значит и только? Если не тянет времянка значит и доверия к сигнал-тапу не будет при отладке проекта. Я с таким вариантом не согласен.

Цитата(Raven @ Jun 28 2017, 14:04) *
P&R алгоритмы используют рандомизацию, завязанную на ряд параметров (включая время старта компиляции), так что и результат в 2-х последовательных placement'ах будет отличаться в каких-то деталях для любого нетривиального дизайна. Ничего удивительного. И некотрые варианты оказываются неудачными (даже если все констрейнты грамотно прописаны, но конструкция уже "на пределе").

Это всё понятно, я не говорил что для меня это удивительно. А вот насчёт предела - это как раз мой случай.

Цитата(Raven @ Jun 28 2017, 14:04) *
В каком смысле "для каждого инстанса"? Инстанса SignalTap? Тогда да, рассыпуха Tap'а в partition не оформляется. Думаю, по идеологическим причинам. SignalTap играет обслуживающую роль, он должен показать, как работает основной дизайн, который можно и должно "заморозить" в процессе отладки, а сам механизм отладки (SignalTap) пытается расположиться на оставшихся ресурсах, как получится.

Если не оформляется то похоже что моя задача не решается.

Цитата(Raven @ Jun 28 2017, 14:04) *
Конечно, сталкивались. Способ решения - такой же, как и всегда: докапываться до сути проблемы, изучая критические пути и другие репорты Timing Analysis, и пытаться что-то изменить в системе SignalTap - Device_Under_Test, производя компиляции. И вот тут как раз, для сокращения времени цикла перекомпиляции, incremental compilation, partitions and Logic Lock очень кстати.

Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как?
Go to the top of the page
 
+Quote Post
Raven
сообщение Jun 28 2017, 11:59
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 475
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987



Цитата(_Anatoliy @ Jun 28 2017, 14:33) *
Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как?

Возможностей действительно мало. Но уж что остается. Действовать косвенным методом:

1) просто перекомпилировать проект (ведь иногда же времянка сходится, верно), плюс, возможно, иногда что-то в параметрах компиляции полезно пошевелить (кстати, тот же seed, используемый для рандомизации);
2) облегчить SignalTap'у "сходимость" - сузить круг наблюдаемых сигналов и вообще уменьшить "вес" SignalTap'а, а может, и освободить какие-то ресурсы за счет основного дизайна, наконец, выбросив несущественное для отлаживаемого узла/протокола обмена, и т.п.
3) попробовать подключиться к другим сигналам, к которым потенциально SignalTap'у легче будет проложить свои сигналы, но которые позволяют решить главную задачу наблюдения.
И т.п., и т.д.

Вообще, в ситуациях "на грани" все всегда сильно индивидуально, думаю, это не секрет для всех. Как-то так. Может, коллеги и еще какие-то how-to порекомендуют.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2017, 12:14
Сообщение #6


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 421
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(Raven @ Jun 28 2017, 14:59) *
Возможностей действительно мало. Но уж что остается. Действовать косвенным методом:

1) просто перекомпилировать проект (ведь иногда же времянка сходится, верно), плюс, возможно, иногда что-то в параметрах компиляции полезно пошевелить (кстати, тот же seed, используемый для рандомизации);
2) облегчить SignalTap'у "сходимость" - сузить круг наблюдаемых сигналов и вообще уменьшить "вес" SignalTap'а, а может, и освободить какие-то ресурсы за счет основного дизайна, наконец, выбросив несущественное для отлаживаемого узла/протокола обмена, и т.п.
3) попробовать подключиться к другим сигналам, к которым потенциально SignalTap'у легче будет проложить свои сигналы, но которые позволяют решить главную задачу наблюдения.
И т.п., и т.д.

Вообще, в ситуациях "на грани" все всегда сильно индивидуально, думаю, это не секрет для всех. Как-то так. Может, коллеги и еще какие-то how-to порекомендуют.


Ясно, спасибо! Подождём. А сид я уже второй день кручу.....
Go to the top of the page
 
+Quote Post
warrior-2001
сообщение Jun 28 2017, 12:30
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 330
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792



Цитата(_Anatoliy @ Jun 28 2017, 14:33) *
Честно говоря не понял - как это? Что значит и только? Если не тянет времянка значит и доверия к сигнал-тапу не будет при отладке проекта. Я с таким вариантом не согласен.
...
Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как?


Ну вот же и пример. Если не утаптывается по частоте ТОЛЬКО этот счетчик, то глючить будет времянка сигналтапа и только она. Сам проект в рамках основного функционала будет работать штатно, а времянка показывать ерунду.
А если этот счетчик потянет и другие ресурсы - то поплывет времянка и основного проекта.

Если честно, на больших частотах я обычно убирал часть функционала и исследовал только нужную мне часть схемы. Много у меня бывает проектов с загрузкой 100%. И тогда уже никак без резки проекта на части!
С большими проектами сложнее, ибо на крутых кристаллах частота такая, что сигналтап никогда не осилит запись в память большого потока на высокой частоте. А смотреть однобитные сигналы не всегда удобно.
П.С. Есть у меня на работе целый ряд кит-модулей. Иногда приходилось и на них проверять работу какого-то узла. Это если железо запаздывает или схему без моего ведома разводили и поставили ПЛИС маленькую по емкости.


--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 28 2017, 13:19
Сообщение #8


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 421
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(warrior-2001 @ Jun 28 2017, 15:30) *

Спасибо! С основным проектом у меня проблем пока нет, только с сигнал-тапом. Уж очень информативный кусочек хотел вывести для контроля. Ну что-ж, основная идея борьбы с явлением понятна, будем двигаться дальше.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jun 29 2017, 10:59
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 026
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(_Anatoliy @ Jun 28 2017, 12:22) *
Коллеги, от компиляции к компиляции не всегда выполняются констрейны для корки сигнал-тапа даже если в его структуре изменений не было. Т.к. работа ведётся на тактовых частотах близких к максимальным то это как то напрягает. Было бы неплохо для каждого инстанса сделать свой партишин, но в лоб квартус этого не позволяет. Кто нибудь сталкивался с такой проблемой, как решали?

Если не критично, то добавить перед выходом непосредственно на ST дополнительные регистры на все выводимые сигналы, т.к. сами выводы имеют вполне определенное местоположение на кристалле. Если в одном инстансе ST используются сигналы разных клоковых доменов, то разбить на несколько инстансов и добавить обвязывающую логику (хотя тут анализировать будет несколько проблематичнее).
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Jun 29 2017, 12:26
Сообщение #10


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 421
Регистрация: 15-07-06
Из: г.Донецк
Пользователь №: 18 832



Цитата(bogaev_roman @ Jun 29 2017, 13:59) *
Если не критично, то добавить перед выходом непосредственно на ST дополнительные регистры на все выводимые сигналы, т.к. сами выводы имеют вполне определенное местоположение на кристалле.

Спасибо конечно, но как это поможет в этом случае?
Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа

Цитата(bogaev_roman @ Jun 29 2017, 13:59) *
Если в одном инстансе ST используются сигналы разных клоковых доменов

Я по возможности стараюсь избегать такой ситуации.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение Jun 29 2017, 12:42
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 026
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082



Цитата(_Anatoliy @ Jun 29 2017, 15:26) *
Спасибо конечно, но как это поможет в этом случае?
Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа

Если fanout большой в критической цепочке, то можно попробовать настройками и assignement продублировать логику (можно ли отдельные настройки назначить только для партиции ST не знаю). Еще может быть вариант, что сама память, используемая ST находится физически далеко от пинов и из-за большого IC остальная логика рушится.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th November 2017 - 19:55
Рейтинг@Mail.ru


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