Перейти к содержанию
    

Кстати, у Альтеры есть презентация по теме: Quartus II Software Tcl Scripting (ODSW1190)

И прямая ссылка на материалы для тех, кто не хочет регистрироваться.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

TCL scripts for FPGA (Xilinx)

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А можно запустить скрипт без помощи 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Скрит для Vivado?

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

 

Удачи! Rob.

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так а в чем проблема? Файл 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.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Папка 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?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

...

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

 

Удачи! Rob.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Удачи! Rob.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...