在一個(gè)項(xiàng)目中,當(dāng)你使用microblaze作為控制器來(lái)進(jìn)行系統(tǒng)調(diào)度的時(shí)候,一般是建議將所有模塊封裝成AXI形式的IP核,這樣好管理,也容易調(diào)試。不過(guò)在初期的時(shí)候是不建議這樣做的,因?yàn)槟愕哪K并沒(méi)有完全被驗(yàn)證是沒(méi)問(wèn)題的,所以還是使用.v文件,等后面這一功能驗(yàn)證通過(guò),再把它封裝成IP核形式。
1. AXI IP核簡(jiǎn)介
用過(guò)Microblaze或者看例程的人肯定都知道,Xilinx提供了很多AXI形式的IP核,像常用的UART、IIC、SPI等IP核。我們只要把他們?cè)诋?huà)布里調(diào)出來(lái),然后使用自動(dòng)連接形式,便能把對(duì)應(yīng)接口連接起來(lái),接著在軟件上調(diào)用其相應(yīng)的函數(shù)便可以工作了。
但是當(dāng)我們自己封裝了一個(gè)AXI形式的IP核后,又該怎么去使用呢?這不是官方IP,沒(méi)有相應(yīng)的函數(shù)呀?不知道大家是否有印象,上一篇文章介紹IP封裝的時(shí)候說(shuō)過(guò),封裝成AXI形式的IP核,會(huì)生成一些東西,如下圖所示,這個(gè)可千萬(wàn)別去刪,大有用處的。
里面的drivers這個(gè)文件夾其實(shí)放的就是AXI的驅(qū)動(dòng)函數(shù)。例如我們生成一個(gè)AXI的IP核(紅框處)
編譯通過(guò)后生成軟核工程,可以看到,我們自己加入的IP核是有被關(guān)聯(lián)進(jìn)來(lái)的。在“Axi_Device_DNA_v1_0”這個(gè)文件夾下包含有.c和.h文件,這個(gè)就是我們添加的IP核對(duì)應(yīng)的驅(qū)動(dòng),它和iic、定時(shí)器、uart等IP核在同一個(gè)庫(kù)里。這些都是IP核必須使用到的函數(shù)文件。
2. AXI IP核使用
看見(jiàn)自制的IP核都能給你生成驅(qū)動(dòng)函數(shù)是不是覺(jué)得很高級(jí),很爽呢!如果這樣想那你就確實(shí)too young too simple了。打開(kāi)它的.c和.h文件給你看看吧。
寄存器定義
獲取DNA數(shù)據(jù)高位、低位數(shù)據(jù)的函數(shù)
讀寫(xiě)函數(shù)
是的,就只有這些,沒(méi)有了!所以別以為能像IIC之類(lèi)的IP核一樣,會(huì)給你很全的函數(shù),讓你一次寫(xiě)一大串或讀一大串?dāng)?shù)據(jù)的,如果真能根據(jù)不同IP功能給你定制不同函數(shù),那就智能到逆天了···
不過(guò)人家都給你讀寫(xiě)寄存器的函數(shù)和寄存器的定義,也就已經(jīng)夠了,都說(shuō)下層基礎(chǔ)決定上層建筑,有了這兩個(gè)基本函數(shù),你想自己做什么功能還不行?MCU控制的本質(zhì)不也就是讀寫(xiě)對(duì)應(yīng)的寄存器,偷懶也得有個(gè)度的哈哈~就像這樣,自己封裝個(gè)函數(shù)就行了。
當(dāng)然,你也可以不用Xilinx給你生成的讀寫(xiě)函數(shù),自己寫(xiě)也是可以的,不過(guò)不建議這么做,畢竟人家都給了,一方面可以給你節(jié)省編碼時(shí)間,另一方面也保證了函數(shù)的穩(wěn)定性,避免開(kāi)發(fā)出錯(cuò)。
3. 總結(jié)
在封裝成AXI IP 核時(shí)會(huì)有一個(gè)頂層的AXI時(shí)序代碼,這個(gè)用戶一定要熟悉,并且對(duì)應(yīng)的寄存器要設(shè)置好,這樣使用起來(lái)才不會(huì)有錯(cuò)誤。不然容易出現(xiàn)寄存器讀寫(xiě)不成功或者操作錯(cuò)寄存器導(dǎo)致數(shù)據(jù)不對(duì)。總之還是一句話,實(shí)踐出真知,想了解深入得去用了才知道才會(huì)使用。
編輯:lyn
-
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121305 -
MicroBlaze
+關(guān)注
關(guān)注
3文章
68瀏覽量
21548 -
IP核
+關(guān)注
關(guān)注
4文章
327瀏覽量
49485
原文標(biāo)題:使用MicroBlaze調(diào)用AXI IP核
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論