将指针数组传递给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内存中的数组的索引