将指针数组传递给Vivado HLS中的函数(SDSoC 2018) 我正在使用SDSOC 2018.3 VIVADO HLS加速C++功能。此函数只接受一个指针数组(使用sds_alloc在PS中分配)。然后,它在这个数组上循环,提取它的每个元素(DDR内存的一个地址),并读取这个地址中的数据
下面是一个简单的函数,演示了这一思想:将指针数组传递给Vivado HLS中的函数(SDSoC 2018) 我正在使用SDSOC 2018.3 VIVADO HLS加速C++功能。此函数只接受一个指针数组(使用sds_alloc在PS中分配)。然后,它在这个数组上循环,提取它的每个元素(DDR内存的一个地址),并读取这个地址中的数据,c++,fpga,xilinx,vivado,vivado-hls,C++,Fpga,Xilinx,Vivado,Vivado Hls,下面是一个简单的函数,演示了这一思想: float get_data_from_DDR(float *data_addresses_array[10], unsigned int size) { float * address; float sum = 0; for(unsigned int i = 0; i< 10; i++) { address = data_addresses_array[i]; for
float get_data_from_DDR(float *data_addresses_array[10], unsigned int size)
{
float * address;
float sum = 0;
for(unsigned int i = 0; i< 10; i++)
{
address = data_addresses_array[i];
for(unsigned int j = 0; j<size; j++ ) {
sum += address[j];
}
}
return sum;
}
float从DDR获取数据(float*data\u地址\u数组[10],无符号整数大小)
{
浮动*地址;
浮点数和=0;
for(无符号整数i=0;i<10;i++)
{
地址=数据地址数组[i];
对于(unsigned int j=0;j我不确定是否有办法直接克服此限制,但也许您可以传递偏移量数组,然后将这些偏移量用作放置在DDR内存中的数组的索引。我不确定是否有办法直接克服此限制,但也许您可以传递偏移量数组Instead,然后将这些偏移量用作放置在DDR内存中的数组的索引