Перейти к содержанию
    

Vivado - помогите натянуть времянки

4 minutes ago, blackfin said:

Это как раз не проблема. После синтеза на вкладке "Статистика" Vivado указывает все требуемые для модуля ресурсы.

он не показывает ресурсы разводки(а проблема с ними), он не учитывает регистры которые будут размешаться в DSP/RAMB, оне может не показывать склейки памяти и ЕМНП, он не показывает утилизацию SLICE.

3 minutes ago, blackfin said:

Читайте внимательно:

 

ну тс же вам ответил уже на этот вопрос чуть ниже

Quote

Основная часть - это не 100%.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/9/2023 at 10:54 AM, des00 said:

он не показывает ресурсы разводки(а проблема с ними), он не учитывает регистры которые будут размешаться в DSP/RAMB, оне может не показывать склейки памяти и ЕМНП, он не показывает утилизацию SLICE.

Это все бла-бла-бла.. Вы зачем-то стали задавать ТС'у вопросы, но в ответ на ответы на эти вопросы не дали ему ни одного реального совета. А вместо этого пустились в пространные рассуждения о трудностях проектирования.. 🙂

 

On 2/9/2023 at 10:54 AM, des00 said:

ну тс же вам ответил уже на этот вопрос чуть ниже

И что с того, что не 100% ? А если там 99% ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, blackfin said:

Это все бла-бла-бла.. Вы зачем-то стали задавать ТС'у вопросы, но в ответ на эти вопросы не дали ему ни одного реального совета. А вместо этого пустились в пространные рассуждения о трудностях проектирования.. 🙂

Эммм, вы в этом точно уверены? Мой пост 1 час назад. А вот ваш совет начать резать чип руками, тем более если он, по вашим же словам может быть 99%, уж точно сродни переборки сида. Который в вивадо легко эмулируется установкой максимального фанаута, при той же стратегии, без всякой игры в "попробуй угадай ограничения".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, des00 said:

А кто сказал что она не сходится именно в зашифрованном модуле? ТС нигде не писал об этом

Писал в корневом посте, читайте внимательнее.

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

========================== (тут начинался следующий пост, но форум склеил)

Что касается рисования pblockов.

Рисовать их, конечно, можно, но тут есть 2 проблемы:

1) Нужно ввалить довольно существенное рабочее время в реверс-инжиниринг блока по нетлисту. Т.е. понять, чего там есть внутри и как оно хотя бы примерно работает, чтобы не рисовать квадратики наобум.

В данном случае мне бы хотелось вместо этого ввалить вычислительные мощности и календарное время сервера, чтобы за счет перебора вариантов получать требуемый результат. А квадратики чтобы рисовали разработчики закрытого блока, как и выполняли прочие оптимизации. Но тут уже вопрос переходит из технической в административную область.

 

2) Я не знаю, у кого как, а у меня с квадратиками в Вивадо пока посложнее, чем в Квартусе или раньше в ISE.

В том плане, что вероятность получить результат типа "не могу развести, не скажу почему" довольно большая. Поэтому тем более заниматься этим в закрытом блоке не очень хочется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

================== (следующий пост, форум наверное опять склеит)

Промежуточные итоги.

1) Убирание mark_debug в открытой части кода видимых результатов не принесло. Возможно, по причине отсутствия проблем с времянками в этой части кода. 😁

2) Запустил 30! стратегий на ночь. 2 из них развелись 🙂. WNS +0.001 и +0.013 нс. Можно было бы на этом и остановиться, но вообще хотелось бы более лучший результат.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/7/2023 at 2:59 PM, blackfin said:

И если есть возможность, лучше перейти на Vivado 2021.2

Подскажите, а почему именно на эту версию? А не на 2022 например?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/9/2023 at 4:24 PM, Koluchiy said:

Подскажите, а почему именно на эту версию? А не на 2022 например?

Так стратегии P&R меняются от версии к версии Vivado и я заметил, что в V21.2 запас по slacks на одних и тех же проектах немного больше, чем в V22.2.

Но это не точно, так как зависит, возможно, от характеризации самих кристаллов. Со временем, у Xilinx'а появляются более точные временные модели задержек внутри чипов. IMHO.

Ну и самые последние версии Vivado часто оказываются глючными. Так что у нас в конторе в ходу версия V21.2, как самая стабильная.

Но ничто не мешает попробовать собрать проект и в версии V21.2, и в версии V22.2 и сравнить результаты. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Koluchiy said:

