Jump to content

    

Глюки Vivado 2018.2

Сделал проект в Vivado 2018.2

Проект совершенно не работает. Тот же самый проект развел в Vivado 2016.4 и он заработал. Вопрос: в чем дело?

Это глюк новой вивады или что то не то с настройками?

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, Anton1990 said:

Вопрос: в чем дело?

Это глюк новой вивады или что то не то с настройками?

IMHO скорее проблемы с дизайном. Раз работоспособность зависит от того в какой версии разводите. 

Удачи! Rob.

Share this post


Link to post
Share on other sites
15 часов назад, Anton1990 сказал:

Сделал проект в Vivado 2018.2

Проект совершенно не работает. Тот же самый проект развел в Vivado 2016.4 и он заработал. Вопрос: в чем дело?

Это глюк новой вивады или что то не то с настройками?

Вероятнее всего, это некорректная работа с IP-ядрами, в особенности с ресетами FIFO, если они есть в проекте.

Share this post


Link to post
Share on other sites

К слову сказать в проекте есть модуль который изначально был ngc файлом под виртекс4 проект был в ise. Потом перешли на ультраскале и виваду соответственно. прошлось ngs переделать в кривой vhdl (офигительного размера ~ 20 Мбайт). Так вот в вивадо16.4 все работало как надо, а вот в вивадо18.2 не работает. По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать. Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки. А в данном конкретном случае даже число задействованных bufg  в разы отличается (4 шт. в vivado16.4 и 17 шт. в вивадо 18.2). Так что я склонен списывать на глюки вивадо.

Share this post


Link to post
Share on other sites

Приветствую!

17 minutes ago, Anton1990 said:

Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки. ... Так что я склонен списывать на глюки вивадо.

С таким подходом  к дизайну и расположение звезд будет влиять на результат - так что придется винить управляющего на небе. :biggrin:

Ваш vhdl файл это не алгоритм - это список примитивов и соединений между ними. И он не компилируется в Vivado - он описывать схему котору Vivado реализует в процессе Placa and Route. При этом неотъемлемой частью этого процесса есть файлы constraint  которые должны полно и корректно описывать правила временных ограничений (клоки, тайминги, и.т.д) для процесса P&R. Только в этом случае возможна повторяемость результата P&R.

Ну а будет ли это результат работать зависит от функциональной правильности вашего дизайна (ну и от расположения звезд ессcтествено :prankster2: )

Удачи! Rob.

 

 

Share this post


Link to post
Share on other sites
2 часа назад, Anton1990 сказал:

По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать. Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки.

Никому он ничего не должен.

Ваш огромный VHDL - это не алгоритм, а нетлист с инстанцированными примитивами Virtex-4. Если каким-то чудом вивадо 2016.4 правильно странслировала примитивы 4-го виртекса (который она вообще-то не поддерживает!) в ультраскейловские - ну, отлично. Если все чудесным образом работает, попробуйте взять результат трансляции этого модуля от 2016.4 (уже с примитивами ultrascale) и засунуть его в 2018.x - если проблема в этом, то все заработает. Если это просто одноклоковый вычислительный блок, то шансы высоки.

 

Я уже молчу о том, что нетлист от V-4 использует максимум LUT4, т.е. возможности Ultrascale используются далеко не полностью.

Share this post


Link to post
Share on other sites

Может проще просто переписать заново вышеупомянутый модуль? Проблем меньше станет сейчас и потом, когда возникнет необходимость снова портировать что-либо куда-либо. И я уже не раз сталкивался, что описание на vhdl иногда такие финты выкручивает, что диву даюсь. А тем более когда проверил один и тот же код на ISE и Vivado - там катастрофически разные схемы получились.

Share this post


Link to post
Share on other sites
14 hours ago, Anton1990 said:

К слову сказать в проекте есть модуль который изначально был ngc файлом под виртекс4 проект был в ise. Потом перешли на ультраскале и виваду соответственно. прошлось ngs переделать в кривой vhdl (офигительного размера ~ 20 Мбайт). Так вот в вивадо16.4 все работало как надо, а вот в вивадо18.2 не работает. По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать.

