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

Синплифай для Вивадо

Уважаемые знатоки,

а не пробовал ли кто подключать в качестве синтезатора в Вивадо Синплифай? Ксайлинкс утверждает, что это невозможно и не поддерживается. Но может кто нибудь нашел способ прямого подключения...

Интерес представляет именно прямая интеграция, как было в ИСЕ.

Способы переноса синтезированного в синплифай проекта/части проекта через нетлист известны, но это другая тема.

 

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


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

Уважаемые знатоки,

а не пробовал ли кто подключать в качестве синтезатора в Вивадо Синплифай? Ксайлинкс утверждает, что это невозможно и не поддерживается. Но может кто нибудь нашел способ прямого подключения...

Интерес представляет именно прямая интеграция, как было в ИСЕ.

Способы переноса синтезированного в синплифай проекта/части проекта через нетлист известны, но это другая тема.

Особого смысла в этом нет. Вивада достаточно прилично поддерживает SV (хотя тут тоже есть мелкие косяки). Встроенной поддержки синплифая думаю не будет в виваде уже никогда (они ж теперь типа конкуренты).

Та встроенная поддержка синплифая, что была в ИСЕ - полное убожество. Имхо путь через нетлисты - самый правильный. Есть кстати ещё вариант всё делать в синплифае, а тулзы для place/route запускать оттуда (из синплифая) для имплементации.

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


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

Особого смысла в этом нет. Вивада достаточно прилично поддерживает SV (хотя тут тоже есть мелкие косяки). Встроенной поддержки синплифая думаю не будет в виваде уже никогда (они ж теперь типа конкуренты).

Та встроенная поддержка синплифая, что была в ИСЕ - полное убожество. Имхо путь через нетлисты - самый правильный. Есть кстати ещё вариант всё делать в синплифае, а тулзы для place/route запускать оттуда (из синплифая) для имплементации.

 

Спасибо за ответ! Собственно, проблема сейчас перетекла в чисто академический интерес. В свое время, еще в ИСЕ, был старый проект, который, видимо из за каких то моих косяков, работал после синтезирования синплифаем, но не работал после синтеза ксайлинксом. (кстати, а почему "встроенная поддержка синплифая, что была в ИСЕ - полное убожество" ? некоторые проблемы конечно имели место - например, при встраивании КореГеновских и ЕДКих ядер, но в принципе все более-менее работало) А тут понадобилось проект реанимировать. Хотелось сделать это под виваду, поэтому и возник вопрос... В конце концов, правда, выяснилась, что это невозможно по другой причине,

а именно - проект содержал модуль, сделанный в схемотехническом редакторе в ИСЕ совсем старой версии - 4.2, что ли... , да еще и другим человеком, и импортированной оттуда в виде ЕДН нетлиста. Так вот, примитивы в ИСЕ и Виваде разные - об этом и сам ксайлинкс где-то упоминал. Была сделана попытка ручного редактирования этого нетлиста, и в конце конуов PaR его даже подцепил, но проект так и не заработал, после чего я бросил это гиблое дело. Пришлось тянуть проект дальше в ИСЕ. И эта проблема, ИМХО, уже совсем нерешаемая - подцепить ИСЕшные примитивы в виваду?

 

А вторая идея - запускать вивадовский PaR из под синплифая - интересная. Практически пробовали, работает?

 

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


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

