Git 如何修改Vivado 2018.3生成的用于版本控制的tcl脚本

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脚本来说非常不寻常(去掉它

我正在尝试修改Vivado 2018.3创建的用于版本控制的tcl脚本。只要我尝试将所有VHDL文件放在一个目录中(并相应地修改脚本),在调用source build.tcl时脚本就找不到所有文件

我尝试按照旧版本的版本控制说明进行操作,如以下版本:

不幸的是,我找不到Vivado 2018.3的说明,因为示例脚本看起来与我从Vivado获得的不同

Vivado Project.srcs文件夹的结构如下所示

  • 施工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