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

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

Здравствуйте, уважаемые гуры.

 

Vivado 2019.1, Kintex Ultrascale.

 

Имеем проект, в котором основную часть занимает ядро с закрытыми исходниками.

При компиляции, в этом ядре не сходятся времянки.

Запускаю 4 разные стратегии по 4 ядра на каждую, в одной из стратегий не сходится на 0.01 нс.

Стратегии пробовал разные, результат особенно не меняется (ну, иногда наилучший результат хуже).

 

Надо устойчиво побороть.

 

В связи с этим, у меня есть следующие вопросы:

1) В настройках Vivado в каждом процессе есть окошко "more options". Где можно посмотреть список этих самых more options для каждого процесса?

2) Есть ли в Vivado аналог директивы Seed - (Из Квартуса: Specifies the starting value the Fitter uses when randomly determining the initial placement for the current design )

Т.е. идея такая, запускать имплементацию в Vivado с разными начальными условиями, пока времянки не сойдутся.

3) Можно ли в Vivado увеличить время поиска, или количество итераций? Т.е. чтобы в рамках каждой стратегии больше перебирал вариантов. Т.е. нет проблемы поставить на ночку, или там запустить на мощном сервере, чтобы считал, пока не найдет нормальный вариант.

4) Зависит ли как-то качество разводки от количества ядер, выделяемого для каждого процесса имплементации? Ну т.е. если для процесса выделить не 4 ядра, а 8 - обработает ли оно в рамках своей стратегии больше вариантов?

 

Всем заранее спасибо за ответы.

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


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

15 minutes ago, Koluchiy said:

Запускаю 4 разные стратегии по 4 ядра на каждую, в одной из стратегий не сходится на 0.01 нс.

а какой конкретно путь не сходится? сколько слоев логики, распределение задержки: логика/роутинг и т.д. может быть это и есть предел. Может у вас требования 450МГц, а там 8 слоев логики.

15 minutes ago, Koluchiy said:

2) Есть ли в Vivado аналог директивы Seed - (Из Квартуса: Specifies the starting value the Fitter uses when randomly determining the initial placement for the current design )

нет

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


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

Мало исходных данных. 

1. Снизить частоту там где есть возможность.

2. Проверить правильность всех CDC.

3. Правильно обкострейнить входы\выходы.

4. Описать мультициклы если они есть.

5. Удалить все ILA и все лишние атрибуты типа dont_touch, mark_debg

6. Там где можно поставить auto_pipeline регистры.

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


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

Уважаемые, я понимаю, что это русский форум, но прошу все-таки в рамках сформулированных вопросов.

Quote

может быть это и есть предел

Иногда времянки сходятся. Так что, точно не предел.

Более того, если не сходятся на 0.01 нс - наверняка можно натянуть.

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


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

2 minutes ago, Koluchiy said:

Иногда времянки сходятся. Так что, точно не предел.

Более того, если не сходятся на 0.01 нс - наверняка можно натянуть.

а на другие наводящие вопросы ответ будет? я же не зря спросил. Если у вас там фанауты под 1000-5000, то это одно лечение, если у вас там логика/задержка 10/90 другое, если у вас там роутинг памяти то третье. 

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

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


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

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

7 minutes ago, des00 said:

А исходных данных реально мало. Хотите что бы вам помогли, давайте всю информацию.

Ну, вообще я прежде всего хотел ответов на вопросы 1-4.

Пока ответили на вопрос 2, большое спасибо.

Quote

и как заявляют разработчики- всегда дает оптимальный вариант

Это из серии "и Вы говорите".

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


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

On 2/7/2023 at 2:11 PM, Koluchiy said:

1) В настройках Vivado в каждом процессе есть окошко "more options". Где можно посмотреть список этих самых more options для каждого процесса?

Здесь: UG949, начиная с 3-ей главы.

 

On 2/7/2023 at 2:11 PM, Koluchiy said:

Vivado 2019.1, Kintex Ultrascale.

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

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


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

10 minutes ago, Koluchiy said:

Ну, вообще я прежде всего хотел ответов на вопросы 1-4.

1. это ждите @RobFPGA там где то они размазаны тонким слоем по документации. 

3. в вивадах года до 2016, было похожее ограничение, но ЕМНП его выпилили.

4. Нет. 

А вообще вот из манула на вивадо 

Quote

Reviewing, Copying, and Modifying Strategies To review, copy, and modify run strategies: 1. Select Tools → Settings from the main menu. 2. Select Strategies in the left-side panel. 3. Select Run Strategies to review, copy, or modify run strategies. The Run Strategies page (shown in the previous figure) contains a list of pre-defined run strategies for various tools and release versions. Note: For information on reviewing, copying, or modifying Report Strategies, see this link in Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906). 4. In the Flow pull-down menu, select the appropriate Vivado Implementation version for the available strategies. A list of included strategies is displayed

 

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


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

On 2/7/2023 at 2:11 PM, Koluchiy said:

При компиляции, в этом ядре не сходятся времянки.

Запускаю 4 разные стратегии по 4 ядра на каждую, в одной из стратегий не сходится на 0.01 нс.

Стратегии пробовал разные, результат особенно не меняется (ну, иногда наилучший результат хуже).

Там же ещё в настройках каждой стратегии можно крутить параметры.

 

Мне вот такие настройки помогли:
image.thumb.jpeg.a3bb8510bfad8ca1cc2a8ae775761d6c.jpegimage.thumb.jpeg.e5d588dc5939a99cf45bd9bbb5c39624.jpeg

 

Красным выделены выбранные параметры стратегии.

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


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

12 minutes ago, blackfin said:

Там же ещё в настройках каждой стратегии можно крутить параметры.

По сравнению что с Квартусом (любым), что с ISE это все очень бедно. Особенно для имплементации.

57 minutes ago, Flip-fl0p said:

5. Удалить все ILA и все лишние атрибуты типа dont_touch, mark_debg

Вопрос: при отсутствующих ILA оказывают ли mark_debug влияние на синтез?

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


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

On 2/7/2023 at 3:23 PM, Koluchiy said:

Особенно для имплементации.

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

Но это надо смотреть как ложится на кристалл уже имплементированный дизайн.

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


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

57 минут назад, Koluchiy сказал:

Вопрос: при отсутствующих ILA оказывают ли mark_debug влияние на синтез?

Скорее всего да. Ибо часто бывало так, что не подключая ни одну ILA к проекту, но оставляя линии помеченными mark_debug  проект собирался со слаками. Удалив атрибуты mark_debug, но при этом больше не внося никаких изменений в код - собирался с огромными запасами по слкам. 

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


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

1 hour ago, Koluchiy said:

Вопрос: при отсутствующих ILA оказывают ли mark_debug влияние на синтез?

естественно, для ресурсов эта метка почти тоже самое что и noprune 

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


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

Есть ли директива, глобально отменяющая mark_debug ?

Нагуглилось только https://support.xilinx.com/s/question/0D52E00006hpjtTSAQ/remove-markdebug-to-allow-lut-optimization?language=en_US

Я так понимаю, это уже после синтеза влияние окажет.

До синтеза что можно сделать, кроме ручного удаления, или там скриптом поудалять?

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


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

3 minutes ago, Koluchiy said:

Есть ли директива, глобально отменяющая mark_debug ?

Если он у вас стоит по уму (не в сорцах), то просто стереть в target файле констрейнов. А если в сорцах, то ..... в любом редакторе) ну или как по вашей ссылке отменить после синтеза. 

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


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

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

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

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

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

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

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

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

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

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