(кстати, а почему "встроенная поддержка синплифая, что была в ИСЕ - полное убожество" ?

Ну из самого очевидного - если в коде где-то ошибка, то понять где и что это за ошибка из под ИСЕ невозможно - логи на экран выводятся только самые куцые,

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

 

А вторая идея - запускать вивадовский PaR из под синплифая - интересная. Практически пробовали, работает?

Я как-то с этим поигрался, понял что в принципе всё работает, но дальше ковырять не стал, потому что поддержка P&R тулзов от Хилых сделана в Синплифае тоже

не лучшим образом - какие-то мутные скрипты, множество стандартных настроек недоступно.

В общем я остановился на варианте через нетлист - до нетлиста делаю в синплифае, разводка - в ИСЕ. Правда приходится в обоих тулзах писать отдельные constraints,

иначе всё работает немного не так как хотелось бы, но это мелкая проблема.

 

Библиотеки примитивов должны быть совместимы если у вас используется одно и то же семейство ПЛИС, однако полагаю что в вашем случае это не так. Вивада заточена под 7 семейство только,

и тут без вариантов. ИСЕ в принципе позволяет работать со всеми семействами, однако (если мне не изменяет память) 7 семейство поддерживает не полностью.

 

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


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

Ну из самого очевидного - если в коде где-то ошибка, то понять где и что это за ошибка из под ИСЕ невозможно - логи на экран выводятся только самые куцые,

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

 

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

 

Библиотеки примитивов должны быть совместимы если у вас используется одно и то же семейство ПЛИС, однако полагаю что в вашем случае это не так. Вивада заточена под 7 семейство только,

и тут без вариантов. ИСЕ в принципе позволяет работать со всеми семействами, однако (если мне не изменяет память) 7 семейство поддерживает не полностью.

 

Возможно вы правы, примитивы были еще от то ли четвертого, то ли вообще второго виртекса, а проект -уже теперь- компилировался под кинтекс семерку. Но Par в ИСЕ успешно сам их

заменял на примитивы нового (седьмого) семейства, а вот с вивадой возникли сложности.

 

Была еще идея в связи с этим подставлять не edif, а уже ксайлинксовский зажатый NGC-подобный нетлист, уже после ИСЕ транслятора (но перед PaR), установив в ИСЕшном проекте правильное семейство кинтекс7. Но транслятор генерирует не NGC, а NGO и этот NGO вивада не берет (даже после переименования в NGC :) , формат файла ей не нравится... Не пробовали NGO к виваде цеплять?

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


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

Возможно вы правы, примитивы были еще от то ли четвертого, то ли вообще второго виртекса, а проект -уже теперь- компилировался под кинтекс семерку. Но Par в ИСЕ успешно сам их

заменял на примитивы нового (седьмого) семейства, а вот с вивадой возникли сложности.

 

Так скопировать из ИСЕ примитивы и добавить их к Вивадо? Или как вариант, вручную заменить библиотечные компоненты на 7-ю серию...

 

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


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

Так скопировать из ИСЕ примитивы и добавить их к Вивадо? Или как вариант, вручную заменить библиотечные компоненты на 7-ю серию...

 

Ну... вручную менять достаточно большой edif слишком утомительно.... я пытался это сделать - потратил уйму времени, после чего вивадовский разводчик его даже воспринял (до этого вываливался с ошибками), но проект все равно не заработал (в ИСЕ - работало). Ну а скопировать примитивы... - я, честно говоря, слабо представляю, как это сделать. Они же в виваде есть с теми же именами, только несколько другие. Переименовывать в edif все вручную сложно, утомительно и чревато дополнительными ошибками. Но даже если это и сделать - как их добавить из исе в виваду?

Может быть действительно решением было бы подцепить в виваду нетлист уже после ИСЕшного транслятора (то, что подается на вход PaR), он, если я правильно помню, имеет расширение *.ngd , но вивадо его не берет.

(Может быть, кстати, как раз из за того, что примитивы не те?) Пишет, что неподдерживаемый формат. Хотя в моем понимании, форматы NGC и NGD очень похожи и отличаются как раз примитивами.

 

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


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

может я чего-то путаю, но есть post-synthesys project, который берет нетлист из симплифая.

что еще нужно?

я все флоу не проходил, просто проверял сколько ресурсов в ПЛИС требуется, но вроде как плэйсилось и роутилось все

 

upd: > примитивы были еще от то ли четвертого

как-то пропустил это - вивадо для 7, и симплифай для 7 работало - ес-сно

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


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

Если не хотите использовать последнюю версию ISE 14.7, которая кинтексы седьмые поддерживает все или почти все, можно попробовать синтезнутый нетлист засунуть в вивадо, у меня так некоторые корегеновские корки были использованы в вивадо в формате .ngc от старого ISE .

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


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

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

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

 

Но Par в ИСЕ успешно сам их

заменял на примитивы нового (седьмого) семейства, а вот с вивадой возникли сложности.

Дело в том, что в виваде просто физически нет примитивов от предыдущих семейств. Она изначально эти семейства не поддерживает, и это непобедимо.

 

Не пробовали NGO к виваде цеплять?

 

Нет, не пробовал.

Была проблема однажды чем-то похожая на вашу.Это было очень давно, когда вся разработка велась в основном в схематик едиторе, языки VHDL,Verilog были в новинку и плохо поддерживались тулзами от Хилых.

У нас была разработана своя IP в схемном редакторе. Начиная с определённой версии софта Хилые поменяли формат файла схемного редактора и сам редактор прикрутили другой. В результате ни одна старая корка не могла быть использована в новом проекте. Решение нашли немного кривое, но рабочее : с помощью утилиты сконвертили в VHDL, далее этот VHDL уже втянули в новый проект. Недостаток такого подхода - редактировать сгенерённый транслятором VHDL очень сложно. У вас ситуация чуть хуже - нетлист на уровне примитивов, а они сильно зависят от семейства. Самый правильный путь (имхо) - это всё таки как-то восстановить исходник того куска, что в виде нетлиста, и дальше работать с исходником. То обстоятельство, что ваш проект работает-не работает при использовании разных синтезаторов должно вас серьёзно насторожить, скорее всего в проекте какая-то гадость типа асинхронщины, надо искать и исправлять.

 

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


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

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

Убедили! Мы развращены виндовсом :) Между тем, ксайлинкс периодически рекомендует при использовании вивады использовать НЕпроектный (то есть безоболочечный, без GUI) режим, делая все как раз скриптами :( что, согласен, более утомительно

Дело в том, что в виваде просто физически нет примитивов от предыдущих семейств. Она изначально эти семейства не поддерживает, и это непобедимо.

Золотые слова! В этом то и дело. Придется проект в 14.7 тащить.... и дальше седьмого семейства, видимо, уже не уйти.

Была проблема однажды чем-то похожая на вашу.Это было очень давно, когда вся разработка велась в основном в схематик едиторе, языки VHDL,Verilog были в новинку и плохо поддерживались тулзами от Хилых.

У нас была разработана своя IP в схемном редакторе. Начиная с определённой версии софта Хилые поменяли формат файла схемного редактора и сам редактор прикрутили другой. В результате ни одна старая корка не могла быть использована в новом проекте. Решение нашли немного кривое, но рабочее : с помощью утилиты сконвертили в VHDL, далее этот VHDL уже втянули в новый проект. Недостаток такого подхода - редактировать сгенерённый транслятором VHDL очень сложно. У вас ситуация чуть хуже - нетлист на уровне примитивов, а они сильно зависят от семейства. Самый правильный путь (имхо) - это всё таки как-то восстановить исходник того куска, что в виде нетлиста, и дальше работать с исходником.

Абсолютно точно! Такое ощущение, что Вы описываете не свою, а мою ситуацию! Точно так же - кусок был сделан еще в схемотехническом редакторе, поэтому и цеплялся в дальнейший верилоговский проект нетлистом. И в этом схемотехническом куске все было страшно заоптимизировано - ксайлинксы то тогда были маленькие. Результатом чего стало использование большого количества примитивов типа ускоренного переноса, LUT3, LUT4 и подобных с ручным заданием логических функций, вычисленных по картам Карно. И делал это другой человек, лет 15 назад.

То обстоятельство, что ваш проект работает-не работает при использовании разных синтезаторов должно вас серьёзно насторожить, скорее всего в проекте какая-то гадость типа асинхронщины, надо искать и исправлять.

Согласен, конечно, такое поведение ненормально. Поначалу он делался на синплифае, поскольку он в разы быстрее XST, и о том, что в XST не будет работать, никто не знал :) Проблема выявилась спустя годы при вот этой неудачной попытке переноса в Виваду. И за давностью лет править его... сложно.

 

