Я только что заявил об использовании Vivado в новом проекте и хотел бы поместить файлы проекта в SVN.
Кажется, Vivado создает все файлы проекта под именем проекта (скажем, proj1):
/<path to the project>/proj1/
proj1.xpr
proj1.srcs/
constrs_1/
new/
const1.xdc
proj1.runs/
proj1.data/
proj1.cache/
Мой вопрос: какие файлы мне нужно поместить в SVN, кроме файлов XDC и XPR?
Ответы:
Xilinx создаст видео YouTube (вздох), чтобы справиться с этим. Вот ссылка на видео
http://www.xilinx.com/training/vivado/vivado-version-control-overview.htm
Вот мое резюме видео (8 минут)
Прежде чем ты начнешь
Если вам действительно нравится полный контроль, Xilinx предлагает полностью отказаться от GUI и делать все в командной строке, а затем вы знаете, что является источником, а что нет.
В противном случае Xilinx понимает, что проекты Vivado не предназначены для контроля версий. НЕ ПРОВЕРИТЬ ВЕСЬ ПРОЕКТ. Но продолжайте читать для подсказок ...
базисный
Конечно, все, что вы пишете вне инструмента Vivado, должно быть зарегистрировано.
Проверьте следующие файлы
Блоки IP
Если вы используете блоки IP, сгенерируйте IP в уникальной папке и проверьте все.
Checkpoints
Если вы хотите иметь возможность перезапускать части потока без выполнения всего, проверьте файлы контрольных точек.
Мое приложение
Если бы инструменты Xilinx были эффективными, я бы не советовал проверять файлы dcp, но для их запуска требуется очень много часов, это может быть оправдано ценой уродливой системы контроля версий.
В видео не говорится о примитивных файлах проекта Vivado (* .xpr), поэтому вот мое предложение:
Альтернатива, которую рекомендует Xilinx (которая на самом деле является хаком, не подходит для контроля версий), - запускать
File -> Write Project Tcl
команду каждый раз, когда вы хотите зафиксировать, а затем фиксировать этот файл TCL для контроля версий. Когда вы обновляете свою локальную папку, вам нужно повторно запустить этот файл TCL, чтобы создать все файлы проекта. Тьфу.источник
Vivado 2014.1 позволяет использовать сценарии .tcl для регенерации проектов.
Для этого, когда ваш проект открыт, зайдите в File -> Write Project tcl.
Основные проекты
Я обычно храню свои исходники и скрипт .tcl в папке за пределами каталога проекта. Ядра xilinx IP, созданные в рамках проекта, можно скопировать в другое место, щелкнув правой кнопкой мыши ядро и выбрав «Копировать IP». И удалив оригинал. Когда сценарий tcl генерируется, он создает относительные ссылки на эти файлы. Обычно так выглядит моя структура каталогов:
Только файлы IP .xml и .xci должны быть зафиксированы. (И даже это не является необходимым, технически, см. Примечания в конце).
Это то, что делается для git, обратите внимание на отсутствие project.xpr или каталогов проектов.
Когда я запускаю
genproject.tcl
, он создает другой каталог для проекта.Эта новая папка полностью одноразовая. Чтобы создать эту структуру, я модифицирую скрипт tcl следующим образом.
Я изменяю первые 3 строки следующим образом:
Это создает новый каталог проекта и новый проект в этом каталоге.
Затем я изменяю пути, чтобы указать на правильные места. Возможно, вам придется изменить эти пути в других местах скрипта.
Я также изменяю дизайн прогонов для IP-ядер, как видно из этого ответа .
Файлы .wcfg могут быть включены аналогично ip и srcs.
На этом обработка заканчивается для более простых проектов (содержащих только источники и IP, без блок-схем). Для сохранения данных блок-схемы необходимо также сделать следующее.
Блок-схема проектов
Чтобы сохранить структурную схему, с открытой структурной схемой выберите Файл -> Экспорт -> Блок-схема в Tcl и сохраните ее в том же каталоге, что и другой файл tcl.
Затем я создал
Generate_Wrapper.tcl
скрипт, который создает файлы обертки блок-схемы, поэтому вам не нужно делать это вручную. Папка project / project.srcs используется для хранения данных bd, но она по-прежнему полностью доступна, поскольку bd хранится в сценарии tcl. Сохраните это с двумя другими.В конце
genproject.tcl
я добавляю следующие строки для генерации блок-схемы и оболочек:Для проектов без исходного кода (просто блок-схема) мой git commit выглядит следующим образом:
Чтобы все сгенерировать, беги
genproject.tcl
.Вы можете даже объединить все это в одно, если вы особенно эффективны, я еще не дошел до этого.
Пользовательские компоненты: проект компонента
Еще одно краткое замечание по созданию пользовательского компонента. Если у вас есть component.xml, добавьте его в список источников tcl:
А затем также добавьте следующий раздел:
Это включает в себя дизайн компонента в проект для легкой настройки.
Пользовательские компоненты: ссылка на ваш компонент
Вы можете уточнить свой путь репо своего компонента следующим образом:
В моей папке репо есть отдельные папки, содержащие файлы .xml. Таким образом, вы ссылаетесь не на папку, содержащую .xml, а на ее родительскую. Например:
Как мы запускаем эти tcl-скрипты?
Откройте Vivado и, не открывая никаких проектов, выберите Сервис -> Запустить сценарий TCL и перейдите к своему сценарию.
Дополнительные примечания TCL
Каждая команда, которую вы запускаете в Vivado, отображается в консоли tcl как команда tcl. Например, когда я сгенерировал новый IP-адрес Xilinx с помощью графического интерфейса, это появилось в консоли tcl:
Это означает пару вещей:
На самом деле вам даже не нужно сохранять ip-ядра xilinx - как только они будут такими, какими вы их хотите, скопируйте команды в скрипт tcl, и вам больше не нужно будет фиксировать ip /.
укажите IP-каталог с аргументом -dir после -module_name, чтобы поместить его в любое место (по умолчанию он находится в project.srcs).
В основном все, что вы делаете в графическом интерфейсе, можно сделать в tcl. Самый простой способ увидеть, как работает xilinx - это сделать это в графическом интерфейсе, а затем посмотреть, что находится в консоли TCL.
В этом огромном PDF- файле подробно описаны все команды vivado tcl.
источник
Существует обучающее видео Xilinx, в котором объясняется, как использовать системы контроля версий с Vivado. По сути, список файлов зависит от используемых вами функций.
Если вы используете подход на основе сценариев (как это делает vermaete), вы можете заставить Vivado записывать все промежуточные / временные файлы в отдельный каталог ( см. Здесь ), чтобы вы могли легко разделить их.
В противном случае вы можете очистить папку сборки с помощью Vivado, и все, что осталось, может быть поставлено под контроль версий.
источник
Пожалуйста, ознакомьтесь с этой веткой на форумах Xilinx:
http://forums.xilinx.com/t5/Implementation/What-files-to-put-under-revision-control-for-consistent-build/td-p/174232
источник