Ultra96_v2开发板之使用教程-PYNQ
时间: 2021-2-7
更新时间:2021-2-7
作者:Mint
在HLS代码中编写的函数通过Directives约束成AXI4的接口,在Vivado中调用。实现AXI4的IP设计。
代码案例
#include "sigmoid.h"
#include <cmath>
void sigmoid(float Feature[4][4][1],float ans_tb[4][4][1] ){
for(int i=0; i<4 ;i++){
for(int k=0; k<4;k++){
for(int j=0; j<4;j++){
ans_tb[i][j][k] = 1/(1+exp(-Feature[i][j][k]));
}
}
}
return;
}
Directives
对参数添加Directives,设置为axi slave。 depth设置为一个较大的数即可。
对函数添加Directives。用于生成返回。
设置完成后的Directives界面如图
综合后得到IP
在综合后的路径中可以找到IP drivers对应的AXI4地址。
路径如图:
Vivado连接
为ZYNQ添加一个AXIslave接口。连接IP。按照之前的方法。获得bit文件和hwh文件。
PYNQ加载
调用执行
附录
在HLS综合后的Drives代码中。可以看到基于C语言的驱动代码。从代码中可以看出C语言中是如何进行IP工作控制。