Если не хотите использовать последнюю версию ISE 14.7, которая кинтексы седьмые поддерживает все или почти все, можно попробовать синтезнутый нетлист засунуть в вивадо, у меня так некоторые корегеновские корки были использованы в вивадо в формате .ngc от старого ISE .

 

Да, это мы тоже умеем :) Проблема в другом. Внутри большого синтезируемого синплифаем проекта есть модуль, сделанный в старом-престаром схемотехническом редакторе с использованием примитивов от виртекс2, и вставляемый через сгенерированный давно-предавно EDIF нетлист. Синплифай этот нетлист никак не трогает, он же уже синтезирован. Следующий процесс design flow - Translate - переводит, с учетом констрейнтов, все EDIF нетлисты в ксайлинкосвский формат NGD. Как я понимаю, при этом он подменяет "высокоуровневые" примитивы после синтеза

на более низкоуровневые уже того семейства, куда будет имплементация (Я не ошибаюсь? Или это делает маппер?).

 

Так вот, "синтезированные примитивы" - те которые в формате EDIF (или NGC, если синтезировано ксайлинксовским XST) из ИСЕ, вивада, хотя и понимает, но транслирует их уже с использованием своих внутренних библиотек. При этом они отличаются от ИСЕшных. Где то могут ножки не совпасть - это еще теоретически можно отредактировать, и я даже убил на это уйму времени, так что вивада все же сожрала этот EDIF. Но проет практически все равно не заработал, похоже что не во всем совпадает и функционал.

 

