-2
4ビット乗算器に基づいて8ビット乗算器を設計しようとしています。これは私のコードです:ネットがファンアウトし、複数の値を割り当てることができません
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
は、私はこのエラーを取得する:このようなより
Error (12014): Net "sum2[11]", which fans out to "q[15]", cannot be assigned more than one value
Error (12015): Net is fed by "nbit_adder:s3|s[11]" Error (12015):
Net is fed by "nbit_adder:s4|s[11]"
そして、もっと。私は何をすべきか ?
あなたは[MCVE](https://stackoverflow.com/help/mcve)を提出していません( 'nbit_adder'と' _4bit_multiply'は何ですか?)、これは正しく表示されません: 'nbit_adder s4 sum2、0、co1、sum2、temp); ' - ' sum2'が2回現れます。 –
あなたのコードwoukldは、インスタンス化のために_ordered mapping_の代わりに_named mapping_を使用した方が理解しやすくなりました。順序付けられたマッピングを使用しないでください。それはHDLの最大の罪です。 –