在Zynq開發過程中,我們看到Xilinx為我們提供了很多IP核,很多IP都可以免費使用,但是在我們具體的工程開發中,很多時候需要自己來創建IP核的,這樣做的好處主要是:
1、系統設計定製化;
2、設計複用,提高效率,還可加密IP核;
Zynq芯片是基於FPGA+ARM的方式,在FPGA內部集成了ARM核,而FPGA和ARM通信主要是通過AXI總線,關於AXI總線,可查閱XAPP1168文檔,下面就演示如何創建一個用戶IP核,並把創建好的IP添加到系統設計中。
開發環境:Vivado 2018.1
開發平臺:Zedboard
首先啟動Vivado 2018.1,新建工程,在Board列表中選擇Zedboard,點Next一步步繼續,
選擇Tools--Create and Package New IP,打開用戶IP創建嚮導,
選擇Create AXI4 Peripheral,點 Next繼續,
設置需要創建的IP的信息,繼續Next,
在Add Interfaces對話框中,可以選擇Interface Type、mode和Data Width等,根據實際情況來選擇。繼續next,最後通過嚮導完成了一個基於AXI接口的用戶IP,但此時的IP只是提供了AXI總線的模板,還需要我們自己把用戶IP的邏輯添加進來。
在IP Catalog中搜索我們剛創建的用戶IP名,可以看到已經出現在列表中了,
選中該IP,右鍵在菜單中選擇Edit in IP Packager,系統將會打開另一個Vivado IDE來對用戶IP核進行編輯和封裝,
在新打開的界面中,打開頂層文件,在user to add ports here處增加用戶IP端口,
在子文件中,增加用戶邏輯代碼,
增加和檢查例化文件接口,保存文件。
打開Package IP-axi_PWM,可以看到窗口左側有很多IP核的信息,大家可以逐個打開看看,我們看到Ports and Interfaces中出現了我們剛添加的接口,
至此,一個簡單的用戶IP核就創建好了,接下來,我們把這個IP添加進工程設計中,點擊Create Block Design,添加ZYNQ Processing system、AXI_GPIO、AXI_PWM三個IP,
點擊 Run Block Automation和Run Connection Automation將系統連接起來,完成連接的系統如下圖所示:
閱讀更多 電子技術應用 的文章