|
Сигнал-тап и партишин |
|
|
|
 |
Ответов
(1 - 10)
|
Jun 28 2017, 11:04
|
Местный
  
Группа: Свой
Сообщений: 491
Регистрация: 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 очень кстати.
|
|
|
|
|
Jun 28 2017, 11:33
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 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 очень кстати. Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как?
|
|
|
|
|
Jun 28 2017, 11:59
|
Местный
  
Группа: Свой
Сообщений: 491
Регистрация: 16-01-05
Из: Санкт-Петербург
Пользователь №: 1 987

|
Цитата(_Anatoliy @ Jun 28 2017, 14:33)  Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как? Возможностей действительно мало. Но уж что остается. Действовать косвенным методом: 1) просто перекомпилировать проект (ведь иногда же времянка сходится, верно), плюс, возможно, иногда что-то в параметрах компиляции полезно пошевелить (кстати, тот же seed, используемый для рандомизации); 2) облегчить SignalTap'у "сходимость" - сузить круг наблюдаемых сигналов и вообще уменьшить "вес" SignalTap'а, а может, и освободить какие-то ресурсы за счет основного дизайна, наконец, выбросив несущественное для отлаживаемого узла/протокола обмена, и т.п. 3) попробовать подключиться к другим сигналам, к которым потенциально SignalTap'у легче будет проложить свои сигналы, но которые позволяют решить главную задачу наблюдения. И т.п., и т.д. Вообще, в ситуациях "на грани" все всегда сильно индивидуально, думаю, это не секрет для всех. Как-то так. Может, коллеги и еще какие-то how-to порекомендуют.
|
|
|
|
|
Jun 28 2017, 12:14
|

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

|
Цитата(Raven @ Jun 28 2017, 14:59)  Возможностей действительно мало. Но уж что остается. Действовать косвенным методом:
1) просто перекомпилировать проект (ведь иногда же времянка сходится, верно), плюс, возможно, иногда что-то в параметрах компиляции полезно пошевелить (кстати, тот же seed, используемый для рандомизации); 2) облегчить SignalTap'у "сходимость" - сузить круг наблюдаемых сигналов и вообще уменьшить "вес" SignalTap'а, а может, и освободить какие-то ресурсы за счет основного дизайна, наконец, выбросив несущественное для отлаживаемого узла/протокола обмена, и т.п. 3) попробовать подключиться к другим сигналам, к которым потенциально SignalTap'у легче будет проложить свои сигналы, но которые позволяют решить главную задачу наблюдения. И т.п., и т.д.
Вообще, в ситуациях "на грани" все всегда сильно индивидуально, думаю, это не секрет для всех. Как-то так. Может, коллеги и еще какие-то how-to порекомендуют. Ясно, спасибо! Подождём. А сид я уже второй день кручу.....
|
|
|
|
|
Jun 28 2017, 12:30
|
Местный
  
Группа: Свой
Сообщений: 375
Регистрация: 9-10-08
Из: Таганрог, Ростовская обл.
Пользователь №: 40 792

|
Цитата(_Anatoliy @ Jun 28 2017, 14:33)  Честно говоря не понял - как это? Что значит и только? Если не тянет времянка значит и доверия к сигнал-тапу не будет при отладке проекта. Я с таким вариантом не согласен. ... Как можно что либо изменить во внутренностях сигнал-тапа??? Например, мне сообщают что не тянет счетчик адреса для записи в память внутри сигнал-тапа. В своём проекте я разберусь, а там как? Ну вот же и пример. Если не утаптывается по частоте ТОЛЬКО этот счетчик, то глючить будет времянка сигналтапа и только она. Сам проект в рамках основного функционала будет работать штатно, а времянка показывать ерунду. А если этот счетчик потянет и другие ресурсы - то поплывет времянка и основного проекта. Если честно, на больших частотах я обычно убирал часть функционала и исследовал только нужную мне часть схемы. Много у меня бывает проектов с загрузкой 100%. И тогда уже никак без резки проекта на части! С большими проектами сложнее, ибо на крутых кристаллах частота такая, что сигналтап никогда не осилит запись в память большого потока на высокой частоте. А смотреть однобитные сигналы не всегда удобно. П.С. Есть у меня на работе целый ряд кит-модулей. Иногда приходилось и на них проверять работу какого-то узла. Это если железо запаздывает или схему без моего ведома разводили и поставили ПЛИС маленькую по емкости.
--------------------
Глупцы игнорируют сложность. Прагматики терпят ее. Некоторые могут избегать ее. Гении ее устраняют.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|