Я недавно использую Verilog, поэтому я даже не уверен, правильно ли я использую синтаксис.Мне нужно умножить 2 входные шины по 8 бит каждая.Я пытаюсь получить результат каждого 8 × 1 только в одном проводе, больше похоже на объединение 8 результатов (по одному на умножение 8 × 1).
module m8bit(
input reg[7:0]A,
input reg[7:0]B);
wire [63:0] P;
genvar i,j;
integer k=0;
for(i=0; i<8; i=i+1) begin
for(j=0; j<8; j=j+1)begin
P[k]=(A[i])*(B[j]);
k<=k+1;
end
end
Как видите, я использовал genvar i
и j
для итерации цифр шины, но так как мне нужно, чтобы все результаты были получены одним проводом [63:0]P
, я могу '• используйте i
или j
(они сбрасываются при перезапуске цикла).Когда я пытаюсь скомпилировать, я получаю следующие ошибки:
** Error: (vlog-13069) mult8bit.v(21): near "[": syntax error, unexpected '['.
** Error:mult8bit.v(21): (vlog-13205) Syntax error found in the scope following 'P'.
Is there a missing '::'?