Набор Tcl-скриптов для автоматизации разработки FPGA-проектов в САПР Vivado.
- Требуемая структура проекта
- Подключение как Git Submodule
- Использование Tcl-скриптов
- Требования
- License
Для корректной работы скриптов Ваш проект должен иметь следующую структуру:
project_root/
├── build/
├── ip/
├── files/
│ ├── sources/
│ ├── simulations/
│ └── constraints/
├── scripts/
├── ...
Описание директорий:
| Папка | Назначение |
|---|---|
build/ |
Генерируемый Vivado-проект (сгенерируется при использовании скриптов локально) |
ip/ |
IP-ядра (.xci) |
files/sources/ |
HDL-исходники (.v .sv .mem .vh) |
files/simulations/ |
Testbench и simulation files (.v .sv .mem .vh) |
files/constraints/ |
XDC constraints |
scripts/ |
Tcl automation scripts |
Рекомендуется подключать репозиторий как submodule внутрь FPGA-проекта.
Добавление submodule:
git submodule add <repository_url> scriptsДля обновления submodule можно использовать команду:
git submodule update --init --recursiveВаш локальный проект на данном этапе должен выглядить следующим образом:
Скрипт автоматического создания или пересборки проекта. Скрипт автоматически собирает проект исходя из файлов в каталогах files/ и ip/. (IP-ядра всегда подтягиваются в файлсет sources_1)
Для подключения скрипта выполните в TCL Console:
cd <path to local project>
source scripts/build_project.tclПосле этого станет доступна команда build_project <part> внутри Vivado.
Создание проекта для конкретной FPGA:
build_project <part>Создание проекта для FPGA xc7a100tcsg324-1:
build_projectСкрипт создания новых файлов. Поддерживаются файлы формата .v .sv .mem .vh для дизайна и симуляции, .xdc для проектных ограничений. Файлы автоматически создаются в соответствующем каталоге files/* и подтягиваются в проект.
Пример использования:
source scripts/create_file.tcl
new_source_file my_module.v
new_simulation_file my_testbench.sv
new_constraint_file my_constraints.xdcСкрипт удаления файлов проекта. Поддерживаются файлы формата .v .sv .mem .xdc .vh .xci. Данные файлы удаляются из директорий files/* и ip/. Для получения проекта без этих файлов после удаления рекомендую пересобрать проект.
Пример использования:
source scripts/delete_file.tcl
delete_source_file my_module.v
delete_simulation_file my_testbench.sv
delete_constraint_file my_constraints.xdc
delete_ip_file my_ip.xciДанный скрипт необходим в том случае, если вы создаете файлы через GUI интерфейс САПР Vivado или хотите экспортировать IP-ядро из проекта. Поддерживаются файлы формата .v .sv .mem .xdc .vh .xci. Данные файлы экспортируются в соответствующие директории files/* или ip/ в зависимости от введенной команды.
Пример использования:
source scripts/export_sources.tcl
export_design_source abc.v
export_simulation_source testbench.sv
export_constraints_source constraints.xdc
export_ip_source my_ip.xciПри использовании команд, указанных ниже, смотрите выводимые в консоль подсказки.
source scripts/build_project.tcl
source scripts/create_file.tcl
source scripts/delete_file.tcl
source scripts/export_sources.tclВ случае, если Вы нашли ошибку в скриптах, то делайте PR - исправим :)
Также если у Вас есть интересные идеи для новых скриптов, то делайте fork и также закидывайте PR *=
- САПР Vivado
- Tcl support
- Git
MIT License