Не знаю как именно, но я бы подумал о том, чтобы прогнать этот vhdl через старую виваду, получить нетлист и его подцепить в новой. И жить так еще 5 лет, пока снова не грянет ;)

Share this post


Link to post
Share on other sites
23 hours ago, RobFPGA said:

Приветствую!

Ваш vhdl файл это не алгоритм - это список примитивов и соединений между ними. И он не компилируется в Vivado - он описывать схему котору Vivado реализует в процессе Placa and Route. При этом неотъемлемой частью этого процесса есть файлы constraint  которые должны полно и корректно описывать правила временных ограничений (клоки, тайминги, и.т.д) для процесса P&R. Только в этом случае возможна повторяемость результата P&R.

 

Так все верно. Это список соединений между примитивами и он одинаков для обоих версий вивады. И файл констрейнов один и тотже. Иными словами исходник проектов для обоих версий вивадо абсолютно один и тот же, а результат разводки на установках по умолчанию совершенно разный.

21 hours ago, Flood said:

Никому он ничего не должен.

Ваш огромный VHDL - это не алгоритм, а нетлист с инстанцированными примитивами Virtex-4. Если каким-то чудом вивадо 2016.4 правильно странслировала примитивы 4-го виртекса (который она вообще-то не поддерживает!) в ультраскейловские - ну, отлично. Если все чудесным образом работает, попробуйте взять результат трансляции этого модуля от 2016.4 (уже с примитивами ultrascale) и засунуть его в 2018.x - если проблема в этом, то все заработает. Если это просто одноклоковый вычислительный блок, то шансы высоки.

 

Я уже молчу о том, что нетлист от V-4 использует максимум LUT4, т.е. возможности Ultrascale используются далеко не полностью.

А как взять результаты трансляции именно этого модуля из вивады2016 и всунуть в виваду2018 ?

Share this post


Link to post
Share on other sites

Приветствую!

1 hour ago, Anton1990 said:

Так все верно. Это список соединений между примитивами и он одинаков для обоих версий вивады. И файл констрейнов один и тотже. Иными словами исходник проектов для обоих версий вивадо абсолютно один и тот же

Это вам так кажется что один и тот же. Я не зря выделил при упоминании constraint - "полно и корректно"  Чаще всего причинной таких проблем есть именно некорректное и неполное описание constraint.  А разные версии по-разному дополняют невысказанные хотелки разработчика. 

Бывают конечно глюки и в софте. Но тем более надо не гадать заработает или нет проект с новой инкарнацией нетлиста. Надо проанализировать логи P&R,  прогнать симы post-P&R нетлистов обеих версий, чтобы понять что не так. Ведь такие глюки могут и не сразу проявляться (как у вас - не работает и все), а в определённых ситуациях.       

1 hour ago, Anton1990 said:

А как взять результаты трансляции именно этого модуля из вивады2016 и всунуть в виваду2018 ?

Оформляете  ваш vhdl как pblock. Делаете P&R. Потом открываете разведенный проект и делает File/Export Pblock

Или из консоли используя команду write_edif. В этом случае можно и отдельный модуль  вывести (-cell).

 

Удачи! Rob.

 

Share this post


Link to post
Share on other sites
11 часов назад, Nick_K сказал:

Может проще просто переписать заново вышеупомянутый модуль? Проблем меньше станет сейчас и потом, когда возникнет необходимость снова портировать что-либо куда-либо. И я уже не раз сталкивался, что описание на vhdl иногда такие финты выкручивает, что диву даюсь. А тем более когда проверил один и тот же код на ISE и Vivado - там катастрофически разные схемы получились.

Скорее всего речь идет о купленном коре в формате синтезированного нетлиста. Видимо, альтернатива - купить заново уже на ультраскейл, тогда желание впихнуть старое понятно. Тут скорее удивительно, что коре времен V-4 не потеряло актуальности.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this