Vivado使用技巧(八):Core Container打包IP核

XCI与XCIX文件

通常,在生成Vivado IP核时,在工程目录的.srcs/sources_1/ip路径下会生成对应IP核的文件夹,该文件夹中包含了所有与该IP核相关的文件。最主要的一个文件是XCI文件,该文件包含了用户配置的相关信息。XCI文件能够以源文件的形式直接添加到Vivado工程中,即相当于添加了一个已经配置好的IP核。

此外,Vivado还提供了Core Container特性,该特性允许设计者将所有与IP相关的文件压缩到一个以XCIX为扩展名的二进制文件中。同样XCIX文件也可以以源文件的形式添加到工程中。

XCI文件和XCIX文件仅仅是在磁盘上的存储形式不同(前者是一个文件夹,后者是一个文件),但是在Vivado中的表现形式完全相同。因为Vivado可以解析XCIX文件,所以在IP Sources中也可以看到与IP核相关的所有单独文件。

既然XCI与XCIX在实质上完全相同,为何还要用Core Container打包IP核?最大的好处是简化版本控制管理。对于版本控制系统而言,需要管理的文件越少越方便,Core Container将众多文件打包到一个二进制文件中,正是为了满足这方面的需求。


设置Core Container

绝大多数IP核都支持Core Container特性,也有如下两例意外:

  • 7系列中的存储接口IP核不支持(MIG);
  • 使用IP集成器进行block设计中的IP核不支持。

使用Core Container特性有两种设置方法。一种是在Settings中的IP标签下,选中“Use Core Containers for IP”(默认为不选),工程中的所有IP核都会被打包为XCIX格式。
这里写图片描述
如果只是想打包个别IP核,在Sources窗口的IP Sources标签下,在对应IP核的右键菜单中,根据当前状态显示“Enable/Disable Core Container”,来启用或禁用Core Container。
这里写图片描述
处理之后,Vivado会更新IP核在磁盘中的存储方式,如下图:4个IP核中FIFO禁用了Core Container,以文件夹的形式存储了众多文件;其余3个IP核启用了Core Container,以XCIX文件的格式存储。
这里写图片描述


使用IP User Files

当启用了Core Container后,生成IP核时在源文件目录下只导出XCIX文件。但为了设计者方便,Vivado会解析XCIX文件中的内容,在.user_files/ip路径中导出一些常用的文件:
这里写图片描述
如上图,各IP核的常用文件以文件夹的形式存储。但需要注意:无论是否使用Core Container,都会导出这些文件,只不过在启用了Core Container后,Vivado会自动解析XCIX文件。这些文件包括:

  • 行为仿真文件:即TestBench,存储在sim目录下
  • 实例化文件:veo与vho提供了用于实例化IP的Verilog和VHDL模板;
  • 功能仿真文件:*_sim_netlist.v和*_sim_netlist.vhdl用于第三方仿真工具(在低于2015.3的Vivado版本中为*_funcsim.v和*_funcsim.vhdl)。
  • 存根文件:*_stub.v和*_stub.vhdl用于第三方综合工具。因为Xilinx IP核只能用Vivado综合,因此会提供这两个文件给第三方综合工具,在综合时可以将IP核视作黑盒子(即只有端口信息)。

一个示例如下图所示:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/FPGADesigner/article/details/81778631
今日推荐