2016-10-28 18 views
2

私は、FPGAのC++で通常の帯域幅のカーネルを作成しています。これはホストメモリから何かを読み込み、ホストの別の場所に書き戻します。 私はstructsを使用しています。その要素の1つは、入力バッファと出力バッファのアドレスです。高水準合成ツールは、次のコードの最後の行にエラーを与えています。エラー:式が割り当てられないC++の構造体

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;} 

答えて

3

私はそのため(ap_uint<512> *)前に行方不明間接参照(先頭のスターに注意してください)があり、あなたがdout_memにポインタに割り当てると仮定します。

*(ap_uint<512> *)(dout_mem + CA_OUTPUT.address + i*64) = temp; 
+0

ノートは、これは厳しいエイリアシング違反であります –

関連する問題