1.前言
IP核這個(gè)東西相信很多人都不陌生吧,不管是哪個(gè)FPGA廠家,都會(huì)有自己的一些現(xiàn)成IP核供用戶使用,從而節(jié)省設(shè)計(jì)的開發(fā)時(shí)間。在一個(gè)設(shè)計(jì)中,個(gè)人覺得將模塊變成一個(gè)個(gè)直觀的圖形界面更有助于理清思路,增強(qiáng)整個(gè)設(shè)計(jì)的邏輯性。以前用過Microsemi的開發(fā)平臺(tái),覺得挺人性化的,你寫完代碼后,直接把.v文件拉到畫布中,文件便會(huì)以圖形模塊的形式顯示出來,然后拖動(dòng)鼠標(biāo)便可以把兩個(gè)模塊的對(duì)應(yīng)引腳連接起來,十分方便直觀。
2.Vivado中的IP核封裝
在Vivado平臺(tái)中,我一直想尋找看看有沒有這種形式,最終發(fā)現(xiàn)并沒有~~。不過Vivado也提供了類似的方式,你首先要把.v文件封裝成IP,然后才能放到畫布中調(diào)用,雖然過程有點(diǎn)繁瑣,不過有總比沒有好呀~~
IP核的封裝其實(shí)也不會(huì)很難,前提是你得把.v文件先準(zhǔn)備好,如果連代碼都沒有還扯啥犢子喲。
在打開Vivado工程后,單擊“Tools ---- Creat and Package IP”。嗯,就是這廝了,然后一路Next。
接著出現(xiàn)如下界面,按著選項(xiàng)選擇自己的需求即可,點(diǎn)擊“Next”,正式進(jìn)入主題。
一般的話選擇第一項(xiàng)即可,如果你的IP核需要走AXI總線,則選擇第三項(xiàng)就行了。
普通IP封裝
進(jìn)入普通IP封裝界面,如下圖所示,如果你要封裝的IP里包含有IP核,就要選擇第二項(xiàng),沒有的話默認(rèn)第一項(xiàng)就行了。然后“Next”,"Finish"就這么簡(jiǎn)單的完成了第一階段啦。
接下來你會(huì)看到一個(gè)新的工程出現(xiàn),沒錯(cuò),這就是IP核的封裝工程了!
我們只要關(guān)注右邊的選項(xiàng)就行了。第一項(xiàng)是基本信息,用戶可以給IP命名,進(jìn)行描述等。
第二項(xiàng)是器件添加,只有選擇了相應(yīng)的器件,你的IP核才能在那個(gè)器件里被使用。單擊器件,右鍵——Add——Add Family Explicitiy,于是便可以選擇要適用的器件系列了。
其他選項(xiàng)也沒啥好改的,直接默認(rèn)就行了,最后可以看一下IP核的GUI界面,提前欣賞它的風(fēng)采。
最后一項(xiàng),點(diǎn)擊最下面的“Package IP”,這樣一個(gè)IP的封裝就完成了,就是這么任性這么簡(jiǎn)單。
AXI總線IP封裝
有時(shí)候?qū)⒋a封裝成AXI總線的IP核是非常有用的,當(dāng)你使用軟核跟你的模塊進(jìn)行通信時(shí),封裝成AXI總線的IP核,是必須要的。
選擇封裝成AXI總線后,會(huì)出現(xiàn)下面的界面,讓你選擇要封裝成哪一種AXI總線,以及有多少個(gè)寄存器等等設(shè)置。
選擇好你想要的設(shè)置后,點(diǎn)擊“Next”后會(huì)出現(xiàn)IP封裝界面,注意,此時(shí)要選擇第二項(xiàng)“Edit IP”,然后“Finish”。
之后照樣會(huì)生成出一個(gè)新的工程,和普通IP封裝不同的是,這里會(huì)多出一個(gè).v文件,這是AXI總線協(xié)議的文件,它已經(jīng)幫你把頂層做好,你需要把自己的工程加入進(jìn)去即可。
文件代碼基本就是AXI的時(shí)序協(xié)議,然后你只需要把你數(shù)據(jù)端口跟它的數(shù)據(jù)端口相連接就行了。
如上圖所示,藍(lán)色框是它的數(shù)據(jù)端口,AXI總線會(huì)把數(shù)據(jù)寫入對(duì)應(yīng)的寄存器中,也可以把這些寄存器的數(shù)據(jù)讀走。紅色框就是給用戶添加代碼的,你可以把自己的模塊放進(jìn)來,然后數(shù)據(jù)端口跟藍(lán)色框的數(shù)據(jù)端口相連接即可,這樣通信就建立了。
最后保存,綜合一下,和前面普通IP封裝一樣的處理方式,把IP核生成即可。
3.IP核的調(diào)用
IP核封裝完就可以調(diào)用出來使用了,東西做出來不就是為了可以裝逼嘛哈哈~~
找到剛才生成IP核的路徑下那個(gè)文件夾,里面大概就是下圖這幾項(xiàng)東西了,一項(xiàng)都不要去亂刪啊,很有用的這些。
接著把這個(gè)文件夾放到你的工程文件夾里(也可以不用,看個(gè)人愛好)。接著打開“IP Catalog”,在空白處右鍵,選擇“Add Repository”,然后選擇剛才說的IP文件夾,確定后,IP就被添加進(jìn)去了。如下圖所示,iic的IP已經(jīng)出現(xiàn)在“IP Catalog”里,下次可以直接在這里把這個(gè)IP和調(diào)出來用,想在哪用就在哪用!
4.總結(jié)
很多時(shí)候在項(xiàng)目的后期一些成熟的模塊封裝成IP幫助會(huì)很大,起碼在界面上你能看到一個(gè)個(gè)的模塊連在一起思路會(huì)非常清晰。同時(shí)封裝成IP的模塊也可以給其他人或者其他項(xiàng)目使用,減少開發(fā)周期。所以總的來說,將模塊封裝成IP還是很有用處滴。
-
封裝
+關(guān)注
關(guān)注
126文章
7647瀏覽量
142454 -
IP核
+關(guān)注
關(guān)注
4文章
318瀏覽量
49331 -
Vivado
+關(guān)注
關(guān)注
19文章
799瀏覽量
66128
原文標(biāo)題:Vivado平臺(tái)IP核的封裝方式
文章出處:【微信號(hào):FPGAer_Club,微信公眾號(hào):FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論