1. 程式人生 > >ZCU106開發詳解之AXI_HP(重磅推出,進階必備)

ZCU106開發詳解之AXI_HP(重磅推出,進階必備)

感謝大家的等待!!

如果有朋友想了解更多相關資訊請加QQ群836535064。我們會將相關資料釋出於QQ群中。

歡迎有需求的朋友深度合作。本團隊專注於高速視訊編解碼,高速訊號採集處理方案提供。同樣也請入群加管理員。

ZCU106開發詳解之AXI_Bram(重磅推出,進階必備)

本期部落格主要介紹使用AXI HP介面將PL側的資料儲存到PS側的DDR中,工程中將HP口進行封裝,對於使用者通過操作BRAM就可以將資料寫入到指定的DDR儲存空間中。

一、PL側工程設定及原始碼

BD的整體設計如下圖所示:

zynq的設定如下,HP的位寬設定成64位

點選Run Block Automation,在彈出的對話方塊中,按如下設定,點選ok,完成zynq核的內部連線。

接下來按照前面章節步驟,校驗Block Design、生成Output Products和HDL Wrapper。

整個工程的結構如下圖所示:其中AXI_HP_MODULE為HP介面控制邏輯模組,Prepare_Increasing_Data用來產生測試資料。

頂層Main模組的原始碼如下:

Axi_HP介面控制邏輯的原始碼如下:

Prepare_Increasing_Data原始碼

Pll的設定以及Blink_Led的原始碼參照axi-bram篇的介紹,該篇還有一個vio模組,用來控制AXI_HP_MODULE和Prepare_Increasing_Data的復位,AXI_HP_MODULE為高電平復位,Prepare_Increasing_Data為低電平復位。

PS側工程設定及原始碼

Xil_DCacheDisable()用來關閉cache一致性。

除錯步驟及結果

編譯完成後就可以進行除錯了,在vivado中下載bit檔案,SDK中下載elf檔案,在SDK中main函式的返回處打上斷點,執行到此處,在memeryBrowser中監測0x38000000;然後再vivado中通過vio先復位AXI_HP_MODULE,然後關閉復位,此過程中Prepare_Increasing_Data一直處於復位狀態,最後將Prepare_Increasing_Data復位訊號置為1,在memeryBrowser中0x38000000開始處可以看到pl側通過HP口寫過來的資料。