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
- HDL/FPGA學習筆記二十五:Vivado PLL IP核的使用FPGA筆記
- Vivado DDS IP核使用和模擬(一、單通道訊號發生器)
- Vivado開發環境,將COE檔案加入IP核ROM中開發環境
- modelsim 獨立模擬vivado的IP核及模擬指令碼指令碼
- Vivado使用技巧(25):Block Synthesis技術BloC
- Vivado使用技巧(20):Waveform功能詳解ORM
- Vivado使用技巧(17):建立IBIS模型模型
- Vivado使用技巧(9):COE檔案使用方法
- Vivado使用技巧(23):綜合執行與OOC
- Vivado使用技巧(4):查詢功能詳解
- Vivado使用技巧(11):設定FPGA配置模式FPGA模式
- Vivado使用技巧(5):屬性編輯器的使用
- Vivado使用技巧(16):SSN轉換噪聲分析
- Vivado使用技巧(14):IO規劃方法詳解
- Vivado使用技巧(21):模擬中的Debug特性
- Vivado使用技巧(13):CSV檔案定義IO Ports
- Vivado使用技巧(28):支援的Verilog語法
- Vivado使用技巧(24):HDL/XDC中設定綜合屬性
- Vivado使用技巧(22):綜合策略與設定的選擇
- (9)FIFO ip核
- IP核之ROM
- IP核:XDMA學習
- Vivado使用技巧(12):設定DCI與內部參考電壓
- 爬蟲代理IP的使用技巧爬蟲
- 8條github使用小技巧Github
- 【Azure App Service For Container】建立ASP.NET Core Blazor專案並打包為Linux映象釋出到Azure應用服務APPAIASP.NETBlazorLinux
- FPGA的時鐘IP核知識點FPGA
- QuartusII呼叫 PLL_IP核方法(Mega Wizard)
- Container容器元件的使用AI元件
- HSI Controller IP CoreController
- Swift SB 容器 Container View使用SwiftAIView
- 分享 8 個 Laravel 模型時間戳使用技巧Laravel模型時間戳
- 獨享ip與共享ip的選擇技巧
- CPU明明8個核,網路卡為啥拼命折騰一號核?
- k8s中初始化容器(init container)的作用及其使用方法K8SAI