Vivado開發工具熟悉之Create custom IP

今天突然想繼續寫點東西,想起來年前最後一篇blog後還差一塊vivado create custom IP基本上就完成了所有關於vivado開發工具的熟悉,有了這些之後基本上可以完整的通過vivado進行開發,包括傳統的自頂向下手寫HDL代碼開發和現在興起的異構FPGA IP核模塊式開發。

下面具體描述一下關於create custom IP,這裏首先參考一篇別人的bloghttp://www.fpgadeveloper.com/2014/08/creating-a-custom-ip-block-in-vivado.html,這篇blog不僅給出了利用vivado create and package IP模板工具進行AXI總線IP核開發的流程,並且有聯合硬核(軟核)SDK進行調試的流程,比較完整。因此對於封裝AXI IP的流程這裏我不再贅述,但是想說說關於Xilinx三種AXI總線的東西,首先AXI_LITE用的最多,其實主要功能是寄存器訪問(自然是地址訪問),vivado下可以自動生成模板,只需要在讀寫process下修改vhdl代碼即可完成自己的設計,但是這裏xilinx給出的模板比較臃腫,推薦還是自己寫這裏的邏輯(並不複雜,只要瞭解AXI協議即可),比如ADI的AXI_LITE IP核就是自己寫的AXI總線接口邏輯;AXI_FULL一般用於大量數據訪問(也是地址訪問),比如DDR3接口,這裏AXI_FULL的邏輯xilinx是沒有給模板的需要自己實現,我這次的項目就自己實現了AXI_FULL總線訪問DDR3控制器IP的接口,其實和在FPGA邏輯下些類似,參考的是AMBA® AXI Protocol specification;AXI_STREAM我沒用到,他是無地址的數據傳輸,類似FIFO,感覺用處不大,不如直接邏輯裏面來實現。

其次對於自建IP核的封裝,這裏我推薦的方式是給源代碼建立工程,然後在用vivado create and package IP,然後選擇Package your current project,這樣比用哪個create new簡潔方便一些。自建IP的方式可以對代碼進行更好的封裝,提高了代碼的重用效率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章