Jump to content

    

Проект в Vivado и Система контроля версий.

Добрый день, форумчане! Встал вопрос о внедрении системы контроля версий (Git) в процесс проектирования с использованием САПР Vivado. Немного покопавшись в этих самых интернетах, вычитал, что народ создает файловую структуру рядом с проектом, в которой хранятся исходники проекта (*.v, *.vhdl, *.xci, *.elf и прочее и прочее). Собственно, эту самую структуру и засовывают в СКВ. Далее вопрос:

Как заполнить эту самую структуру перед коммитом?

*Мысли в слух*

Вариант 1. У меня есть отлаженный проект. И я ручками/не ручками (скриптами) из финальной версии проекта перетаскиваю в файловую структуру для СКВ все исходники. При этом в IDE исходники подключены из папки проекта. Коммитим. Когда вытаскиваем данный коммит (pull) из СКВ ручками/скриптами подсовываем в директорию проекта, затем собираем.

Вариант 2. У меня есть неотлаженный проект. Я по мере допиливания проекта добавляю IP и исходники, затем ручками перетаскиваю во внешние папки и далее в IDE указываю расположение исходников во внешних папках. В финальной версии проекта перед коммитом все файлы уже на своих местах, т.е. в файловой структуре для СКВ. Коммитим. При вытаскивании из СКВ файлы исходников автоматически подменятся и останется только собрать проект.

Вариант 3. Накатать скрипт, который из финальной версии проекта вытаскивает нужные исходники и генерирует скрипт, который на основании исходников создает проект с нуля (recreate). Все это добро коммитится. 

Вариант 4. Мыслю вообще не в том направлении.

Share this post


Link to post
Share on other sites

Приветствую!

Думаю что единого правильного решения пока нет. Каждый делает так как будет ему удобно и привычно.

Я например сразу делаю все исходники внешними к проекту. Сам же проект воссоздается скриптом.  Удобно при работе с СКВ, но и минусы есть так как надо не забывать експортировать изменения в проекте (в основном BD, и сам файл проекта). Но это легко автоматизируется скриптами. 

Удачи! Rob.

Share this post


Link to post
Share on other sites
13 minutes ago, RobFPGA said:

Приветствую!

Думаю что единого правильного решения пока нет. Каждый делает так как будет ему удобно и привычно.

Я например сразу делаю все исходники внешними к проекту. Сам же проект воссоздается скриптом.  Удобно при работе с СКВ, но и минусы есть так как надо не забывать експортировать изменения в проекте (в основном BD, и сам файл проекта). Но это легко автоматизируется скриптами. 

Удачи! Rob.

В Вашем случае исходные файлы проекта лежат извне и Вы с ними оперируете, как в части Vivado, так и в части СКВ. Но если я знаю, какие файлы моего проекта для сборки необходимо коммитить, что мне мешает в .gitignore загнать весь мусор и работать из директории проекта? В чем прелесть Вашего подхода?

Share this post


Link to post
Share on other sites

Приветствую!

24 minutes ago, 5EN5E said:

В чем прелесть Вашего подхода?

Мне такой подход нравится - в этом и прелесть :biggrin:

Проблема в вашем варианте может быть в том что  проект Vivado тяжело переносим - при попытке clone на другую машину вы скорее всего получите нерабочий проект с кучей глюков из за путей файлов.

Удачи. Rob.

Share this post


Link to post
Share on other sites

Поищите апп ноте от Xilinx по поводу использования СКВ, там есть рекомендации как  заводить над их проектами СКВ. Но вообщем RobFPGA по сути сказал что там написано.

Share this post


Link to post
Share on other sites

RobFPGA, vitus_strom, спасибо большое за ответы, мрака в голове стало чуть меньше:smile:

Edited by 5EN5E

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now