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

FPGADesigner發表於2018-08-17

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核視作黑盒子(即只有埠資訊)。

一個示例如下圖所示:
這裡寫圖片描述

相關文章