Сети, которая разветвляется, нельзя присвоить более одного значения

Я пытаюсь разработать 8-разрядный множитель на основе 4-разрядного множителя. так что это мой код:

module _8bit_multiply(a, b, q);

input [7:0] a;
input [7:0] b;

output [15:0] q;

wire [7:0] q0;
wire [7:0] q1;
wire [11:0] q2;
wire [11:0] q3;
wire [7:0] x0;
wire [11:0] x1;
wire [7:0] sum0;
wire [12:0] sum1;
wire [12:0] sum2;
wire co0;
wire co1;
wire temp;

_4bit_multiply m1(a[3:0], b[3:0], q0);

assign q[3:0] = q0[3:0];
assign x0[3:0] = q0[7:4];

_4bit_multiply m2(a[7:4], b[3:0], q1);

nbit_adder s1(x0, q1, 0, sum0, co0);

_4bit_multiply m3(a[3:0], b[7:4], q2);
_4bit_multiply m4(a[7:4], b[7:4], x1);

assign q3[11:4] = x1[7:0];

nbit_adder s2(q2, q3, 0, sum1, co1);

nbit_adder s3(sum0, sum1, co0, sum2, temp);
nbit_adder s4(sum2, 0, co1, sum2, temp);

assign q[15:4] = sum2[12:0];

endmodule

тогда я получаю эту ошибку:

Ошибка (12014): Net "sum2[11]", которая разворачивается на "q[15]", нельзя назначить более одного значения

Ошибка (12015): Сеть запитывается сообщением об ошибке "nbit_adder:s3|s[11]" (12015):

Сеть снабжается "nbit_adder:s4|s[11]"

И более чем так. что я должен делать?

1 ответ

Решение

Одна и та же переменная является выводом нескольких модулей в вашем коде. В основном вы делаете это:

assign sum2 = 1;
assign sum2 = 0;

Итак, Квартус не знает, что делать.

Другие вопросы по тегам