本博客描述了在vivado自定义ip核工程时(Create and Package New lP -> Create AXI4 Peripheral),为什么要不勾选"Copy sources into lP Directory"选项,以及不勾选"Copy sources into lP Directory"选项会导致ip核更新不成功的解决办法。
一、为什么不勾选"Copy sources into lP Directory"选项
进行"Add Sources"以添加自己的设计文件时(例如我的设计文件都在图1中的文件夹yourself_rtl中,此文件夹有着鲜明的代码文件夹结构),若勾选"Copy sources into lP Directory"选项(如图2),则所添加的设计文件会复制到一个叫"src"的文件夹中(如图3),但鲜明的代码文件夹结构已经不复存在,所有的verilog文件都在src文件夹根目录下,工程里的我添加的verilog文件对应src文件夹中的verilog文件,也就是说这时候我若想修改我添加的verilog文件的代码,你必须编辑src文件夹中的代码,而不是yourself_rtl文件夹中的代码。
故为了保持自己的代码文件夹结构,也即编辑工程中的我添加的verilog文件就相当于编辑yourself_rtl文件夹中的verilog文件,就必须不勾选"Copy sources into lP Directory"选项。
二、不勾选"Copy sources into lP Directory"选项导致ip核更新不成功
不勾选"Copy sources into lP Directory"选项时,若进行修改ip核工程里你添加的verilog文件(如图4),并进行"Re-Package lP"操作,然后在调用该ip核的工程里进行"Report IP Status -> Upgrade Selected"操作以更新该ip核(如图5),结果我发现,ip核实际上并没有更新成功,如图6,代码与图5不一致,故ip核并没有更新成功。
三、不勾选"Copy sources into lP Directory"选项导致ip核更新不成功的解决办法
很简单,一定要将我的代码文件夹yourself_rtl放入ip目录中(如图7),这样,进行"Add Sources"时,添加文件夹yourself_rtl里verilog文件且不勾选"Copy sources into lP Directory"选项,ip核更新就不会出现不成功的现象。