vivado使用tcl命令重建工程

TCL重建工程

vivado的工程一般都比较庞大,在github等平台上进行管理时,直接上传整体工程是比较麻烦的,这时候,使用TCL保存工程,并进行工程恢复就十分有必要了。
使用TCL保存工程十分简单,以笔者专栏中的USB2.0传输ADC数据的工程为例
在这里插入图片描述
点击Write Tcl即可,TCL生成完毕,会在当前的工程目录下保存。
这时候的TCL还不能直接进行使用,需要进行一些更改
在这里插入图片描述
以这部分为例,其加载的本地目录文件路径如图所示,我们可以将TCL和图中所示的这些文件直接放入一个文件夹中,但笔者为了重建工程的逻辑更加清晰,加这些文件分别放在了不同文件夹下,那么这些目录名字也要对应修改
在这里插入图片描述

其中ip文件夹存放ip核的xci文件,verilog文件夹存放源文件,tb文件夹存放仿真文件与仿真图,xdc文件夹存放约束文件。
在这里插入图片描述

相应的TCL文件中,也需要进行修改,进行文件路径对应,注意,所用用到的文件,都需要保证其路径的正确。
如果手动从每个ip文件夹下提取xci文件,会比较麻烦。可以通过TCL脚本完成这个工作,新建一个TCL脚本,将其放在图中所示的目录下进行运行,运行TCL可以使用vivado的TCL工具,也可以安装Active TCL进行脚本的运行在这里插入图片描述
脚本中的具体内容如下所示

# 获取当前目录
set currentDir [pwd]
puts "当前目录是: $currentDir"

# 检索当前目录下的所有一级文件夹
set searchDirs [glob -type d -nocomplain "$currentDir/*"]
puts "检索到的文件夹: $searchDirs"

# 定义目标文件夹
set targetDir [file join $currentDir "ip"]
# 如果目标文件夹不存在,则创建它
if {![file exists $targetDir]} {
    file mkdir $targetDir
    puts "文件夹 $targetDir 已创建。"
} else {
    puts "文件夹 $targetDir 已存在。"
}

# 遍历每个文件夹,搜索后缀为 .xci 的文件
foreach dir $searchDirs {
    if {[file isdirectory $dir]} {
        set xciFiles [glob -nocomplain "$dir/*.xci"]
        foreach file $xciFiles {
            set destFile [file join $targetDir [file tail $file]]
            puts "正在复制: $file 到 $destFile"
            if {[catch {file copy -force $file $destFile} err]} {
                puts "错误: $err"
            } else {
                puts "复制成功: $file"
            }
        }
    }
}

puts "操作完成!"

可以快速的提取所有XCI文件。
上述工作完成后,在vivado的Tcl Console下,进行工程恢复
在这里插入图片描述
如图所示,进入脚本所在文件夹
然后执行下图所示命令即可
在这里插入图片描述
TCL作为一门脚本语言,善加利用,会对我们的工程开发有许多帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值