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

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 файлов с битстримами?

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


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

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

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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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