0

2 つの 10x10 配列を取り、それらに対して行列乗算を実行して 10x1 出力を生成する、System C で記述された単純なブロックがあります。私が抱えている問題は、これらの 10x10 配列が実際には「double」として格納されているため、このブロックに入るデータが非常に大きく、使用している FPGA ボードのスペース使用率が目的に対して大きすぎることです。

1 クロック サイクルで 2 つの 10x10 ダブル アレイをプッシュしないように、10x10 アレイのクロック サイクルごとに 1 ビットをシリアルに読み込むにはどうすればよいですか?

このデータを送信するようにテストベンチを設定するにはどうすればよいですか?

現在、私のモジュールには次のものがあります。

sc_in<double> in_0;
double [10][10] input_0;
void init_0(){
    int i, j;
    for (i=0; i<10; i++){
        for(j=0; j<10; j++){
            input_0[i][j] = in_0.read();

        }
    }
}

    SC_METHOD(init_0);
        sensitive << in_0 << clock.pos();

私のテストベンチは次のように実行されます。

    for(i=0; i<10; i++){
        for(j=0; j<10; j++){
            in_0 = j;
            wait();
        }
    }

これら 2 つのコード スニペットは、行列の乗算の前にデータを設定するためだけのものです。現在のコードは、input_0 をすべて 9 を保持する 10x10 マトリックス、つまりテストベンチの double for ループの最後の値として生成します。各行が {0 1 2 3 4 5 6 7 8 9} である 10x10 配列が必要です。

ありがとう。

4

1 に答える 1