Была еще мысль скормить виваде не EDIF, а уже оттранслированный низкоуровневый NGD нетлист, но его никак не берет, зараза.

 

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


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

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

 

Скорее всего примитивы использованные в старом проекте уникальны для Virtex2 и они не могут автоматом конвертированы в Vivado. Редактирование вручную ЕDIF конечно то еще удовольствие :( может проще было просто переименовать все примитивы в EDIF или ссылку на библиотеку там же - а потом сделать врапперы которые конвертят старые примитивы в новый с той же функциональностью. и подсунуть их при синтезе в Вивадо

 

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

 

Успехов! Rob.

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


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

Есть подозрение, что за то время, пока обсуждалась эта тема, можно было несколько раз переписать этот модуль на HDL и забыть про схематик раз и на всегда, если конечно схема сохранилась. Также, вроде бы можно сконвертировать ngc в hdl, может быть это как-то поможет?

 

netgen -ofmt vhdl filename.ngc

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


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

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

 

Это точно! Легче, правда, будет просто разработать его заново. Переписывание вручную в HDL примитивы типа LUT4 с инициализационной функцией типа (~I2*I0+I2*I3)@I1 (хотя в свое время это было сделано именно вручную), которых там пара сотен, гарантированно не обойдется без ошибок.

 

Также, вроде бы можно сконвертировать ngc в hdl, может быть это как-то поможет?

netgen -ofmt vhdl filename.ngc

 

А вот это идея! netgen, правда, EDIF не понимает, но зато, помимо NGC, понимает NGO - нетлист после транслятора! Я давно хотел скормить виваде NGOшный нетлист, она его напрямую не берет, и вот способ! Попробую на досуге. (поскольку текущую потребность закрыл ИСЕшным проектом).

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


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

...Я как-то с этим поигрался, понял что в принципе всё работает, но дальше ковырять не стал, потому что поддержка P&R тулзов от Хилых сделана в Синплифае тоже

не лучшим образом - какие-то мутные скрипты, множество стандартных настроек недоступно.

Нифига!!! Я запускаю ксилинксовский P&R из под Симплифая. Настройки P&R я делаю через opt-файл, таким способом достопны абсолютно все ксилинксовские опции.

 

olD_yxCArEk.jpg

 

... Правда приходится в обоих тулзах писать отдельные constraints,

иначе всё работает немного не так как хотелось бы, но это мелкая проблема.

Я ксилинксовские ucf констрейны преобразую в симплифаевские sdc констрейны утилитой ucf2sdc.

В прикрепленном архиве утилита ucf2sdc, пример батника для ее использования, пример opt-файла.

 

...У нас была разработана своя IP в схемном редакторе. Начиная с определённой версии софта Хилые поменяли формат файла схемного редактора и сам редактор прикрутили другой. В результате ни одна старая корка не могла быть использована в новом проекте. Решение нашли немного кривое, но рабочее : с помощью утилиты сконвертили в VHDL, далее этот VHDL уже втянули в новый проект. Недостаток такого подхода - редактировать сгенерённый транслятором VHDL очень сложно....

Правильный способ - втянуть старый проект в Active-HDL, и потом этот проект вести и поддерживать в Active-HDL. Active-HDL отлично в себя всасывает проекты любой версии софта Хилых, поддерживает даже древний Foundation, схематик всасывается практически в неизменном виде.

SYN.zip

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


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

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

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

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

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

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

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

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

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

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