演算回路を設計しよう

  1. 加算回路を設計しよう

    1. 2進数とは

      1桁の10進数では0〜9までの数字しか表現できません。10以上の数字は二桁の数字を利用して 10*M+N をMNと表記します。3桁の数は LMN と表記し、
        10*10*L + 10*M + N
      を表します。
       同様に、2進数1文字では0,1しか表現できません。数、2,3は二桁の数字MNで
      2*M + N のように表すことができます。4以上の数は 3桁の LMN で 2*2*L + 2*M + 2*N を表します。これで、0〜7までを表現できます。

      1. 問題

        6,9,12に対応する2進数を求めなさい。
        01101 に対応する10進数を求めなさい。

    2. 2進数の足し算

      2進数の足し算も10進数の足し算と変わりません。下の桁から桁上がりを考慮して順に計算します。10進数で2以上の場合は、結果1を次の桁への桁上がりとします。

      1. 問題

        次の2進数の加算をし、さらに、10進数で計算して検算しなさい。
        01101+00101=
        01001+01111=

    3. n桁の2進数の加算

       n桁の2進数の加算回路を真理値表で定義することも可能ですが桁数が多くなると現実的でなくなります.例えば 5 桁の加算の場合入力数は10となりますから,真理値表の行数は 1024 となってしまいます.
       しかし,人もn桁の加算を一度に計算しているわけではありません。1 桁の計算を桁上げを通して繰り返すことにより計算しています.多桁の 2 進数の加算も 10 進と同様に 1 桁の加算の繰り返しで可能です.次に例を示します.桁上がりを考慮しながら、下位の桁から順に一桁づつ計算していく手順を確認して下さい。
         0 0 1 0
       + 0 1 1 0
      ------------
        1 0 0 0

      1. やればできる?

        5桁の加算回路を一般的な方法で設計します。入力を A4,A3,A2,A1,A0 と B4,B3,B2,B1,B0 とします。入力の数が10ですから真理値表(忘れた人は前回の真理値表を参照)の行の数は、210=1024 となります。作る元気ありますか?

    4. 問題を小さく分解しよう

      1. 1桁の加算器を接続する

         n桁の加算器は、一桁の加算器を次のように、縦続に接続して合成することができます。このとき、前桁の桁上げ出力Dを次の桁のC入力に接続します。最初の桁の桁上げ入力は0とします。
         出力Dは次の桁の入力Cとなりますから、Dをリレー回路に接続し、C(^C)は前の段のリレーDのオン側(オフ側)接点を利用します。このようにすると、1桁の回路ができればそれをn個並べるだけで、n桁の加算回路ができます。

        1. n桁加算回路

      2. 問題

        n=3として次のように入力を定めたとき、各出力の値を図に記入しなさい。

        1. (A3,A2,A1,A0)=(0,1,1,0)、 (B3,B2,B1,B0)=(1,0,1,0)

    5. 加算回路を設計しよう

      1. n桁の加算回路

        これで、n桁の加算器を制作する準備はできました。

      2. 1桁加算回路を設計する

        1桁の加算回路を作成します。まず、X,Y,C を入力とし、その和をSとする真理値表を作成します。次に、X,Y,C を入力とし、その桁上げをDとする真理値表を作成します。SとDを計算するスイッチ回路を作成します。Sはランプで表示し、Dは次の桁の桁上げ入力C:になります。

        (例)加算器の和(S)と桁上げ(D)の真理値表
        X Y C S D
        0 0 0 0 0
        0 0 1 1 0
        0 1 0 1 0
        0 1 1 0 1
        1 0 0 1 0
        1 0 1 0 1
        1 1 0 0 1
        1 1 1 1 1
      3. 半加算と全加算

        Dは、X,Y,Cの二つ以上が1のとき1になります。したがって、
         D=X・Y + X・C + Y・C
        となります。
         XとYとの排他的論理和を◎とします。すると
         S=X ◎ Y ◎ C
        となります。排他的論理和は半加算器とも呼ばれます。半加算演算は二つの信号の和を計算しますが、これは、排他的論理和と同じです。XとYの半加算に、さらにCを半加算すると、「全加算」になります。

      4. レポート課題

        1桁の加算回路を接続して、2進数4桁の和を計算するゲート回路を用いて設計しなさい。詳細回路は1桁分を作成し、それを接続して、4桁の回路を構成するブロック図を示しなさい。

  2. 減算回路

    1. 説明

      以下は、詳細回路の説明は省略します。計算の方法と回路化のための概略について説明のみを行います。

    2. 補数

       減算を行うとき減算専用器を作成するのでなく、補数器を利用します。aの補数はaに加えると0になる数で10進数では -a に相当します。

    3. 10進数の補数

       十進数5の補数は-5ですが桁数を2桁に限定すると、95とすることもできます 5+95=100 ですが、計算範囲は2桁ですから3桁目の1を無視すると0になります。5の2桁の補数は 100-5 ですが、これは(99-5)+1 と計算できます。99-5 の引き算は、前の段からの「借り」が発生しませんから、簡単に計算できます。従って、2桁の範囲で a-b は
       a+(99-b)+1
      で計算できます。

      1. 問題

        45-32を、45に32の補数を加えることで計算しなさい。

    4. 2進数の補数

      同じように、3桁の2進数の補数(正確には、2の補数)は、各桁の否定をとり、それに1を加えることで計算できます。たとえば 011 の補数は (111-011)+1 で計算できます。111からの引き算は各桁の否定で計算できます。

      1. 問題

        01101 の2の補数xを求めなさい。01101にxを加えると同じ5桁の範囲で0になることを確認しなさい。

    5. 減算回路

      減算回路 a-b は、bの各桁の否定とaを加え、さらに1を加えることで計算できます。最後の +1 は、最初の桁に桁上がりを加えることで計算できます。したがって、減算回路は次のように加算回路をちょっと変形するだけで作成できます。
       引き算する信号の否定を加えます。
       先頭の桁の桁上がり入力に1を加えます(これで +1 ができます)
       (先頭の桁の桁上がりは、加算の場合は0とします)

    6. 減算回路のブロック図

      以下に、減算回路のブロック図を示します。

  3. 課題

     2進数(5桁)で次ぎの計算をしなさい。減算は2の補数で行う。結果が負の数の場合、2の補数表現とする。

    12+7=
    12-7=
    7-12=


トップに戻る