利用ZYNQ驗證算法的一大優點在於,能夠在上位機發送指令藉助CPU的控制能力和C語言易開發特色,實時配置算法模塊的工做模式、參數等對來對其算法模塊性能進行全面的評估。最重要的是無需從新綜合硬件模塊。算法
接着上篇該系列博文,在sysGen中設計模塊功能爲:根據模式選擇輸入,來完成乘2或除2兩種運算,0乘1除。緩存
測試激勵選用From Workspace模塊,從MATLAB工做空間導入數據。利用MALTAB腳本能夠很是容易地生成任意數據集,極大致現了sysGen開發的優點。函數
設計完成調用xilinx waveform viewer,兩種運算行爲仿真波形以下:性能
功能驗證無誤,關鍵的一點是讓mode端口以AXI總線形式傳遞數據。測試
如今將sysGen算法子系統生成IP核,並導出到IP Integrator中做爲CPU外設。spa
能夠看到multi_div_constant模塊多出一個multi_div_constant_s_axi總線接口集。該接口遵循AXI-Lite總線規則,用於配置IP核內部控制寄存器。硬件系統設計完畢,導出硬件啓動SDK。當新建工程後,能看到AXI總線驅動自動添加進來了。設計
multi_div_constant_hw.h內部爲AXI-Lite總線寄存器地址,multi_div_constant.c內是驅動函數的具體實現。3d
C代碼對算法模塊進行板級驗證:orm
啓動Debug,點擊運行查看軟件運行結果和AXI-Stream總線時序波形。blog
SDK中串口打印結果及Memory窗口查看DDR接收緩存絕對地址。
正確啓動了兩次DMA環回傳輸,第一次算法模塊工做在乘2模式,第二次則除2.C代碼中測試返回數據與生成測試數據關係無誤,DDR絕對地址數據也別正確更新。