Asb 1 1 сентября, 2011 Опубликовано 1 сентября, 2011 · Жалоба Потихоньку переползаю на SV. Соответственно приходится прощаться с Xilinx ISE. В качестве рабочего инструмента пока остановился на Synplify'е. Попытка импортировать проект из ISE 13 не удалась. Хрошо делаем сами. Исходный проект содержит несколько core из Xilinx coregen'a. Читаем документацию на Synplify - написано - просто добавьте .ngc файл в проект. Добавляю - синтез не проходит - не видит Synplify корегеновских модулей. Если добавить в проект соответствующие .v файлы - синтез проходит, но возникает вопрос, а нафига в тогда в проект включать .ngc файлы ? Что интересно - судя по логу они явно обрабатываются. Коллеги, у кого есть опыт работы с Synplify'ем подскажите пожалуйста как правильно создать прект с Xilinx IP-cores. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 1 сентября, 2011 Опубликовано 1 сентября, 2011 · Жалоба 2 Asb просто добавляйте файлы которые генерит Coregen, там директивами synopsys translate_off/synopsys translate_on тело вырезается, и получается BB. Если же охота эти корки всё же просинтезить в Synplify, тогда нужно добавлять EDIF (можно с Coregen-а получить, но долго плясать нужно, да и в посл версиях кажись вообще отрубили это, а можно ngc2edif.exe подъюзать, но и тут есть нъюансы). NGC-файлы Synplify не хавает, 2009/2010 по крайней мере. Если пошли по пути BB - то нужно обязательно в пути поиска добавить директории где эти самые NGC находятся(-sd/Translate). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Koluchiy 0 1 сентября, 2011 Опубликовано 1 сентября, 2011 · Жалоба Почему не хотите использовать Synplify как внешний синтезатор? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Asb 1 1 сентября, 2011 Опубликовано 1 сентября, 2011 · Жалоба To Kuzmi4 : Спасибо, примерно так и пытаюсь делать. To Koluchiy: К сожалению парсер ISE'а валится на SV синтаксисе и иерархия проекта не строится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mahagam 0 1 сентября, 2011 Опубликовано 1 сентября, 2011 · Жалоба не синплифай, но прецижн. и тоже SV. одно но - корками не пользуюсь вообще. принципиально. прецижн умеет выгонять из SV простейший Verilog-файл, где всё разжёвано. этот файл уже скармливается в xst. проблема встала когда нужно было сделать систему с MicroBlaze`ом. опять же - из SV подсистемы выгоняем чистый верилог, который подключал как сопроцессор к микроблейзу. коряво, конечно, но последовательность вполне работоспособная. ещё можно прямо из прецижна вызывать PlanAhead, но там был лёгкий гемор с подключением ucf. это я оставил на потом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
druzhin 7 2 сентября, 2011 Опубликовано 2 сентября, 2011 · Жалоба PaR Guide for Synplify & Xilinx. Для версии Synplify 2010.09. 01. Положить xilinx_par.opt и xilinx_gp.opt в ...\Synplicity\fpga_xxx\lib\xilinx\ 02. Создать проект в Synplify Premier with DP, к проекту должны быть подключены все файлы *.ndf от ip-cores. Если от какой-либо core нет файла *.ndf, то подключить файлы *.ngc или *.edn. Предполагается структура проекта <проект>\rev_1\par_1. 03. Поставить галку Physical Synthesis, остальные галки по потребностям. 04. Поставить галку Implementation Options - Device - Use Xilinx Xflow. 05. Скопировать файл ucf2sdc_old.exe из \Synplicity\fpga_xxx\bin\ в папку с проектом и выполнить в командной строке: ucf2sdc -osdc <имя_будущего_sdc-файла>.sdc -iucf <имя_текущего_ucf-файла>.ucf. Имена файлов назначить как у топ-модуля. Или выполнить подобный bat-файл. 06. Прицепить этот файл sdc к проекту, прописать в нём в нём временные и прочие констрейны если надо. 07. Создать Design Plan и сохранить, кнопка сверху New Design Plan. 08. Нажать сбоку кнопку Impl Options..., расставить много всяких галок. 09. Нажать сбоку кнопку New P&R, opt-файл оставить умолчальным. Или сделать и подключить к проекту свой opt. 10. В папку ...<проект>\rev_1\ скопировать *.ucf файл. В папку ...<проект>\rev_1\par_1\ скопировать *.ucf файл. 11. Нажать большую кнопку Run. 12. bit-файл будет лежать в ...<проект>\rev_1\par_1\. Файлы для post-PaR моделирования будут лежать в ...<проект>\rev_1\timesim. Опт-файлы в прикреплённом архиве. При таком подходе вы вообще никогда не увидите Xilinx ISE. Исешные файлы будет запускать Synplify в batch-mode. PaR.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 20 сентября, 2011 Опубликовано 20 сентября, 2011 · Жалоба не синплифай, но прецижн. и тоже SV. одно но - корками не пользуюсь вообще. принципиально. прецижн умеет выгонять из SV простейший Verilog-файл, где всё разжёвано. этот файл уже скармливается в xst. проблема встала когда нужно было сделать систему с MicroBlaze`ом. опять же - из SV подсистемы выгоняем чистый верилог, который подключал как сопроцессор к микроблейзу. коряво, конечно, но последовательность вполне работоспособная. ещё можно прямо из прецижна вызывать PlanAhead, но там был лёгкий гемор с подключением ucf. это я оставил на потом. в который раз сравниваю, в этот раз Synplify Pro E-2011.03-SP2 и Precision_Synthesis RTL Plus 2011a.61 синплифай делает это все лучше, и ресурсов меньше и времянка быстрее. но нужно отметить, что пресижн 2011 все-таки сливает не так безнадежно, как предыдущие версии разница в 10% укладывается видимо покупка симплифая (фирмы) синопсисом не пошла симплифаю (тулу) впрок Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 20 сентября, 2011 Опубликовано 20 сентября, 2011 · Жалоба Приветствую! Да по времянке и размеру Synplify хорош. Вот намедни понабилось утрамбовать проект на Microblaze - вместо Spartan6slx150-3 купили плату со 2 speedgrade :( Как на зло проблемы возникли в блоке самого процессора -где то в кеше времнки не сходились больше чем на 1 ns при 10 ns цикле. Пляски с бубнами вокруг опций мапера и PR привели только к потере 3 дней времени :( Пришлось достать барабан - взял файл microblaze_0_wrapper_xst.prj который генерит EDK для синтеза. Скриптом затянул исходники из него в Synplify (ну по пути пришлось декодировать их, а-я-яй! но я потом все стер ;) ) Синтезировал и edif подставил вместо родного ngc. Результат - времянки сошлись с первого захода! И размер на 2% меньше чем результат от xst!!!! И это только блок Microblaze. Надо будет весь EDK проект перегнать так - посмотреть что получится. Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mahagam 0 20 сентября, 2011 Опубликовано 20 сентября, 2011 · Жалоба в который раз сравниваю, в этот раз Synplify Pro E-2011.03-SP2 и Precision_Synthesis RTL Plus 2011a.61 синплифай делает это все лучше, и ресурсов меньше и времянка быстрее. но нужно отметить, что пресижн 2011 все-таки сливает не так безнадежно, как предыдущие версии разница в 10% укладывается видимо покупка симплифая (фирмы) синопсисом не пошла симплифаю (тулу) впрок по мне так банально поддержка SV в полный рост - и больше ничего не требуется. ну и он вроде как Precision меньше на винте места занимает ))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 21 сентября, 2011 Опубликовано 21 сентября, 2011 · Жалоба по мне так банально поддержка SV в полный рост - и больше ничего не требуется. ну и он вроде как Precision меньше на винте места занимает ))) это да - пресижн побольше поддерживает из SV, собственно пару лет назад в порыве интузазизма написал что-то такое, что симплифай не взял (по-моему интерфейсы в синтез пытался засунуть), поэтому и обратил внимание на пресижн но QoR все-таки важная часть, ради нее можно пожертвовать хитрыми SV конструкциями Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mahagam 0 22 сентября, 2011 Опубликовано 22 сентября, 2011 · Жалоба это да - пресижн побольше поддерживает из SV, собственно пару лет назад в порыве интузазизма написал что-то такое, что симплифай не взял (по-моему интерфейсы в синтез пытался засунуть), поэтому и обратил внимание на пресижн но QoR все-таки важная часть, ради нее можно пожертвовать хитрыми SV конструкциями гыгы. у меня пока что проекты простые и не сильно скоростные, мне 10% разницы не критичны. а вот интерфейсы в синтезе - почти в полный рост. потому прецижн. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kas 0 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба Приветствую! [cut] Пришлось достать барабан - взял файл microblaze_0_wrapper_xst.prj который генерит EDK для синтеза. Скриптом затянул исходники из него в Synplify (ну по пути пришлось декодировать их, а-я-яй! но я потом все стер ;) ) Синтезировал и edif подставил вместо родного ngc. Результат - времянки сошлись с первого захода! И размер на 2% меньше чем результат от xst!!!! И это только блок Microblaze. Надо будет весь EDK проект перегнать так - посмотреть что получится. Успехов! Rob. Можно поподробнее про барабан? Как затягивать исходники в Synplify? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 13 февраля, 2012 Опубликовано 13 февраля, 2012 · Жалоба Приветствую! В папке ..../hw/synthesis/ EDK создает файлы .prj для синтеза корок в XST. В частности для каждого microblaze в системе - name_of_mcu_wrapper_xst.prj (например для одного проца и имя по умолчанию - microblaze_0_wrapper_xst.prj) В этом файле список исходников для синтеза - типа : vhdl microblaze_v8_20_b EDK_ROOT\hw\XilinxProcessorIPLib\pcores\microblaze_v8_20_b/hdl/vhdl/microblaze_types_pkg.vhd .... vhdl microblaze_v8_20_b EDK_ROOT\hw\XilinxProcessorIPLib\pcores\microblaze_v8_20_b/hdl/vhdl/microblaze_core.vhd vhdl microblaze_v8_20_b EDK_ROOT\hw\XilinxProcessorIPLib\pcores\microblaze_v8_20_b/hdl/vhdl/microblaze.vhd vhdl work ../hdl/microblaze_0_wrapper.vhd пишем скрипт который берет файлы из списка, декриптует их во временный каталог и добавляет в проект Synplify, туда-же добавляем опции и constarints для синтеза, задаем имя выходного .edf такое же как и у исходного .prj, синтезируем, - убиваем (бережно сохраняем на черный день) в папке ...../hw/implementation соответствующий .ngc и копируем туда полученный .edf. Теперь можно делать tarnslate/map/pr Этот вариант синтеза работает для многих корок кроме тех в которых используется корка блочной памяти. Потому как в коде этой корки при синтезе! XST вызывает внешнюю Cи процедуру для расчета оптимальной упаковки блочной памяти. Соответственно Synplify обламывается в этом месте. (Интересно а Syplify такое можно сделать ?) При необходимости смотрим в ../hw/implementation/ файл .ncf для соответствующей корки и если нужно правим constraints для PR в соответствии с изменившимися именами внутренних цепей. Так что это не барабан - это так себе - маленький бубен :) Успехов! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kas 0 15 февраля, 2012 Опубликовано 15 февраля, 2012 · Жалоба Приветствую! [cut] Так что это не барабан - это так себе - маленький бубен :) Успехов! Rob. Спасибо большое! Все получилось. Моя ошибка была в том, что я пытался сразу всю систему синтезировать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 34 20 февраля, 2012 Опубликовано 20 февраля, 2012 · Жалоба Приветствую! Этот вариант синтеза работает для многих корок кроме тех в которых используется корка блочной памяти. Потому как в коде этой корки при синтезе! XST вызывает внешнюю Cи процедуру для расчета оптимальной упаковки блочной памяти. Соответственно Synplify обламывается в этом месте. (Интересно а Syplify такое можно сделать ?) Давно мне не давала покоя мысль " Как бы сделать так чтобы ничего не надо было делать" - в результате за выходные набросал скрипт который парсит лог после синтеза в Synplify, ищет black_box корки (пока только fifo_generator_8_x), выдергивает требуемые параметры корки и формирует скрипты для синтеза этих корок в XST. После чего эти корки прекрасно цепляются и в тот же Synplify для оценки времянки, и на этапе traslate в ISE. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться