我正在尋找使用FPGA來執行互相關*操作。的Verilog平行檢驗和分配跨不同的大中移位寄存器
,我目前正在與掙扎secific部分是乘法件。我想將一個nx8移位寄存器的每個8位元素與一個nx1移位寄存器進行乘法運算,這個nx8移位寄存器使用過量或偏移量表示**,爲了乘法的目的,我將0視爲-1。
現在,如果我在做,對於一個單一的元素,我可能會爲操作做這樣的事情:
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
感謝您的答覆。我會給它一個鏡頭。至於第3點,在循環內的賦值語句中交換n循環。我的意思是n是代表數組大小的任何常量值。 –