gpt4 book ai didi

c++ - C++中通过参数传递3维数组,进行运算并返回

转载 作者:太空宇宙 更新时间:2023-11-04 12:39:16 26 4
gpt4 key购买 nike

我正在尝试传递存储在我的 PYNQ 板直接内存访问中的 3D 数组,执行一个简单的函数并作为输出返回到 DMA。这是我目前拥有的功能:

#include <ap_int.h>

#define BLOCKS 4
#define LENGTH 8


void multiplyArray(volatile ap_uint<32> * input[BLOCKS][LENGTH][LENGTH], volatile ap_uint<32> * output[BLOCKS][LENGTH][LENGTH]){

#pragma HLS INTERFACE axis PORT = input
#pragma HLS INTERFACE axis PORT = output

int x;
int j;
int i;

for(x = 0; x < BLOCKS; x++){

for(j = 0; j < LENGTH; j++){

for(i = 0; i < LENGTH; i++){

output[x][j][i] = input[x][j][i] + 1;
}

}

}

它返回多个错误,包括对输入不支持的内存访问,“output[x][j][i] = input[x][j][i] + 1;”既有读也有写,不能给轴设置输入。对此非常陌生,非常感谢您的帮助!

谢谢!

最佳答案

简单来说,这部分volatile ap_uint<32> *需要对应数组项类型。如果数组是 ap_uint<32> 类型的 3D 数组那么参数应该是ap_uint<32> input[BLOCKS][LENGTH][LENGTH] .示例:

void multiplyArray (ap_uint<32> input  [BLOCKS][LENGTH][LENGTH], 
ap_uint<32> output [BLOCKS][LENGTH][LENGTH]);

关于c++ - C++中通过参数传递3维数组,进行运算并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55042057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com