Anton1990 0 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба Сделал проект в Vivado 2018.2 Проект совершенно не работает. Тот же самый проект развел в Vivado 2016.4 и он заработал. Вопрос: в чем дело? Это глюк новой вивады или что то не то с настройками? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 14 мая, 2019 Опубликовано 14 мая, 2019 · Жалоба Приветствую! 1 hour ago, Anton1990 said: Вопрос: в чем дело? Это глюк новой вивады или что то не то с настройками? IMHO скорее проблемы с дизайном. Раз работоспособность зависит от того в какой версии разводите. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба 15 часов назад, Anton1990 сказал: Сделал проект в Vivado 2018.2 Проект совершенно не работает. Тот же самый проект развел в Vivado 2016.4 и он заработал. Вопрос: в чем дело? Это глюк новой вивады или что то не то с настройками? Вероятнее всего, это некорректная работа с IP-ядрами, в особенности с ресетами FIFO, если они есть в проекте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton1990 0 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба К слову сказать в проекте есть модуль который изначально был ngc файлом под виртекс4 проект был в ise. Потом перешли на ультраскале и виваду соответственно. прошлось ngs переделать в кривой vhdl (офигительного размера ~ 20 Мбайт). Так вот в вивадо16.4 все работало как надо, а вот в вивадо18.2 не работает. По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать. Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки. А в данном конкретном случае даже число задействованных bufg в разы отличается (4 шт. в vivado16.4 и 17 шт. в вивадо 18.2). Так что я склонен списывать на глюки вивадо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба Приветствую! 17 minutes ago, Anton1990 said: Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки. ... Так что я склонен списывать на глюки вивадо. С таким подходом к дизайну и расположение звезд будет влиять на результат - так что придется винить управляющего на небе. Ваш vhdl файл это не алгоритм - это список примитивов и соединений между ними. И он не компилируется в Vivado - он описывать схему котору Vivado реализует в процессе Placa and Route. При этом неотъемлемой частью этого процесса есть файлы constraint которые должны полно и корректно описывать правила временных ограничений (клоки, тайминги, и.т.д) для процесса P&R. Только в этом случае возможна повторяемость результата P&R. Ну а будет ли это результат работать зависит от функциональной правильности вашего дизайна (ну и от расположения звезд ессcтествено ) Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 15 мая, 2019 Опубликовано 15 мая, 2019 · Жалоба 2 часа назад, Anton1990 сказал: По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать. Да и в любом случае vhdl файл это некий алгоритм и каким бы кривым он не был работать должен одинаково при компиляции в любой версии среды разработки. Никому он ничего не должен. Ваш огромный VHDL - это не алгоритм, а нетлист с инстанцированными примитивами Virtex-4. Если каким-то чудом вивадо 2016.4 правильно странслировала примитивы 4-го виртекса (который она вообще-то не поддерживает!) в ультраскейловские - ну, отлично. Если все чудесным образом работает, попробуйте взять результат трансляции этого модуля от 2016.4 (уже с примитивами ultrascale) и засунуть его в 2018.x - если проблема в этом, то все заработает. Если это просто одноклоковый вычислительный блок, то шансы высоки. Я уже молчу о том, что нетлист от V-4 использует максимум LUT4, т.е. возможности Ultrascale используются далеко не полностью. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Nick_K 0 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба Может проще просто переписать заново вышеупомянутый модуль? Проблем меньше станет сейчас и потом, когда возникнет необходимость снова портировать что-либо куда-либо. И я уже не раз сталкивался, что описание на vhdl иногда такие финты выкручивает, что диву даюсь. А тем более когда проверил один и тот же код на ISE и Vivado - там катастрофически разные схемы получились. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexadmin 0 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 14 hours ago, Anton1990 said: К слову сказать в проекте есть модуль который изначально был ngc файлом под виртекс4 проект был в ise. Потом перешли на ультраскале и виваду соответственно. прошлось ngs переделать в кривой vhdl (офигительного размера ~ 20 Мбайт). Так вот в вивадо16.4 все работало как надо, а вот в вивадо18.2 не работает. По впечатлениям что то не разводиться как раз в этом модуле, но его не посмотреть не переделать. Не знаю как именно, но я бы подумал о том, чтобы прогнать этот vhdl через старую виваду, получить нетлист и его подцепить в новой. И жить так еще 5 лет, пока снова не грянет ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton1990 0 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 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 ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба Приветствую! 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flood 13 16 мая, 2019 Опубликовано 16 мая, 2019 · Жалоба 11 часов назад, Nick_K сказал: Может проще просто переписать заново вышеупомянутый модуль? Проблем меньше станет сейчас и потом, когда возникнет необходимость снова портировать что-либо куда-либо. И я уже не раз сталкивался, что описание на vhdl иногда такие финты выкручивает, что диву даюсь. А тем более когда проверил один и тот же код на ISE и Vivado - там катастрофически разные схемы получились. Скорее всего речь идет о купленном коре в формате синтезированного нетлиста. Видимо, альтернатива - купить заново уже на ультраскейл, тогда желание впихнуть старое понятно. Тут скорее удивительно, что коре времен V-4 не потеряло актуальности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться