2 ビット乗算器の次のコードがあります。
module Multiplier (a0, a1, b0, b1, c[3:0]);
output [3:0]c;
input a0, a1, b0, b1;
wire a0b1, a1b0, ha0c, a1b1;
and (c[0], a0, b0);
and (a0b1, a0, b1);
and (a1b0, a1, b0);
HalfAdder ha0 (a1b0, a0b1, c[1], ha0c);
and (a1b1, a1, b1);
HalfAdder ha1 (ha0c, a1b1, c[2], c[3]);
endmodule
ただし、これを2ビット以上(32ビット)に拡張できるようにしたいです。ただし、私のコードの構造はこれに課題をもたらします。まず、モジュールには 68 個のパラメーターが必要です。また、64 本のワイヤー (ワイヤー a0b1、a1b0、ha0c、a1b1 の複製) を手動で作成する必要があります。最後に、すべてのロジックを接続するために、一連のロジック ゲートと HalfAdder モジュールを手動で書き出す必要があります。このため、n (渡されたパラメーター) サイズのバイナリ乗数をインスタンス化できるようにコードをリファクタリングできる方法があるかどうか疑問に思っています。