2011年06月22日

除算回路

こんにちはひらめき
タイラです。

今回も回路図シリーズをお届けします。
4回目の今回は四則演算で最も難関と言われる除算回路を紹介したいと思います。パンチ

除算回路は前回の積算回路と似たような考え方で、
シフトをしながら引き算を行っていくやり方になります。

今まで使っていた加算器では減算出来る事が前提となっていた為、
減算出来なかった場合が想定されていないので、
それを可能にした全加算器が以下の図になります。

20110622_FA2.png

入力Dが0の場合、演算結果の出力Sが入力Aをそのまま出力するようになっています。
その他基本的な部分は通常の加算器と同様の動きを行います。
実はこの部分さえ出来てしまえば、減算回路と積算回路の考え方で除算回路を作成することが出来ます。

そして、除算用に改良した全加算器を4x4個並べてた以下の図が除算回路になります。わーい(嬉しい顔)

20110622_DIV2.png

前々回に触れた引き算の際には入力のビットを反転させて2の補数を作ると紹介しましたが、
今回も同じように2の補数を利用して各ビットの減算を行っています。
各ビットにそれぞれシフトしながら減算を行っています。
減算出来なかった場合は入力Dが0になる為、入力Aの値がそのまま下位ビットに渡されます。
4回この計算を繰り返す事で4bit分の除算を行う事が出来ます。


今回の回路ですと、上位ビットの計算結果を出す為に一度計算した値で再度計算を行う必要があるので、
下位ビットに値が渡されるまでに時間がかかってしまいます。

プログラムをする際でも割り算は遅いと耳にするのは、より多くの計算手順を踏む必要があるからです。
加算減算と比べて格段に遅いのもこのためです。ふらふら

みなさんもプログラムをする際には、四則演算ごとの処理負荷を気にかけてみてはいかがでしょうか?
それでは手(パー)

posted by 管理人 at 21:31 | 回路図