XILINX SDK Xil_Out32传入float类型参数的解决方案

XILINX SDK Xil_Out32传入float类型参数的解决方案

在项目尝试将float类型参数直接传输到BRAM中,再取出来发现跟传入的值不对,原来要先将float类型参数转成u32的数值保存到BRAM,取出来再从u32转回float
XILINX HLS + Vivado + SDK实现通过AXI-Master协议从ARM(PS)传输数组到FPGA(PL)端RAM

传入例子

float r = 0.0;
for(i_2 = 0; i_2<61470; i_2++){
	r = (float)(rand_int()%1000)/10000;
	if(i_2<10){
		printf("w:%f\n",r);
	}
	address = XPAR_AXI_BRAM_CTRL_0_S_AXI_BASEADDR+i_2*4;
	Xil_Out32(address,*((u32*)&r));
}

传出例子

//XLetnet_Get_r传出的是u32类型参数
u32 res = XLetnet_Get_r(&HlsXLetnet);
int result = *((int*)&res);

你可能感兴趣的:(FPGA,XILINX)