Error: Expression is not assignable C++ struct
Error: Expression is not assignable C++ struct
我正在用 C++ 为 FPGA 编写一个普通带宽内核,它从主机内存中读取一些内容并将其写回主机中的不同位置。
我正在使用结构,其中一个元素是输入和输出缓冲区的地址。高级综合工具在以下代码的最后一行给出错误。
struct addr_struct {
ap_uint<64> address;
ap_uint<32> size;
ap_uint<16> type;
ap_uint<16> flags;
};
struct addr_struct CA_INPUT;
struct addr_struct CA_OUTPUT;
din_mem = 0x00;
dout_mem = 0x00;
ap_uint<32> i;
ap_uint<512> temp;
ap_uint<512> *din_mem;
ap_uint<512> *dout_mem;
for(i=0; i<2048; i++){
temp= (ap_uint<512> *)(din_mem + CA_INPUT.address + i*64);
(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;}
我假设您想分配给 dout_mem
中的指针,因此在 (ap_uint<512> *)
之前缺少取消引用(注意开头的星号):
*(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;
我正在用 C++ 为 FPGA 编写一个普通带宽内核,它从主机内存中读取一些内容并将其写回主机中的不同位置。 我正在使用结构,其中一个元素是输入和输出缓冲区的地址。高级综合工具在以下代码的最后一行给出错误。
struct addr_struct {
ap_uint<64> address;
ap_uint<32> size;
ap_uint<16> type;
ap_uint<16> flags;
};
struct addr_struct CA_INPUT;
struct addr_struct CA_OUTPUT;
din_mem = 0x00;
dout_mem = 0x00;
ap_uint<32> i;
ap_uint<512> temp;
ap_uint<512> *din_mem;
ap_uint<512> *dout_mem;
for(i=0; i<2048; i++){
temp= (ap_uint<512> *)(din_mem + CA_INPUT.address + i*64);
(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;}
我假设您想分配给 dout_mem
中的指针,因此在 (ap_uint<512> *)
之前缺少取消引用(注意开头的星号):
*(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp;