我有一个用 System C 编写的简单块,它接收两个 10x10 数组,并对它们执行矩阵乘法以产生 10x1 输出。我遇到的问题是这些 10x10 数组实际上存储为“双精度”,因此进入该块的数据非常大,并且我使用的 FPGA 板上的空间利用率对于我的目的来说太大了。
如何在 10x10 阵列的每个时钟周期串行读取一位,这样我就不会试图在一个时钟周期内推入两个 10x10 双阵列?
我将如何设置我的测试平台来发送这些数据?
目前在我的模块中,我有:
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();
}
}
这两个代码片段仅用于在矩阵乘法之前设置数据。当前代码生成的 input_0 是一个 10x10 矩阵,包含所有 9,即我的测试台中双 for 循环的最后一个值。我想要一个 10x10 数组,其中每一行是 {0 1 2 3 4 5 6 7 8 9}。
谢谢。