Vivado使用技巧(8):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核視作黑盒子(即只有埠資訊)。
一個示例如下圖所示:
相關文章
- Vivado使用技巧(7):使用IP核自帶Testbench進行模擬
- Vivado使用技巧(10):編輯與改寫IP核原始檔
- FFT Vivado IP核實現FFT
- Vivado使用技巧(19):使用Vivado Simulator
- HDL/FPGA學習筆記二十五:Vivado PLL IP核的使用FPGA筆記
- Vivado DDS IP核使用和模擬(一、單通道訊號發生器)
- Vivado使用技巧(27):RAM編寫技巧
- Vivado使用技巧(26):HDL編寫技巧
- Vivado開發環境,將COE檔案加入IP核ROM中開發環境
- modelsim 獨立模擬vivado的IP核及模擬指令碼指令碼
- Vivado使用技巧(17):建立IBIS模型模型
- Vivado使用技巧(6):Messages視窗管理
- Vivado使用技巧(29):約束功能概述
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(18):模擬功能概述
- Vivado使用技巧(33):時序異常
- Vivado使用技巧(25):Block Synthesis技術BloC
- Vivado使用技巧(9):COE檔案使用方法
- Vivado使用技巧(4):查詢功能詳解
- Vivado使用技巧(3):Force Up-to-Date功能
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- Vivado使用技巧(34):路徑分割現象
- Vivado使用技巧(28):支援的Verilog語法
- Vivado使用技巧(5):屬性編輯器的使用
- Vivado使用技巧(30):使用時序約束嚮導
- Vivado使用技巧(16):SSN轉換噪聲分析
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(31):時鐘的約束方法
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(21):模擬中的Debug特性
- Vivado使用技巧(15):DRC設計規則檢查
- Vivado使用技巧(13):CSV檔案定義IO Ports
- Vivado使用技巧(32):IO延遲的約束方法
- (9)FIFO ip核
- IP核之ROM
- Vivado使用技巧(24):HDL/XDC中設定綜合屬性
- Vivado使用技巧(22):綜合策略與設定的選擇
- IP核:XDMA學習