符号付き乗算(Baugh-Wooley)

[] [] []


新入社員のとき最初の仕事が乗算器の回路設計だった。今は、乗算器なんてFPGAに専用ハードウェアが備わっていて論理合成できるので、自分で設計する人はいないと思うが、前々項で示した2の補数の式を使った計算例として紹介する。以下の計算はBaugh-Wooleyのアルゴリズムとして知られており、「Computer Arithmetic(Hwang)によっている。

(n+1)ビットと(m+1)ビットの符号付き乗算を式で書くと

ここで第2項、第3項が引き算になっているので、これを足し算に直したい。そのため、

を使って第2項、第3項を書き換えると

ここで、まだ第1項に引き算があるので足し算に直すため

を使って書き換えると、結局、次式が得られる。

例えば5ビット(n=4)3ビット(m=2)の乗算は次のようになる。

                      a4     a3     a2     a1     a0

                 *)                 b2     b1     b0

                 -----------------------------------

                   a4~b0  a3b0  a2b0  a1b0  a0b0

            a4~b1  a3b1  a2b1  a1b1  a0b1

            ~a3b2 ~a2b2 ~a1b2 ~a0b2

     ~a4~a2           a4            b2

  -1      1

 ---------------------------------------------------

  p7     p6    p5     p4      p3     p2     p1    p0


[] [] []