Попытка автоматизировать процесс сборки fpga в Xilinx с помощью скриптов python

Я хочу автоматизировать весь процесс создания файлов ngs, bit и mcs в xilinx и автоматически связать эти файлы с определенными папками в репозитории svn. Что мне нужно знать, так это то, что в задней части графического интерфейса Xilinx создается файл журнала, в котором записываются все команды, которые я запускаю, например, открытый проект, загрузка файла, синтез и т. д.

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

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

Спасибо!


person serendipity    schedule 24.05.2013    source источник
comment
Мне нужно сделать что-то подобное, и это появилось в результатах поиска. Я нашел эту тему на форуме Xilinx. полезно. В нем упоминается, что существует файл .cmd_log, в котором перечислены все командные строки, используемые графическим интерфейсом Xilinx для синтеза, реализации и т. д. В этом же потоке также есть ссылки на некоторые сценарии, которые некоторые люди уже написали, такие как здесь.   -  person Jared    schedule 30.05.2013
comment
Привет, меня заинтересовал твой проект. Достигли ли вы каких-то хороших результатов или этот проект как-то открыт? В настоящее время я собираюсь опубликовать библиотеку HDL, которая поддерживает несколько поставщиков, инструменты, потоки проектирования и FPGA. Я также использую python в качестве кроссплатформенного языка сценариев (windows + linux) и некоторые сценарии bash/powershell для инкапсуляции всех потоков xst, vivado, coregen, iSim/vSim/xSim/ghdl. Может быть, мы можем поделиться некоторыми ресурсами.   -  person Paebbels    schedule 03.09.2014
comment
Использование сценария дает вам разные папки, такие как синтез, реализация, ... Проверьте эти папки, вы обнаружите, что   -  person Anjaneyulu    schedule 10.03.2017


Ответы (2)


Что ж, это, безусловно, хорошая идея проекта, но и большой объем работы. Всегда есть причина, по которой была создана IDE — простой поиск дает «Руководство пользователя инструментов командной строки» для различных версий Xilinx ISE, лайк для 14.3, 380 страниц о

  • Обзор и список функций
  • Входные и выходные файлы
  • Синтаксис и параметры командной строки
  • Информация об отчетах и ​​сообщениях

ISE — это графический интерфейс для различных исполняемых файлов командной строки, большинство из которых находится в подпапке 14.5/ISE_DS/ISE/bin/lin/ (в данном случае: исполняемые файлы Linux для версии 14.5) корневого каталога установки ISE. Вы можете просмотреть текущие параметры для каждого действия, щелкнув правой кнопкой мыши элемент в дереве процессов и выбрав «Свойства процесса».

На стороне Python рассмотрите возможность использования subprocess< /а> модуль:

Модуль подпроцесса позволяет создавать новые процессы, подключаться к их каналам ввода/вывода/ошибок и получать их коды возврата.

Это та точка входа, которую вы искали?

person f4lco    schedule 24.05.2013
comment
Большое спасибо за отличный ответ! Я думаю, что это действительно полезно и достаточно хорошо, чтобы начать работу. Я буду держать вас в курсе прогресса. Спасибо еще раз! - person serendipity; 26.05.2013
comment
Я посмотрел в упомянутой вами папке для версии 14.2, и путь выглядит так 14.2/ISE_DS/ISE/lib/lin, а папка lin содержит только файлы .so, которые являются просто общими библиотеками и требуют специальной программы для открытия. Должен ли я искать файлы tcl? - person serendipity; 28.05.2013

Как сказал Финеас, то, что вы пытаетесь сделать, — довольно сложная задача.

Я был там, сделал это, и на этом пути есть бесчисленные проблемы. Например, если вы хотите переместить сгенерированные файлы в определенные папки, как вы классифицируете эти файлы, чтобы выяснить, какие файлы являются какими? Я создал проект под названием X-MimeTypes, который пытается классифицировать файлы, но затем вам нужно инструмент для анализа базы данных типов пантомимы EDA и использования ее для определения файлов.

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

  1. Чтобы иметь возможность автоматически перемещать сгенерированные файлы по заранее определенным путям. Из того, что вы говорите, кажется, что вы хотите сделать это, чтобы упростить процесс управления версиями? Уже существует инструмент, который делает это за вас на основе «дизайнерских структур», которые вы создаете и которыми можете поделиться в команде. Инструмент называется Scineric Workspace, так что ознакомьтесь с ним. Он также имеет встроенную поддержку Git и SVN, которая игнорирует вещи в соответствии со структурой дизайна и в большинстве случаев фильтрует все созданные вещи инструментами поставщика, не беспокоясь об этом.

  2. Вы ищете файл журнала, в котором показаны все выполненные команды. Как сказал Финеас, вы можете ознакомиться с руководствами пользователя инструментов командной строки для ISE, но имейте в виду, что запускаемые команды снова изменились в Vivado. Файл журнала каждого процесса также обычно указывает точную команду с ее параметрами, которые были вызваны. Это должно быть близко к верхней части отчета. Если вы ищете один файл журнала, содержащий все, его не существует. Опять же, Scineric Workspace поддерживает вызов потоков от основных поставщиков (ISE, Vivado, Quartus) и создает один файл журнала для всех процессов вместе, при этом позволяя каждому процессу также создавать свой собственный файл журнала. Ошибки, предупреждения и т. д. также помечены должным образом в этом большом отчете. Scineric также имеет режим оболочки tcl, поэтому ваш инструмент Python может запускать его в фоновом режиме и анализировать полный файл журнала, который он создает.

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

Надеюсь это поможет,

Жако

person Jaco Naude    schedule 29.05.2013