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);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章