FPGAを使用して相互相関*操作を実行しようとしています。
私が現在苦労している重要な部分は、掛け算の部分です。超過またはオフセット表現** を使用する nx8 シフト レジスタの各 8 ビット要素を、乗算のために 0 を -1 として扱う nx1 シフト レジスタに対して乗算したいと考えています。
単一の要素に対してそれを行っていた場合、操作に対して次のようなことを行う可能性があります。
input [7:0] dataIn;
input refIn;
output [7:0] dataOut;
wire [7:0] dataOut;
wire [7:0] invertedData;
assign invertedData = 8'd0 - dataIn;
assign dataOut <= refIn ? dataIn : invertedData;
私が疑問に思っているのは、これを 4、8、n 要素にスケーリングするにはどうすればよいですか?
私の最初のことは、次のような for ループを使用することでした。
for(loop=0; loop < n; loop = loop+1)
begin
assign invertedData[loop*8+7:loop*8] = 8'd0 - dataIn[loop*8+7:n*8];
assign dataOut[loop*8+7:loop*8] <= refIn[loop] ? dataIn[loop*8+7:loop*8] : invertedData[loop*8+7:loop*8];
end
これはコンパイルされませんが、それは多かれ少なかれアイデアであり、私が望むことを行うための正しい構文を見つけることができないようです.
** http://www.cs.auckland.ac.nz/~patrice/210-2006/210%20LN04_2.pdf