特权同学原创,转载请保留署名
Vivado的工程文件包含了源码、IP、设置和各种编译的中间文件,动辄上百MB甚至上GB,非常占硬盘。可以通过以下步骤对编译过的工程进行瘦身,只预留必要的设置、IP和源码,减少硬盘空间占用。
- 打开Vivado工程,在Tcl Console中输入reset_project 命令(Type a Tcl command here处输入reset_project后回车),删除所有工程编译的中间文件。可以减少30%~70%左右的size,原有工程的“垃圾文件”越多,瘦身得越明显。
![img](https://i-blog.csdnimg.cn/blog_migrate/5704534b9b8232ffedfd161b5a3aa6ad.png)
左侧显示瘦身前工程文件234MB,右侧显示瘦身后工程文件只有78.8MB。
![img](https://i-blog.csdnimg.cn/blog_migrate/8ea0cd2d0240243eafd9557145840d88.png)
对于下一步要保留的.srcs工程子文件夹,瘦身更是明显,从124MB直接减少到14.4MB。
![img](https://i-blog.csdnimg.cn/blog_migrate/aa8edaf5547b675098ea7c5ba2ba4d15.png)
- 点击Vivado菜单File --> Project --> Write Tcl…。(不同Vivado版本可能Write Tcl菜单位置会有不同,但是都在File菜单中)
![img](https://i-blog.csdnimg.cn/blog_migrate/331f3ec6c7a86b5a368924da722e17a3.png)
弹出的Write Project to Tcl文件夹,在Output File中设置当前工程路径,并输入.tcl为后缀的文件名。Options下勾选Write all properties和Copy sources to new project。点击OK。这个tcl文件中将存储着工程的源码和属性设置信息。将来还原工程时,有这些信息就可以轻松实现。
![img](https://i-blog.csdnimg.cn/blog_migrate/20ec0f157936df3fd9e2477d87868dc0.png)
在工程路径下,产生了一个新创建的at7.tcl文件,这时只需要保留.srcs文件夹和.tcl文件,其它文件或文件夹可以删除。
![](https://i-blog.csdnimg.cn/blog_migrate/945d933631671fbc3729e135b7a4dea3.png)
此时,最后剩下的备份工程源码只有14.5MB。虽然还是不小,但是好歹我们是从234MB的大基数裁剪下来的。这个代码量可以在git上备份了。
![img](https://i-blog.csdnimg.cn/blog_migrate/d3fb67948a1dd4e843708588c0e55f43.png)
-
最后,来看看基于备份源码,如何还原工程?
在Tcl Console中使用cd命令打开.srcs和.tcl文件的备份路径(如cdD:/xilinx_prj/at7_project),然后使用source命令(如source at7.tcl)进行工程恢复。
![img](https://i-blog.csdnimg.cn/blog_migrate/080062967747072b0481b8eb7d27b9a3.png)
原工程的源码、IP、约束和设置等,完整恢复。
![img](https://i-blog.csdnimg.cn/blog_migrate/b36b3bdf1d9c4f7ac31f0cbf8d46c88a.png)