Git 如何修改Vivado 2018.3生成的用于版本控制的tcl脚本
我正在尝试修改Vivado 2018.3创建的用于版本控制的tcl脚本。只要我尝试将所有VHDL文件放在一个目录中(并相应地修改脚本),在调用source build.tcl时脚本就找不到所有文件 我尝试按照旧版本的版本控制说明进行操作,如以下版本: 不幸的是,我找不到Vivado 2018.3的说明,因为示例脚本看起来与我从Vivado获得的不同 Vivado Project.srcs文件夹的结构如下所示Git 如何修改Vivado 2018.3生成的用于版本控制的tcl脚本,git,tcl,vivado,Git,Tcl,Vivado,我正在尝试修改Vivado 2018.3创建的用于版本控制的tcl脚本。只要我尝试将所有VHDL文件放在一个目录中(并相应地修改脚本),在调用source build.tcl时脚本就找不到所有文件 我尝试按照旧版本的版本控制说明进行操作,如以下版本: 不幸的是,我找不到Vivado 2018.3的说明,因为示例脚本看起来与我从Vivado获得的不同 Vivado Project.srcs文件夹的结构如下所示 施工1 进口 project_1此命令调用对于Tcl脚本来说非常不寻常(去掉它
- 施工1
- 进口
- project_1此命令调用对于Tcl脚本来说非常不寻常(去掉它周围的额外字符以在列表中使用结果):
由于
仅在后跟字母数字(或$
或
或:
..(
或)
..{
;中的详细信息)时才是特殊的,因此您可以创建一个包含以下内容的串联文件名:}
- 文本字符串
$
- 新行(!)
变量的内容origin\u dir
- 文本字符串
/src/clk_gen_25M.vhd
我认为你不想要前两部分。一种更为传统的形式是:
file normalize $origin_dir/src/clk_gen_25M.vhd
您也可以尝试使用
:文件联接
file normalize [file join $origin_dir src/clk_gen_25M.vhd]
如果
具有完整的路径名,则无需对origin\u dir
文件联接的结果进行
此命令调用对于Tcl脚本来说非常不寻常(去掉其周围的额外字符以在列表中使用结果): 由于文件规范化
仅在后跟字母数字(或$
或
或:
..(
或)
..{
;中的详细信息)时才是特殊的,因此您可以创建一个包含以下内容的串联文件名:}
- 文本字符串
$
- 新行(!)
变量的内容origin\u dir
- 文本字符串
我认为你不想要前两部分。一种更为传统的形式是:/src/clk_gen_25M.vhd
file normalize $origin_dir/src/clk_gen_25M.vhd
您也可以尝试使用
:文件联接
file normalize [file join $origin_dir src/clk_gen_25M.vhd]
如果
具有完整的路径名,则无需对origin\u dir
文件联接的结果进行
以下是我如何获得一个工作tcl脚本的: 假设我对以下文件夹结构使用tcl脚本:文件规范化
- src
- constr以下是我如何得到一个工作的tcl脚本:
假设我对以下文件夹结构使用tcl脚本:
- src
- 谢谢你的回答。你说得对,一定是复制粘贴错误。我找到了一种有效的方法。我会在额外的评论中详细说明。谢谢你的回答。你说得对,一定是复制粘贴错误。我找到了一种有效的方法。将“设置导入的文件[import_files-fileset src_1$files]”替换为“add_files-norecurse-fileset$obj$files”这将src文件链接到vivado项目,而不是复制它们将“设置导入的文件[import_files-fileset src_1$files]”替换为“add_files-norecurse-fileset$obj$files”这将src文件链接到vivado项目,而不是复制它们
file normalize "$ $origin_dir/src/clk_gen_25M.vhd"
file normalize $origin_dir/src/clk_gen_25M.vhd
file normalize [file join $origin_dir src/clk_gen_25M.vhd]
set _xil_proj_name_ "<project name>"
set origin_dir "."
set origin_dir [file dirname [info script]]
create_project ${_xil_proj_name_} ./${_xil_proj_name_}
create_project ${_xil_proj_name_} $origin_dir/${_xil_proj_name_}
# Set 'sources_1' fileset object
[file normalize "${origin_dir}/src/hdl/<file name>.vhd"]\
set file "hdl/<file name>.vhd" set file_obj [get_files -of_objects [get_filesets sources_1] [list "*$file"]] set_property -name "file_type" -value "VHDL" -objects $file_obj
# Set 'sim_1' fileset object
- 谢谢你的回答。你说得对,一定是复制粘贴错误。我找到了一种有效的方法。我会在额外的评论中详细说明。谢谢你的回答。你说得对,一定是复制粘贴错误。我找到了一种有效的方法。将“设置导入的文件[import_files-fileset src_1$files]”替换为“add_files-norecurse-fileset$obj$files”这将src文件链接到vivado项目,而不是复制它们将“设置导入的文件[import_files-fileset src_1$files]”替换为“add_files-norecurse-fileset$obj$files”这将src文件链接到vivado项目,而不是复制它们
- constr以下是我如何得到一个工作的tcl脚本:
假设我对以下文件夹结构使用tcl脚本:
- project_1此命令调用对于Tcl脚本来说非常不寻常(去掉它周围的额外字符以在列表中使用结果):
由于