Я пытаюсь изменить сценарий tcl, созданный Vivado 2018.3, для управления версиями. Как только я попытаюсь поместить все файлы VHDL в один каталог (и соответствующим образом изменить сценарий), сценарий не сможет найти все файлы при вызове source build.tcl
Я пытался следовать инструкциям по управлению версиями для старых версий Vivadoversion, подобных этой: https://github.com/tobiasrj20/Vivado-Version-Control-Example.
К сожалению, я не смог найти инструкции для Vivado 2018.3, поскольку сценарий примера выглядит иначе, чем то, что я получил от Vivado.
Структура папки Vivado Project.srcs выглядит следующим образом.
- constr_1
-
- imports
-
-
- project_1 <—Here is the constraints file
-
-
sim_1
-
- sources_1
-
-
- bd
-
-
-
-
- contains some stuff I don’t use
-
-
-
-
- imports
-
-
-
-
- Downloads <— contains a part of vhd files
-
-
-
-
-
- new <— contains another part of vhd files
-
-
-
-
- new <— contains other vhd files
-
Моя цель — переместить все файлы vhd в одну папку, например, под названием «src». И соответствующим образом изменить сценарий tcl.
Я изменил части в скрипте в соответствии с руководством, приведенным выше. И заменил все абсолютные пути на относительные пути. Например так:
Оригинальный сценарий
set files [list [file normalize «${origin_dir}/fpga_top_v2.srcs/sources_1/new/clk_gen_25M.vhd» ]
Изменено:
set files [list [file normalize «$ $origin_dir/src/clk_gen_25M.vhd» ]
Затем есть эта часть, где я не уверен, нужно ли мне ее менять.
# Set ‘sources_1’ fileset file properties for local files set file «new/clk_gen_25M.vhd» set file_obj [get_files -of_objects [get_filesets sources_1] [list «*$file»]] set_property -name «file_type» -value «VHDL» -objects $file_obj
Поскольку консоль tcl говорит следующее во время исходного процесса:
# set file «new/clk_gen_25M.vhd» WARNING: [Vivado 12-818] No files matched ‘*new/clk_gen_25M.vhd’ # set file_obj [get_files -of_objects [get_filesets sources_1] [list «*$file»]] # set_property -name «file_type» -value «VHDL» -objects $file_obj ERROR: [Common 17-55] ‘set_property’ expects at least one object. Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.
Приносим извинения, если этот вопрос задавался раньше, но я не смог найти ответов на этот вопрос, особенно для версии Vivado 2018.3.
Источник: