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);