次のデータがあります。
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: 注 B は長期間固定されていますが、再プログラムすることができます。
更新 2: A のシフトは次のようになります: a[24] <= a[19], a[23] <= a[18]... a[1] <= new01, a[0] <= new00. など、各クロックサイクルで
どうもありがとう!