Jump to content
    

ISE - автоматизация создания битстримов для нескольких UCF

Добрый день! Не знаю как правильно сформулировать заголовок )

Реально ли в ISE 14,7 решить такую задачу. Допустим, на плате имеется 20шт плисин (xilinx), соединенных некой шиной с максимально короткими дорожками. На них грузим некие прошивки которые параллельно выполняют некие расчеты. Все прошивки по функционалу одинаковы, но - у ПЛИСов задейстуются при этом разные выводы.
Т.е. у условного FPGA #1 - светодиод висит на ножке AJ1, а на FPGA #2 - такой же по функциям светодиод, висит на ножке В15.
Получается что прошивки отличаются только содержимым строк NET ucf файла, где прописано присвоение ножек к переменным wire/reg, и больше ничем.

Прошивки в массив из плис я загружаю через самописный загрузчик по параллельной шине select map, т.е. получается что мне нужны 20шт разных файлов с битстримом.

Можно ли каким-то образом ISE сконфигурировать так, чтобы у меня был один проект, в который подключено 20шт UCFов (для каждой плис свой), и при нажатии условной кнопки generate code он создавал мне 20шт .bit файлов с битстримами?

Share this post


Link to post
Share on other sites

Конечно, ваша задача решается с помощью скриптов. Компиляцию в ISE можно запускать из командной строки. Например, вот - https://github.com/duskwuff/Xilinx-ISE-Makefile

Значит, берем любой скриптовый язык, и пишем "запустить ISE 20 раз в параллель".

Я бы делал не один проект с разными настройками, а создал бы 20 проектов, ссылающихся на одни и те же файлы исходников.

Share this post


Link to post
Share on other sites

В целом понятно что это через make скрипты и запуск из командной строки делается, но неужели нет какого-то метода оптимизировать процесс place and route чтобы он при каждой смене ucf'а с пинами не переразводил заново абсолютно всю структуру?

Просто пересборка "в лоб" этих проектов даже на очень мощном ПК занимает несколько часов, и это сильно затрудняет процесс отладки. Напоминает времена перфокарт - пишешь код на бумаге и на следующий день дают листинг отработки кода )

Share this post


Link to post
Share on other sites

Говорят http://course.ece.cmu.edu/~ece545/F10/resources/Virtex5/xapp918.pdf, что в ISE есть инкрементальная компиляция. Она позволит вам зафиксировать разводку "ядра" проекта. Но проблема подсовывания различных ucf остается. Тут подсказать не могу, я мало работал с ISE.

Share this post


Link to post
Share on other sites

Класс- похоже это то что нужно. Спасибо за грамотную ссылку! ) UCF'ы можно как раз через мейкфайл подсовывать, генерируя его "на лету" внешним скриптом, это не сложно. Буду пробовать, спасибо большое!

Share this post


Link to post
Share on other sites

ну как бы сэкономить можно только на синтезе. имплементация обязана быть для каждого ucf. тк просто так "переставить выводы" без нарушения времянок (и др. вещей)- крайне редкое событие.

Share this post


Link to post
Share on other sites

блин ( Синтез быстро происходит, основное время занимает имплементация...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...