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

Глюки Vivado 2018.2

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

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

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

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


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

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

1 hour ago, Anton1990 said:

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

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

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

Удачи! Rob.

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


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

15 часов назад, Anton1990 сказал:

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

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

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

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

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


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

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

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


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

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

17 minutes ago, Anton1990 said:

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

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

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

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

Удачи! Rob.

 

 

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


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

2 часа назад, Anton1990 сказал:

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

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

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

 

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

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


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

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

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


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

14 hours ago, Anton1990 said:

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

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

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


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

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 ?

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


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

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

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.

 

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


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

11 часов назад, Nick_K сказал:

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

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

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


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

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

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

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

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

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

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

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

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

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