利用ZYNQ SOC快速打開算法驗證通路(6)——利用AXI總線實時配置sysGen子系統


  利用ZYNQ驗證算法的一大優勢在於,可以在上位機發送指令借助CPU的控制能力和C語言易開發特點,實時配置算法模塊的工作模式、參數等對來對其算法模塊性能進行全面的評估。最重要的是無需重新綜合硬件模塊。

  接着上篇該系列博文,在sysGen中設計模塊功能為:根據模式選擇輸入,來完成乘2或除2兩種運算,0乘1除。

  測試激勵選用From Workspace模塊,從MATLAB工作空間導入數據。利用MALTAB腳本可以非常容易地生成任意數據集,極大體現了sysGen開發的優勢。

  設計完成調用xilinx waveform viewer,兩種運算行為仿真波形如下:

  功能驗證無誤,關鍵的一點是讓mode端口以AXI總線形式傳遞數據。

  現在將sysGen算法子系統生成IP核,並導出到IP Integrator中作為CPU外設。

  可以看到multi_div_constant模塊多出一個multi_div_constant_s_axi總線接口集。該接口遵循AXI-Lite總線規則,用於配置IP核內部控制寄存器。硬件系統設計完畢,導出硬件啟動SDK。當新建工程后,能看到AXI總線驅動自動添加進來了。

  multi_div_constant_hw.h內部為AXI-Lite總線寄存器地址,multi_div_constant.c內是驅動函數的具體實現。

  C代碼對算法模塊進行板級驗證:

   啟動Debug,點擊運行查看軟件運行結果和AXI-Stream總線時序波形。

  SDK中串口打印結果及Memory窗口查看DDR接收緩存絕對地址。

  正確啟動了兩次DMA環回傳輸,第一次算法模塊工作在乘2模式,第二次則除2.C代碼中測試返回數據與生成測試數據關系無誤,DDR絕對地址數據也別正確更新。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM