【Tcl脚本】Vivado工程文件结构,及清理工程

一、Vivado工程文件结构

vivado工程文件目录,如下所示:

说明:

  • project_name.cache:Vivado 软件的运行缓存

  • project_name.hw:所有波形文件

  • project_name.ip_user_files:用户关于 IP 的文件

  • project_name.runs:编译与综合结果 ,impl_1 文件夹存取布线后结果

  • project_name.sdk:SDK 环境代码,一般是 ZYNQ 设计中关于 PS 端的代码

  • project_name.sim:仿真结果

  • project_name.srcs:工程的源码、仿真文件与约束文件

  • project_name.xpr:Vivado 工程启动文件

其中,project_name.xpr和project_name.srcs是两个最重要的文件和文件夹,其它文件夹都可以删除。

根据后缀名不同,文件内容也不同:

1、dcp文件,dcp文件是Design CheckPoint的缩写,中文翻译为“设计检查点”,它是一种加密的、压缩的二进制文件类型,包含了完整的设计信息,如实例化层次结构、资源使用情况、时序分析数据、约束等重要信息。在Vivado设计中,DCP文件通常用于在不同的Vivado工程或版本之间共享设计,并简化设计修改和迁移,或增量编译。

2、xdc文件,vivado的约束文件,比如时序约束和IO引脚约束。

3、xci文件,定制ip产生的文件,里面包含了定制的ip核的所有信息。

4、rpt文件,vivado每个过程结束输出的一个report文件,用来记录各个过程中的一些信息

5、.Xil文件,是Vivado用来降低运行时内存使用量的临时目录,该文件无法移动到其他位置。

 

二、最小化保存Vivado工程

1、只保留project_name.xpr文件和project_name.srcs文件
  project_name.xpr和project_name.srcs是两个最重要的文件和文件夹,删除其它,存储空间可以大大减少,可以把这两个上传到服务器。下载到新位置时,直接双击project_name.xpr文件即可打开工程,vivado会自动生成其它文件,当然IP需要重新编译。

2、使用TCL脚本
  Vivado支持TCL脚本,可以只保留源代码文件夹并且生成TCL脚本,即可实现最小化存储。需要恢复工程的时候,在目的目录下,使用TCL脚本恢复即可。

(1)使用tcl命令生成TCL脚本

  打开vivado工程后,在“Tcl Console”窗口中,输入下面这个命令

write_project_tcl -force D://test//test.tcl

其中D://test是目录,执行的效果如下:

 

 

 

 

 

 

(2)使用GUI界面

  打开vivado工程后,通过“File->Project->Write Tcl”,打开“ Write Project to Tcl ”界面。

选择文件路径和tcl文件名,用默认参数就行,点击“OK”。

最后将tcl脚本和源代码文件放到,一个目录下:

(3)、通过Tcl恢复工程

打开vivado,在“Tcl Console”中,先使用“cd 目录”切换到tcl脚本和源代码文件所在的文件夹,再执行source命令,具体操作示例如下:

cd D://test 
source test.tcl

注意:必须先切换到tcl文件所在的目录,再执行source。

也可以使用GUI界面的"Tools->Run Tcl Scripts",选择打开tcl文件即可。

 

三、清理vivado工程

在实际使用Vivado过程中,该工具会自动生成一系列文件,有些文件是不必时刻保存的中间文件,有些是为了提高编译效率而生成的(比如编译IP核后产生的文件)。然而在上传SVN或备份时,我们希望占用尽量少的存储空间。由于Vivado无法自动清理这些文件,因此需要手动清理。

清理vivado是有tcl命令可以帮助清理的,如:reset_project 和reset_project -exclude ip

reset_project 用于重置当前项目重置为初始状态,清除在综合,模拟,实现和write_bitstream过程中创建的所有输出文件,包括临时文件。但是要注意,这会清理所有的IP和缓存,如果是大工程的话,清理完后,第一次重新编译需要花费更多的时间。

reset_project -exclude ip 可复位整个项目,但不会清理IP 目录下的文件。

 

四、清理仿真工程结果

如果是使用vivado仿真器仿真,在仿真的过程中,将会产生很多数据缓存,将大量占据磁盘空间,在关闭仿真后,可以通过reset_sim这个TCL命令,用来清空项目的仿真目录下文件。

但要注意,在系统的temp文件夹中,可能也与仿真文件缓存存在,如果发现系统C盘的空间越来越小,可以定期清理下。

posted @ 2023-05-04 10:55  AnchorX  阅读(2828)  评论(0编辑  收藏  举报