FPGA(4)Xilinx Ultra96_v2 AXI4

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设置为一个较大的数即可。
FPGA(4)Xilinx Ultra96_v2 AXI4

对函数添加Directives。用于生成返回。
FPGA(4)Xilinx Ultra96_v2 AXI4
设置完成后的Directives界面如图

FPGA(4)Xilinx Ultra96_v2 AXI4

综合后得到IP

在综合后的路径中可以找到IP drivers对应的AXI4地址。
路径如图:
FPGA(4)Xilinx Ultra96_v2 AXI4

Vivado连接

为ZYNQ添加一个AXIslave接口。连接IP。按照之前的方法。获得bit文件和hwh文件。
FPGA(4)Xilinx Ultra96_v2 AXI4

PYNQ加载

FPGA(4)Xilinx Ultra96_v2 AXI4

调用执行

FPGA(4)Xilinx Ultra96_v2 AXI4

附录

在HLS综合后的Drives代码中。可以看到基于C语言的驱动代码。从代码中可以看出C语言中是如何进行IP工作控制。
FPGA(4)Xilinx Ultra96_v2 AXI4

上一篇:多维高斯概率密度函数估计


下一篇:深入 AXI4总线 (四):RAM 读取实战