vivado創建ip

強大的Vivado IP工具——自定義IP的使用

首先,要指出,本文不描述任何IP的功能與使用。

 

在開發一個大型FPGA項目時,多人協作是必不可少的。這個時候,如何提交設計給負責集成的人,是項目開發中最關鍵的問題之一。

 

常用的一個方法是,提交網表。網表的提交可以算是相當方便的操作了,這在ISE的時期還體會不到,但到了Vivado中,正如amazing icecream在博文http://blog.chinaaet.com/detail/37153中描述的,dcp的引入,讓網表這一非常好用的功能發揮了其應有的作用。對於部分設計,直接使用dcp提交設計,已經足夠。

 

但正如amazing icecream在博文http://blog.chinaaet.com/detail/37165中描述的,dcp不支持嵌套這一問題,成爲Vivado在工程化管理中最嚴重的問題之一。比如,如果遇到如下的設計

 

設計中包含了兩個IP的xci。如果IP使用的OOC模式,則和dcp模塊一樣,都使用網表提交給頂層ADC_SPI。如果再將ADC_SPI模塊打包成dcp,就會出現dcp文件的嵌套。調用ADC_SPI這個dcp網表時,會出現錯誤,無法讀取其中的dcp模塊的信息。

 

這就意味着,使用dcp的模塊,只能是純代碼的模塊,無法使用任何IP,哪怕是FIFO、BRAM之類的簡單IP。另外,dcp也無法多次提交,所有開發者只能提交一次dcp網表,而無法層級提交dcp網表。

 

 

所以,本文介紹一下IP Packager這個工具,來解決上述的工程問題。目前的IP Packager仍然不支持包含dcp網表,但是生成子dcp網表的工程也可以封裝爲IP,所以可以用IP的方法來層級嵌套。

 

 

IP Packager,用來將自己的設計打包,封裝成IP。然後在IP Catalog中導入後就可以與Xilinx提供的IP一起使用。其操作相對簡單,難度低,可操作性很強。該工具爲Vivado獨有,ISE似乎沒有類似的工具可以使用。

 

如何使用呢?首先,準備一個設計,由於IP Packager在封裝IP時並不會檢查設計是否有問題,比如是否有源文件確實等,需要開發者自己確認設計是否完整。

 

然後在菜單欄中選擇“Tool”->“Create and Package IP…”,如下圖所示。

 

 

彈出如下界面,有興趣可以自行閱讀說明或參考相關文檔,點擊Next

 

 

在下一個界面中,選擇第一項,然後點擊Next。這裏說明一下,第一項是將工程封裝成IP,第二是將某個目錄下的源文件封裝成IP,第三項是封裝AXI4的外設,有興趣可以自行閱讀說明文字或查詢文檔。

 

 

 

下一界面選擇IP的路徑,用於日後導入IP文件,同時選擇僅包括xci文件還是包括所有IP已經生成的網表。這裏選擇“Include .xci files”

 

 

 

最後一頁點擊Finish即可

 

設置完成之後,可以發現在Project Manager窗口下的Hierarchy標籤中,會多一個IP-XACT,下面會有一個component.xml,其中保存着封裝IP的信息。

 

 

在Package IP的主界面裏,列出了IP的定製化選項

 

 

在第一項中,可以設置IP的信息,其中Categories是導入後IP存放的位置,默認爲BaseIP,及IP Catalog導入後,可以再BaseIP中找個該IP

 

需要注意的是第二項“IP Compatibility”,點開後如下圖所示。

 

 

從圖中可以看到,此IP在封裝時是兼容Zynq系列的,但是不兼容其他系列,爲了讓其支持其他系列的FPGA,可以右鍵彈出菜單,點擊“Add Family”。

 

 

在彈出的“Choose Family Support”中選擇希望添加的FPGA。

 

在最後一步“Review and Package”中,點擊下方的edit packaging settings, 可以打開設置界面。

 

 

在藍色框中,勾選“Create archive IP”即可生成zip壓縮文件,用來保存IP信息,便於存檔及使用。點擊OK後回到Vivado主界面,然後點擊Re-package IP即可刷新輸出文件。

此時, IP封裝的工作已經全部完成。

 

IP封裝好以後,下一步就是如何調用該IP。首先打開IP Catalog。無論是單獨建一個管理IP的工程,還是在Project Manager中點擊IP Catalog,都可以。

進入IP Settings,界面如下圖所示

 

 

 

在“Repository Manager”標籤中,點擊“Add Repository…,如上圖藍框所示。

添加好剛纔進行IP封裝的路徑後,即可自動識別出IP

 

 

 

點擊OK返回IP Catalog主界面,即可在IP Catalog中找到相關IP。注意,只有IP兼容FPGA芯片時,該IP纔會顯示在IP Catalog中。比如IP封裝式選擇的是V7,主工程是K7,則無法使用;但是IP封裝中添加兼容K7後,主工程是K7時就可以在IP Catalog中找到該IP

 

IP Packager的問題是,代碼無法加密,不具有類似dcp的不可讀功能。

考慮到Vivado目前仍然比較新,不排除在今後的版本中添加IP Packager的加密功能和dcp的嵌套功能。

如有興趣,趕快去定製自己的IP Core吧。

轉載:http://blog.chinaaet.com/ad604/p/37169

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