我有以下数据:
A = [a0 a1 a2 a3 a4 a5 .... a24]
B = [b0 b1 b2 b3 b4 b5 .... b24]
然后我想乘以如下:
C = A * B' = [a0b0 a1b1 a2b2 ... a24b24]
这显然涉及 25 次乘法。
但是,在我的场景中,每次“循环迭代”只有 5 个新值移入 A(并且 5 个旧值移出 A)。有没有什么快速的方法来利用数据正在通过 A 移动而不是全新的事实?理想情况下,我想最小化乘法运算的数量(以可能更多的加法/减法/累加为代价)。我最初认为收缩阵列可能会有所帮助,但它没有(我认为!?)
更新 1:Note B 长期固定,但可以重新编程。
更新 2: A 的移位如下: a[24] <= a[19], a[23] <= a[18]... a[1] <= new01, a[0] <=新00。依此类推每个时钟周期
非常感谢!