Писал в корневом посте, читайте внимательнее.

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

плис же не резиновая, времянка это симптом, а соотношение задержек логики/разводки 30/70 уже признак, роутер ищет свободные слайсы, которые может занимать, в том числе ваша логика и выполнение временных ограничений в вашей логике. Я бы собрал голую корку, посмотрел ее времянки и ресурс в том числе в SLICE/SLICEM/SLICEL. Это можно взять за основу, затем уже дальше смотреть что с ней происходит в вашем проекте и постепенно расслаблял бы работу роутера, как это делать написал выше. 30/70 еще можно побороться, гораздо хуже когда 10/90. 

4 hours ago, Koluchiy said:

2) Запустил 30! стратегий на ночь. 2 из них развелись 🙂. WNS +0.001 и +0.013 нс. Можно было бы на этом и остановиться, но вообще хотелось бы более лучший результат.

и так будет до тех пор, пока в проекте не появится дополнительная логика (хотя бы банальный триггер) и потом по новой 30 стратегий)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 minutes ago, des00 said:

 Я бы собрал голую корку, посмотрел ее времянки и ресурс в том числе в SLICE/SLICEM/SLICEL. Это можно взять за основу, затем уже дальше смотреть что с ней происходит в вашем проекте

Говорили что в Vivado можно зафиксировать проект, а затем кривенько - но добавлять в него новый функционал не переразводя старый.

И ещё вроде можно было реконфигурировать часть проекта новой сущностью.

 

32 minutes ago, des00 said:

и так будет до тех пор, пока в проекте не появится дополнительная логика (хотя бы банальный триггер) и потом по новой 30 стратегий)

Может пойти по этим путям чтобы результат не менялся от дополнительной логики?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 minutes ago, _4afc_ said:

Говорили что в Vivado можно зафиксировать проект, а затем кривенько - но добавлять в него новый функционал не переразводя старый.

да, там есть такая фича как out-of-context разных типов, можно зафиксировать синтез, можно роутинг. Но есть нюансы, например, ЕМНП в занятые слайсы, роутер не лезет, что приводит к плохой утилизации слайсов и уже проблемам с разводской оставшейся логики. Если делать "избыточный код", т.е. код который может быть оптимизирован на этапе синтеза (от разрядностей сигналов например), то код будет под полную ширину. Например есть входной порт 16 бит, если на него подать 4 бита, то он все равно останется 16 бит. Т.е, там надо делать враперы и их собирать. А еще 2021 вивада обожает заменять BRAM малого размера (начиная со 128 адресов) на LUTRAM, даже порой констрейны игнорирует. Но, если там широкое слово, то это отъедает прилично логики, которая могла уйти на благое дело)

6 minutes ago, _4afc_ said:

И ещё вроде можно было реконфигурировать часть проекта новой сущностью.

Это тоже можно, но есть нюансы. в частности резервирование ресурсов.

6 minutes ago, _4afc_ said:

Может пойти по этим путям чтобы результат не менялся от дополнительной логики?

сколько не пробывал подобное, всегда по итогу, для релиза, стирал сохраненное и собирал проект с натянутыми портянками времянок заново 🤷‍♂️

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 09.02.2023 в 18:13, Koluchiy сказал:

Поделитесь :).

были проблемы с:

1)xadc+jtag

2)с обнаружением jtag/fpga from sdk

3)проблемы с парсером сигаси

4) и ещё чтото по мелочи.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/9/2023 at 4:24 PM, Koluchiy said:

Подскажите, а почему именно на эту версию? А не на 2022 например?

Сравнил по случаю две стратегии имплементации в V22.2.1.

 

Результаты такие:

Crossbar: 8x8, шина: AXIS - 72 бит 

ПЛИС: XCKU060-2-i

Частота: 500 MHz

-mode out_of_context

 

Synthesis: Flow_AlternateRoutability

Implementation: Performance_RefinePlacement

Slack = +0.001 ns

 

Synthesis: Flow_AlternateRoutability

Implementation: Performance_NetDelay_low

Slack = +0.028 ns

 

PS. В проекте очень мало логики (~3%) и много проводов.

Logic Level Distribution
+-----------------+-------------+----+-----+-----+-----+
| End Point Clock | Requirement |  0 |  1  |  2  |  3  |
+-----------------+-------------+----+-----+-----+-----+
| clk             | 2.000ns     | 39 | 168 | 482 | 311 |
+-----------------+-------------+----+-----+-----+-----+

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...