4 N桁の加算

ここでは、2進数N桁の加算の回路を考えます。N桁の加算回路の構成がどのよ うになっているか良く理解してください。そして、計算が回路で可能であるこ とをよく理解してください。

4.1 並列加算回路

いままで、1桁の加算器の回路について説明しました。今度は、複数の桁の加 算です。賢明な諸君であれば、N桁の加算はN個の全加算器用いればよいと直ぐ に気が付くと思います。即ち、図10のようにすればよ いのです。これを並列加算器と言います。全加算器は直列に接続されているの ですが、加算データは並列に入力されるのでその名前がつけられと思います。
図 10: 4桁の並列加算器。2進数の $ x_3x_2x_1x_0$ $ y_3y_2y_1y_0$の 加算を行う。
\includegraphics[keepaspectratio, scale=1.0]{figure/adder_pararel.eps}

4.2 直列加算回路

これまでの回路は、組み合わせ回路でした。しかし、ここでは順序回路である 累算器4を用いた回路です。これは、記憶するこ できるので順序回路となっています。

直列加算回路は、図11に示すように1個の全加算器と、2 個のレジスター(演算用のメモリー)と1個の桁上げメモリーから構成されてい ます。これらの回路の詳細については、時間の都合でここでは述べません。そ の動作を述べます。

この回路の動作の順序は、次のようになります。

  1. 図に示すように計算する数 $ x_3x_2x_1x_0$ $ y_3y_2y_1y_0$を各レジ スターに格納します。
  2. 次に、各レジスタを1ビット右にシフトさせます。あふれ出たビットは、 全加算器の入力$ A,\,B$となります。最初、$ C_i$は0です。したがって、最下位 の和が計算され、その結果が$ S$$ C_o$に出力されます。
  3. 計算結果の$ S$は累算器の最上位のビットに格納されます。$ C_o$は桁 上げメモリーに格納されます。
  4. 次の桁の計算は、先ほどとおなじで各レジスターを1ビット右にシフト させます。あふれ出たビットは、全加算器の入力$ A,\,B$となります。 同時に、桁上げメモリーから先ほどのデータを引き出し$ C_i$の入力と します。これで次の桁の計算結果が、$ S,\,C_o$に現れます。
  5. 加算すべきビットが全て出て行くまで、以上を繰り返します。
  6. 全てのビットの処理が終了したならば、累算器には加算結果が残りま す。そして、桁上げメモリーにはオーバーフローのデータが残ります。
以上が、直列加算回路の動作です。
図 11: 4桁の直列加算器
\includegraphics[keepaspectratio, scale=1.0]{figure/adder_serial.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年8月20日


no counter