利用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絕對地址數據也別正確更新。
編輯:hfy
-
寄存器
+關注
關注
31文章
5318瀏覽量
120015 -
cpu
+關注
關注
68文章
10826瀏覽量
211159 -
Xilinx
+關注
關注
71文章
2163瀏覽量
121012 -
AXI總線
+關注
關注
0文章
66瀏覽量
14250 -
Zynq
+關注
關注
9文章
608瀏覽量
47128
發布評論請先 登錄
相關推薦
評論