在一個項目中,當你使用microblaze作為控制器來進行系統(tǒng)調(diào)度的時候,一般是建議將所有模塊封裝成AXI形式的IP核,這樣好管理,也容易調(diào)試。不過在初期的時候是不建議這樣做的,因為你的模塊并沒有完全被驗證是沒問題的,所以還是使用.v文件,等后面這一功能驗證通過,再把它封裝成IP核形式。
1. AXI IP核簡介
用過Microblaze或者看例程的人肯定都知道,Xilinx提供了很多AXI形式的IP核,像常用的UART、IIC、SPI等IP核。我們只要把他們在畫布里調(diào)出來,然后使用自動連接形式,便能把對應接口連接起來,接著在軟件上調(diào)用其相應的函數(shù)便可以工作了。

但是當我們自己封裝了一個AXI形式的IP核后,又該怎么去使用呢?這不是官方IP,沒有相應的函數(shù)呀?不知道大家是否有印象,上一篇文章介紹IP封裝的時候說過,封裝成AXI形式的IP核,會生成一些東西,如下圖所示,這個可千萬別去刪,大有用處的。

里面的drivers這個文件夾其實放的就是AXI的驅(qū)動函數(shù)。例如我們生成一個AXI的IP核(紅框處)

編譯通過后生成軟核工程,可以看到,我們自己加入的IP核是有被關聯(lián)進來的。在“Axi_Device_DNA_v1_0”這個文件夾下包含有.c和.h文件,這個就是我們添加的IP核對應的驅(qū)動,它和iic、定時器、uart等IP核在同一個庫里。這些都是IP核必須使用到的函數(shù)文件。

2. AXI IP核使用
看見自制的IP核都能給你生成驅(qū)動函數(shù)是不是覺得很高級,很爽呢!如果這樣想那你就確實too young too simple了。打開它的.c和.h文件給你看看吧。

寄存器定義

獲取DNA數(shù)據(jù)高位、低位數(shù)據(jù)的函數(shù)

讀寫函數(shù)
是的,就只有這些,沒有了!所以別以為能像IIC之類的IP核一樣,會給你很全的函數(shù),讓你一次寫一大串或讀一大串數(shù)據(jù)的,如果真能根據(jù)不同IP功能給你定制不同函數(shù),那就智能到逆天了···
不過人家都給你讀寫寄存器的函數(shù)和寄存器的定義,也就已經(jīng)夠了,都說下層基礎決定上層建筑,有了這兩個基本函數(shù),你想自己做什么功能還不行?MCU控制的本質(zhì)不也就是讀寫對應的寄存器,偷懶也得有個度的哈哈~就像這樣,自己封裝個函數(shù)就行了。

當然,你也可以不用Xilinx給你生成的讀寫函數(shù),自己寫也是可以的,不過不建議這么做,畢竟人家都給了,一方面可以給你節(jié)省編碼時間,另一方面也保證了函數(shù)的穩(wěn)定性,避免開發(fā)出錯。
3. 總結
在封裝成AXI IP 核時會有一個頂層的AXI時序代碼,這個用戶一定要熟悉,并且對應的寄存器要設置好,這樣使用起來才不會有錯誤。不然容易出現(xiàn)寄存器讀寫不成功或者操作錯寄存器導致數(shù)據(jù)不對??傊€是一句話,實踐出真知,想了解深入得去用了才知道才會使用。
編輯:lyn
-
Xilinx
+關注
關注
73文章
2200瀏覽量
131183 -
MicroBlaze
+關注
關注
3文章
68瀏覽量
22309 -
IP核
+關注
關注
4文章
344瀏覽量
51965
原文標題:使用MicroBlaze調(diào)用AXI IP核
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
利用開源uart2axi4實現(xiàn)串口訪問axi總線
RDMA設計6:IP架構2
基于AXI DMA IP核的DDR數(shù)據(jù)存儲與PS端讀取
使用AXI4接口IP核進行DDR讀寫測試
Xilinx高性能NVMe Host控制器IP+PCIe 3.0軟核控制器IP,純邏輯實現(xiàn),AXI4和AXI4-Stream DMA接口,支持PCIe 3.0和4.0
將e203 例化AXI總線接口
VDMA IP核簡介
Vivado浮點數(shù)IP核的握手信號
MicroBlaze處理器嵌入式設計用戶指南
VIVADO自帶Turbo譯碼器IP核怎么用?
NVMe IP之AXI4總線分析
NVMe控制器IP設計之接口轉(zhuǎn)換
一文詳解Video In to AXI4-Stream IP核
AXI 接口設計避坑指南:AXI接口筆記
如何使用MicroBlaze調(diào)用AXI IP核詳細解析
評論