背景介绍:
在进行vivado的工程和源码管理时,可能会遇到误删源码,而工程人员不知道的情况。但是Vivado的源文件索引存在四种模式如下:
工程建立,默认选择RelativeFirst。(也就是说先相对路径索引,再绝对路径索引)。
导致结果:
相对索引找不到的文件,会进行绝对路径索引,并不会导致综合实现报错。不能使工程人员有效拦截误删除源码的问题。
例:(在误删代码后,第一次打开,会报相关告警。第二次再打开工程时,则不会再报相关告警。)
解决方案:
Tcl Console下:
set_property PATH_MODE RelativeOnly [get_files /home/liuq/fh8_prj/svn_8413_tmp/00_src/*]
说明: 路径/home/liuq/fh8_prj/svn_8413_tmp/00_src/ 为包含所有源文件目录 ,* 指当前目录下所有文件
当然该脚本可根据项目需要灵活放置在各类tcl脚本中
经过上述操作后,再误删源码,则会报错,不能进行正常综合实现
问题1:怎么确认设置各文件设置生效?
方法1:
可随机选择一个文件,查看Properties下PATH_MODE,看是否是RealtiveOnly。
方法二:
get_property PATH_MODE [get_files /home/liuq/fh8_prj/svn_8413_tmp/00_src/03_slave/code/slave1588_top.v]
如果返回:
RelativeOnly
则修改成功。