Ошибка C ++: невозможно передать поток A - записи не транслируются в последовательном порядке - PullRequest
0 голосов
/ 07 марта 2019

Я получаю эту ошибку при попытке выполнить уравнение DCT для потока матрицы (A). Ошибка возникает в последней строке, я чувствую, что это может быть связано с типами данных, однако я не совсем уверен, и сообщение об ошибке, кажется, указывает на иное. Любая помощь приветствуется.

#include <ap_axi_sdata.h>
#define pi 3.142857
typedef ap_axis<32,1,1,1> stream_type;

#define BLOCKS 4
#define LENGTH 8


void multiplyArray2(stream_type A[4][8][8], stream_type B[4][8][8]){

    #pragma HLS INTERFACE ap_ctrl_none PORT = return
    #pragma HLS INTERFACE axis PORT = A
    #pragma HLS INTERFACE axis PORT = B


    float dct1;

    int block, dctRow, dctColumn, row, column;

    for(block = 0; block < 4; block++){
        for(dctRow = 0; dctRow < 8; dctRow++){
            for(dctColumn = 0; dctColumn < 8; dctColumn++){
                for(row = 0; row < 8; row++){
                    for(column = 0; column < 8; column++){
                        dct1 = A[block][row][column].data * cos(((2*row+1)*dctRow*pi)/16.0);

Я включил код только там, где происходит ошибка.

...