Jump to content

    

tcl на FPGA

В догонку от того же товарища на гитхабе:

TCL scripts for FPGA (Xilinx)

А можно запустить скрипт без помощи Vivado (tool->Run tcl script), с помощью батника например?

Спасибо за помощь.

 

Share this post


Link to post
Share on other sites

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

 

А можно запустить скрипт без помощи Vivado (tool->Run tcl script), с помощью батника например?

Спасибо за помощь.

Скрит для Vivado?

vivado -help
vivado -mode tcl     -source  script.tcl  [-tclargs  arg1 arg2]
vivado -mode batch  -source  script.tcl   [-tclargs  arg1 arg2]

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
Приветствую!

 

Скрит для Vivado?

vivado -help
vivado -mode tcl     -source  script.tcl  [-tclargs  arg1 arg2]
vivado -mode batch  -source  script.tcl   [-tclargs  arg1 arg2]

 

Удачи! Rob.

 

Да. Спасибо. Получилось.

А зачем нужны аргументы arg1 и arg2?

Share this post


Link to post
Share on other sites

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

Да. Спасибо. Получилось.

А зачем нужны аргументы arg1 и arg2?

А чтобы было ... :) ... в качестве параметров при запуске script.tcl

 

Удачи! Rob.

 

Share this post


Link to post
Share on other sites

Использую tcl в системе контроля версий для сборки проекта из исходников репозитория, скопированных в локальную папку.

 

В локальную папку из репозитория залил write_project.tcl файл, полученный из vivado, и набор исходников в папке .../project_1/project_1.src/source_1/new/

 

Запуск tcl скрипта должен привести к сборке проекта с исходниками в папке project_1/project_1.src/source_1/new/

 

Но после запуска появляется ошибка

 

ERROR: [Common 17-53] User Exception: Project already exists on disk, please use '-force' option to overwrite: 
    D:/example_1v/project_1/project_1.srcs

 

если добавлю -force, то папка project_1/project_1.src/source_1/new/ с исходниками удаляется.

 

В скрипте добавление файлов прописано

 

# Set 'sources_1' fileset object
set obj [get_filesets sources_1]
set files [list \
"[file normalize "$origin_dir/project_1/project_1.srcs/sources_1/new/BRAM_Memory_24x24.v"]"\
"[file normalize "$origin_dir/project_1/project_1.srcs/sources_1/new/kernel_3x3.v"]"\
]

add_files -norecurse -fileset $obj $files

 

Если исходники вынесу по адресу $origin_dir/project_1.srcs/sources_1/new/ , т.е. за пределы папки project_1 и отредактирую пути в скрипте, то новым проектом файлы подхватываются, но каталог project_1.srcs будет находится за пределами папки project_1.

 

Как отредактировать tcl файл, чтобы происходила сборка проекта в требуемом каталоге с исходниками на своих местах?

tcl файл прилагаю.

 

 

write.rar

Share this post


Link to post
Share on other sites

Так а в чем проблема? Файл D:/example_1v/project_1/project_1.srcs действительно уже есть на диске, и попытка его перезаписи приводит к ошибке? Ну так удаляйте его каждый раз прямо в теле скрипта

rm -f D:/example_1v/project_1/project_1.srcs

Share this post


Link to post
Share on other sites
Так а в чем проблема? Файл D:/example_1v/project_1/project_1.srcs действительно уже есть на диске, и попытка его перезаписи приводит к ошибке? Ну так удаляйте его каждый раз прямо в теле скрипта

rm -f D:/example_1v/project_1/project_1.srcs

 

Хотелось бы:

1. Получить из репозитория в локальную папку example_1v файлы : project_1/project_1.src/... и write_prj.tcl.

2. Запустить write_prj.tcl и получить готовый проект в каталоге project_1 со всеми остальными папками .src, .sim и т.д., и подхваченными исходниками без лишних манипуляций с файлами исходниками.

 

По первому пункту вопросов нет, по второму - требуются дополнительные манипуляции с файлами исходниками в tcl файле и локальной папке example_1v.

Share this post


Link to post
Share on other sites

Папка project_1/project_1.src управляется средой, поэтому при создании проекта из скрипта перезаписывается. Исходники можно перенести в другую папку, при создании файла write_prj.tcl будут ссылки на файлы в ней, руками править не нужно.

 

 

 

Share this post


Link to post
Share on other sites
Папка project_1/project_1.src управляется средой, поэтому при создании проекта из скрипта перезаписывается. Исходники можно перенести в другую папку, при создании файла write_prj.tcl будут ссылки на файлы в ней, руками править не нужно.

 

Хорошо, перенес я например исходники в папку project_1/verilog, в скрипте указал, что исходники находятся в данной папке, после запуска скрипта получил проект со скопированными исходниками в папке project_1.src. В процессе работы начинаются правки исходников в папке project_1.src. Делаю commit текущих исходников, в репозитории они сохранятся в project_1/project_1.src. Потом при клонировании репозитория необходимо будет опять переносить исходники в папку project_1/verilog, запускать скрипт для создания проекта.

Можно ли обойтись без данных манипуляций с переносом в папку project_1/verilog?

Share this post


Link to post
Share on other sites

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

Хорошо, перенес я например исходники в папку project_1/verilog, в скрипте указал, что исходники находятся в данной папке, после запуска скрипта получил проект со скопированными исходниками в папке project_1.src.

...

Если Вы в скрипте делаете add_files ... а не import_files ... то исходники остаются там где и были и не переносятся в project_1.src. В проекте в таком случае будут линки на project_1/verilog/file...

 

Удачи! Rob.

 

Share this post


Link to post
Share on other sites
Приветствую!

Если Вы в скрипте делаете add_files ... а не import_files ... то исходники остаются там где и были и не переносятся в project_1.src. В проекте в таком случае будут линки на project_1/verilog/file...

 

Удачи! Rob.

 

Спасибо! уже догадался: команды из GUI для tcl, когда импортируем файлы без копирования!

Share this post


Link to post
Share on other sites

Использую tcl для парсинга verilog кода. Удобно из кода получать готовые сишные хедеры со всеми смещениями внутри SystemVerilog'ских структур, именованными константами размеров массивов, смещений шин в памяти и пр.

Share this post


Link to post
Share on other sites

Граждане, подскажите. Как на TCL проресетить FPGA? Т.е. сделать так, чтобы сконфигурированная FPGA была не сконфигурирована и, соответственно, совсем не работала.

Нужно для снижения потребления/тепловыделения в случае аварий во время тестирования.

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