2 原理と実験方法

2.1 論理回路実習装置(ITF-02)を用いた実験


2.1.1 半加算器と全加算器の実習

加算器の理論

加算器には,下位からの桁上げを考慮しない半加算器(Half Adder)と,下位からの桁上 げを考慮する全加算器(Full Adder)がある.全加算器は,半加算器を2個,直列に接続 した形になる.また,後で示すことになるが,回路の和(Sum)を構成している部分は, Exclucive ORになっている.

和(Sum)をS,桁上げ(Carry)をCとすれば,半加算器の真理値表は,表 1のようになる.この真理値表から,半加算器では, 次式のような論理式が得られる.

$\displaystyle S$ $\displaystyle =\bar{A}\cdot B+A\cdot\bar{B}$ (1)
$\displaystyle end{tex2html_deferred}$ (2)
$\displaystyle end{tex2html_deferred} C$ $\displaystyle =A\cdot B$ (3)

となる.または,

$\displaystyle S=A\oplus B$ (4)

と書いても同じである.これらの論理式を論理回路に置き換えると,図 12のようになる.

全加算器の真理値表は,表2のようになる.これか ら,その論理式は

$\displaystyle S$ $\displaystyle =\bar{A}\cdot\bar{B}\cdot C_i+\bar{A}\cdot B \cdot\bar{C_i}+ A\cdot\bar{B}\cdot\bar{C_i}+A\cdot B\cdot C_i$ (5)
$\displaystyle end{tex2html_deferred}$ (6)
$\displaystyle end{tex2html_deferred} C_o$ $\displaystyle =\bar{A}\cdot B \cdot C_i +A\cdot\bar{B}\cdot C_i+ A \cdot B\cdot\bar{C_i}+A\cdot B\cdot C_i$    
$\displaystyle end{tex2html_deferred}$ (7)
$\displaystyle end{tex2html_deferred}$ $\displaystyle =A\cdot B\cdot C_i+A\cdot C_i$ (8)

となる.いま, $ S_1=\bar{A}\cdot B+A\cdot\bar{B}$とすれば,

$\displaystyle S=\bar{S_1}\cdot C_i+S_i\cdot\bar{C_i}$ (9)

となる.また, $ C_1=A\cdot B$ $ C_2=S_1\cdot C_i$とすれば,

$\displaystyle C_o$ $\displaystyle =C_1+C-2 $ (10)
$\displaystyle end{tex2html_deferred}$ (11)
$\displaystyle end{tex2html_deferred}$ $\displaystyle =A\cdot B+S_1\cdot C_i$ (12)

となり,さらに,Exclucive OR で表せば,

$\displaystyle S$ $\displaystyle =A\oplus B\oplus C_i $ (13)
$\displaystyle end{tex2html_deferred}$ (14)
$\displaystyle end{tex2html_deferred} C_o$ $\displaystyle =A\cdot B+(A\oplus B)\cdot C_i$ (15)

となる.この論理式は,図34のような論理回路になる.

加算器の実習

1から図4に示した4つの加算 回路をパネル上で構成し,真理値表を表示器で確認する.実際の実習回路は,図 5から図8に示す.

表 1: 半加算器の真理値表
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1


表 2: 全加算器の真理値表
A B C $ _{\tw {i}}$ S C $ _{\tw {o}}$
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

図 1: 半加算器
\includegraphics[keepaspectratio, scale=1.0]{figure/logic2/MIL_half_adder_1.eps}
図 2: XORを使った半加算機
\includegraphics[keepaspectratio, scale=1.0]{figure/logic2/MIL_half_adder_2.eps}
図 3: 全加算器
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/MIL_full_adder_1.eps}
図 4: XORをつかった全加算器
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/MIL_full_adder_2.eps}
図 5: 実験接続図(半加算器)
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/exp_half_adder_1.eps}
図 6: 実験接続図(XORをつかった半加算器)
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/exp_half_adder_2.eps}
図 7: 実験接続図(全加算器)
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/exp_full_adder_1.eps}
図 8: 実験接続図(XORをつかった全加算器)
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/exp_full_adder_2.eps}


2.1.2 エンコーダー(encoder)の実習

エンコーダーの理論

情報を符号化する回路をエンコーダーと言う.ここでは,10進数を4ビットの2進数コー ド(たとえば,BCDコード)にコード化するような論理回路について学習する.10進数と BCDコードの関係は,次のようになる.
10進数 "0"〜"9"
2進数 A=$ 2^0$ビット,B=$ 2^1$ビット,
C=$ 2^2$ビット,D=$ 2^4$ビット

として

A="1"+"3"+"5"+"7"+"9"
B="2"+"3"+"6"+"7"
B="4"+"5"+"6"+"7"
B="8"+"9"
とする.この真理値表を,表3に示す.そして,これ に対応する論理回路を図9に示す.

エンコーダーの実習

パネル上のエンコーダー部分を使用し,図9の論理回路を作成す る.図10に接続例を示す.

表 3: エンコーダーの真理値表
10進 2進出力
入力 D C B A
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1

図 9: エンコーダーの論理回路
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/MIL_encoder.eps}
図 10: 実験接続図(エンコーダー)
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/exp_encoder.eps}


2.1.3 デコーダー(decoder)の実習

デコーダーの理論

符号化された情報を元に戻す回路をデコーダーと言う.ここでは,4ビットの2進数コー ドを,もとの10進数に戻す回路を学習する.

BCDコードでは,2進数と10進数の関係は,次のようになる.

2進数コード A=$ 2^0$ビット,B=$ 2^1$ビット,
C=$ 2^2$ビット,D=$ 2^4$ビット
10進数 "0"〜"9"として
"0"= $ \bar{\mathrm{A}}\cdot\bar{\mathrm{B}}\cdot
\bar{\mathrm{C}}\cdot\bar{\mathrm{D}}$
"1"= $ \mathrm{A}\cdot\bar{\mathrm{B}}\cdot
\bar{\mathrm{C}}\cdot\bar{\mathrm{D}}$
"2"= $ \bar{\mathrm{A}}\cdot\mathrm{B}\cdot
\bar{\mathrm{C}}\cdot\bar{\mathrm{D}}$
"3"= $ \mathrm{A}\cdot\mathrm{B}\cdot
\bar{\mathrm{C}}\cdot\bar{\mathrm{D}}$
"4"= $ \bar{\mathrm{A}}\cdot\bar{\mathrm{B}}\cdot
\mathrm{C}\cdot\bar{\mathrm{D}}$
"5"= $ \mathrm{A}\cdot\bar{\mathrm{B}}\cdot
\mathrm{C}\cdot\bar{\mathrm{D}}$
"6"= $ \bar{\mathrm{A}}\cdot\mathrm{B}\cdot
\mathrm{C}\cdot\bar{\mathrm{D}}$
"7"= $ \mathrm{A}\cdot\mathrm{B}\cdot
\mathrm{C}\cdot\bar{\mathrm{D}}$
"8"= $ \bar{\mathrm{A}}\cdot\bar{\mathrm{B}}\cdot
\bar{\mathrm{C}}\cdot\mathrm{D}$
"9"= $ \mathrm{A}\cdot\bar{\mathrm{B}}\cdot
\bar{\mathrm{C}}\cdot\mathrm{D}$

この式を満足する真理値表は,表4の通りである.そ の論理回路は,図11の示すとおりである.

デコーダーの実習

パネル上のデコーダーの部分を使用して,11の論理回路を作成す る.接続例を図12に示す.

表 4: デコーダーの真理値表
2進入力 10進出力
D C B A 0 1 2 3 4 5 6 7 8 9
0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 1 0 0 0 0 0 0 0 0
2 0 0 1 0 0 0 1 0 0 0 0 0 0 0
3 0 0 1 1 0 0 0 1 0 0 0 0 0 0
4 0 1 0 0 0 0 0 0 1 0 0 0 0 0
5 0 1 0 1 0 0 0 0 0 1 0 0 0 0
6 0 1 1 0 0 0 0 0 0 0 1 0 0 0
7 0 1 1 1 0 0 0 0 0 0 0 1 0 0
8 1 0 0 0 0 0 0 0 0 0 0 0 1 0
9 1 0 0 1 0 0 0 0 0 0 0 0 0 1

図 11: デコーダーの論理回路
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/MIL_decoder.eps}
図 12: 実験接続図(デコーダー)
\includegraphics[keepaspectratio,scale=0.8]{figure/logic2/exp_decoder.eps}

2.2 論理回路実習装置(ITF-07)を用いた実験


2.2.1 累算器を用いた加算回路の実習

加算の理論

2進法による加算方法には,並列加算方式と直列加算方式があるが,本装置では,動 作が分かりやすい直列加算方式を採用している.直列加算方式の基本回路は,図2-2に 示すように被加数レジスタ(A),加数レジスタ(B),加算器桁上げメモリ (C),および和レジスタ(Y)で構成される.

加算の実行は,被加数レジスタ(A),加数レジスタ(B)のデータを下位ビット から1ビットずつ右へシフトさせ,加算器で加算したデータを和レジスタに,順次入力 する方法でおこなわれる.レジスタのビット数だけのシフトと加算がおこなわれて,演 算が終了する.加算器による加算は,次のようにおこなわれる.例えば,10進数の$ 7+3
=10$の場合,この式を4ビットの2進数で書きなおすと次式になる.

  $\displaystyle \tw {0111+0011=1010}$ (16)
$\displaystyle end{tex2html_deferred}$ (17)
$\displaystyle end{tex2html_deferred}$   (18)
$\displaystyle end{tex2html_deferred},$ (19)
$\displaystyle end{tex2html_deferred},\tw {(A)}\quad\tw {(B)}\qquad\tw {(Y)または(S)}$    

加算は(A)(B)の$ 2^0$ビットから順次おこなわれ,$ 2^3$で終了するが,その過程を 表5を用いて説明しよう.加算器の入力はA,B,C $ _{\tw {i}}$ の3つで,出力はC$ _\tw {o}$,Sの2つである.またC$ _o$C$ _i$に移動 している.$ 2^0$ビットを見ると,A,Bとも"1"で,C $ _{\tw {i}}$は"0"なので, SC $ _{\tw {o}}$はそれぞれ次式のようになる.

  $\displaystyle \tw {S=1+1+0=0} $ (20)
$\displaystyle end{tex2html_deferred}$ (21)
$\displaystyle end{tex2html_deferred}$ $\displaystyle \tw {C$_{\tw {o}}$=1}$ (22)

$ 2^1$ビットの加算をおこなうためにレジスタをシフトしたとき,C $ _{\tw {o}}$の データがメモリに記憶されて,C $ _{\tw {i}}$に出てくる.$ 2^1$ビットの加算では, SC $ _{\tw {o}}$は,それぞれ次式のようになる.

  $\displaystyle \tw {S=1+1+1=1=1} $ (23)
$\displaystyle end{tex2html_deferred}$ (24)
$\displaystyle end{tex2html_deferred}$ $\displaystyle \tw {C$_{\tw {o}}$=1}$ (25)

このように,キャリー出力C $ _{\tw {o}}$のデータは次回の加算時に, C $ _{\tw {i}}$としてあらわれる.これらの動作を,順次$ 2^3$ビット加算まで繰返 しおこなう.

表 5: 加算器動作
\begin{table}
\begin{center}
\includegraphics[keepaspectratio, scale=1.0]
{figure/logic2/table_kasan_dousa.eps}
\end{center} \end{table}


図 13: 直列加算方式
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/serial_add_method.eps}
13方式では,レジスタが3個必要であるが,被加数レジス タの空いたビットに加算機の結果を順番に入れていけば,レジスタは2個ですむ.この ように,被加数レジスタと和レジスタを兼ねたレジスタを累算器と言う.

累算器を用いた加算の回路構成を図14に示す.この方式では, 累算(連続の加算)が可能になる.例えば,10進数の1+2+5=8の加算をおこなう場合, 次のような動作となる.

  1. 累算器の内容を全ビット,ゼロにする.&dotfill#dotfill;00000
  2. 加数レジスタに,10進数1に相当する2進数を設定する.&dotfill#dotfill;00001
  3. 加数をおこなう.累算器のデータ&dotfill#dotfill;00001
  4. 加数レジスタに,10進数2に相当する2進数を設定する.&dotfill#dotfill;00010
  5. 累算器と加数レジスタの加算をおこなう.
    累算器のデータ&dotfill#dotfill;00011
  6. 加数レジスタに10進数5に相当する2進数を設定する.&dotfill#dotfill;00101
  7. 累算器と加数レジスタの加算をおこなう.
    累算器のデータ&dotfill#dotfill;01000
累算器のデータを10進数に変換すれば,8になる.

5ビットのレジスタによる累算の容量は11111で,10進数の31となるので,この範囲まで の累算がおこなえることになる.ただひ,本装置では,10進数変換回路が19までの容量 しかないので,10進数で見る場合は19までとなり,2進数のままであれば5ビット(10進 数の31)フルに見ることができる.

図 14: 累算器を用いた直列加算方式
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/accum_add_method.eps}
加算の実習
$ \blacksquare$結線およびスイッチの設定
  1. 電源スイッチをOFFにする.
  2. 端子1と2, 4と18, 6と16, 7と17および10と11間をリードチップで接続する. (図13参照)
  3. A」累算器のシフト方向スイッチを, $ \Rightarrow$印方向に設定する.
  4. B$ ^\prime$レジスタの表示器ON/OFFスイッチを,OFFにする.
  5. M」レジスタの表示器ON/OFFスイッチを,OFFにする.
  6. 10進数表示器ON/OFFスイッチを,左右の2個ともOFFにする.
  7. A$ ^\prime$/「A」切換スイッチを「A」側に設定する.
  8. 電源スイッチをONにし,以下の操作をおこなう.

$ \blacksquare$操作順序

具体的な数値(たとえば7+5=12)を用いて,操作順序を説明する.演算の過程は, 図16に示す. []

  1. =1pt =0.2pt CLをプッシュして,各レジスタの内容と表示をゼロにする.
  2. レジスタ選択(A)をプッシュする.
  3. 数字設定キーの=1pt =0.2pt 7をプッシュする.「A」累算器には,被加数7に 相当する2進数がセットされる.
  4. レジスタ選択スイッチの(B)をプッシュする.
  5. 数字設定キーの=1pt =0.2pt 5をプッシュする.「B」レジスタには,加数5に 相当する2進数がセットされる.
  6. =1pt =0.2pt ADDをプッシュして,「A」累算器と「B」レジスタの最下位ビッ トどうしの加算をおこなう.S=0, C $ _{\tw {o}}$=1となる.
  7. =1pt =0.2pt Iを1回プッシュして,「A」累算器と「B」レジスタの内容 を,右へ1ビットシフトさせる.S=0のデータは「A」累算器の最上位 ビットに記憶され,C $ _{\tw {o}}$=1のデータは桁上げメモリに記憶されて, C $ _{\tw {i}}$=1となる.
  8. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=0C $ _{\tw {o}}$=1となる.
  9. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=0のデー タは「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=1のデー タは桁上げメモリに記憶されて,C $ _{\tw {i}}$=1となる.
  10. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=1C $ _{\tw {o}}$=1となる.
  11. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=1のデー タは「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=1のデー タは桁上げメモリに記憶されて,C $ _{\tw {i}}$=1となる.
  12. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=1C $ _{\tw {o}}$=0となる.
  13. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=1のデー タは「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=0のデー タは桁上げメモリに記憶されて,C $ _{\tw {i}}$=0となる.
  14. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=0C $ _{\tw {o}}$=0となる.
  15. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=0のデー タは「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=0のデー タは桁上げメモリに記憶されて,C $ _{\tw {i}}$=0となる.以上の操作で, 5ビット全部の演算が終了する.「A」累算器には,演算結果の和 ($ 2^3+2^2$)が記憶されている.
  16. [15]の2進数データを10進数表示するために,10進数表示器ON/OFFスイッ チの左側のスイッチをONにすると,"12"と表示される.

$ \blacksquare$注意

  1. キーをプッシュするときは,1個ずつゆっくりプッシュすること.2個ずつ や,中途半端な操作は誤作動の原因となる.
  2. 累算をおこなう場合は,まずCP1をリセットする.そのためには,CP1の表 示が"0"になるように,=1pt =0.2pt Iをプッシュする.同様のことが,=1pt =0.2pt II IIIをプッシュすることによってもできる.なお,=1pt =0.2pt CLをプッシュする と,全部の設定がリセットされるので注意すること.
  3. CP1をリセットしたのち,2.2.1節の"操作順序"の [4]以降を,再度操作すること.累算がおこなわれる.
  4. "2.2.1 累算器を用いた加算回路の実習"では,累算がお こなえるように累算器を使用しているが,累算器を被加数レジスタとして加算 をおこなう場合は,次のように設定すること.
    1. 端子1と2,3と4,6と16,7と17,10と11,18と19および23と25をリードチップで 接続する.
    2. A」累算器のシフト方向スイッチを, $ \Rightarrow$印方向に設定する.
    3. M」レジスタのシフト方向スイッチを, $ \Rightarrow$印方向に設定する.
    4. B$ ^\prime$レジスタの表示器ON/OFFスイッチをOFFにする.
    5. M」レジスタの表示器ON/OFFスイッチをONにする.
    6. 10進数表示器ON/OFFスイッチを左右の2個ともOFFにする.
    7. A」+「M」/「M」切換スイッチを,「M」側に設定する.
    8. 2.2.1節の"操作順序"の[1][15]をおこなう. ただし,シフトさせたデータが「M」レジスタに入るため,図 16の「A」累算器の表示は,最終的には,「M」 レジスタにあらわれる.
    9. M」レジスタの2進数データを10進数表示するため,10進数表示器ON/OFFスイッ チの右側のスイッチをONにする.
図 15: 加算の場合の結線と操作順序.[ ]内の数字は操作順序を表す.
69#1
図 16: 加算におけるレジスタや累算器等のビットパターン
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/sequence_add.eps}

2.2.2 加算回路と補数器を用いた減算回路の実習

減算の理論 減算は,減数の補数と被減数の加算をお こなうことにより実行される.したがって,加算回路に補数器が付け加えられた回路構成 となる.図17に減算の基本回路を,図 18に累算器を用いた減算回路をそれぞれ示す.本装置の補数器 は,2の補数を得るためにまず,入力されたデータを否定回路で反転し,その後,最下位 ビットに1を加える方法を採用している.
図 17: 減算の基本回路
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/serial_sub_method.eps}
図 18: 累算器を用いた減算方式
\includegraphics[keepaspectratio,scale=1.0]{figure/logic2/accum_sub_method.eps}

減算においては,その結果(差)が負数になることもある.正・負の判別は,最上位ビット が1なら負数,0なら正数になる.その様子を表6に示す.た だし,これは"0"〜"9"までを5ビットの2進数で表示した場合で,4ビットで表示したとき は,"0"〜"7"までしか判別できない.累算をしない1桁の減算の場合,最も大きな負数に なるのは0-9=-9なので,5ビット表示が必要である.

累算をおこなう1桁の減算の場合,-15まで負数の判別ができる.表 6に,"0"〜"16" における5ビットの正数と負数の2進数表示 を示する."16"では正数も負数も同じ表示となり,判別できない.


表 6: 0〜16における正数と負数の2進数表示
10進 2進正数 10進 2進負数
正数 負数
$ 2^4$ $ 2^3$ $ 2^2$ $ 2^1$ $ 2^0$ $ 2^4$ $ 2^3$ $ 2^2$ $ 2^1$ $ 2^0$
0 0 0 0 0 0 0 0 0 0 0 0
+1 0 0 0 0 1 -1 1 1 1 1 1
+2 0 0 0 1 0 -2 1 1 1 1 0
+3 0 0 0 1 1 -3 1 1 1 0 1
+4 0 0 1 0 0 -4 1 1 1 0 0
+5 0 0 1 0 1 -5 1 1 0 1 1
+6 0 0 1 1 0 -6 1 1 0 1 0
+7 0 0 1 1 1 -7 1 1 0 0 1
+8 0 1 0 0 0 -8 1 1 0 0 0
+9 0 1 0 0 1 -9 1 0 1 1 1
+10 0 1 0 1 0 -10 1 0 1 1 0
+11 0 1 0 1 1 -11 1 0 1 0 1
+12 0 1 1 0 0 -12 1 0 1 0 0
+13 0 1 1 0 1 -13 1 0 0 1 1
+14 0 1 1 1 0 -14 1 0 0 1 0
+15 0 1 1 1 1 -15 1 0 0 0 1
+16 1 0 0 0 0 -16 1 0 0 0 0

減算の実習
$ \blacksquare$結線およびスイッチの設定

  1. 電源スイッチをOFFにする.
  2. 端子1と2,4と18,7と17,10と11,15と16および21と22をリードチップで接続する. (図19参照)
  3. A」累算器のシフト方向スイッチを,, $ \Rightarrow$印方向に設定する.
  4. B$ ^\prime$レジスタの表示器ON/OFFスイッチを,ONにする.
  5. M」レジスタの表示器ON/OFFスイッチを,OFFにする.
  6. 10進数表示器ON/OFFスイッチを,左右の2個ともOFFにする.
  7. A$ ^\prime$/「A」切換スイッチをいったん「A」側に設定する. これは,演算結果によりどちらかを選ぶためである.演算結果が正数のときは 「A」側に,負数のときは「A$ ^\prime$側に設定する.
  8. 電源スイッチをONにし,以下の操作をおこなう.

$ \blacksquare$操作順序

具体的な数値(たとえば1-9=-8)を用いて,操作順序を説明する.演算の過程は,図 20 を使って,説明する. []

  1. =1pt =0.2pt CLをプッシュして,各レジスタの内容と表示をゼロにする.
  2. レジスタ選択(A)をプッシュする.
  3. 数字設定キーの=1pt =0.2pt 1をプッシュする.「A」累算器には,被減数1に 相当する2進数がセットされる.
  4. レジスタ選択スイッチの(B)をプッシュする.
  5. 数字設定キーの=1pt =0.2pt 9をプッシュする.「B」レジスタには,減数9に相当 する2進数がセットされ,「B$ ^\prime$レジスタには,減数(「B」 レジスタ)の補数(補数)がセットされる.
  6. =1pt =0.2pt ADDをプッシュして,「A」累算器と「B$ ^\prime$レジス タの最下位ビット同士の加算をおこなう.S=0C $ _{\tw {o}}$=1とな る.
  7. =1pt =0.2pt Iを1回プッシュして,「A」累算器と「B$ ^\prime$レジス タの内容を,右へ1ビットシフトさせる.S=0のデータは「A」累算器 の最上位ビットに記憶され,C $ _{\tw {o}}$=1のデータは桁上げメモリに記 憶されて,C $ _{\tw {i}}$=1となる.(「B」レジスタの内容(減数)も, ともにシフトするが,実際の演算には無関係となり,表示されているだけとな る.)
  8. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=0C $ _{\tw {o}}$=1となる.
  9. Iを1回プッシュして,[7]と同様にシフトさせる.S=0のデータは 「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=1のデータは 桁上げメモリに記憶されて,C $ _{\tw {o}}$=1となる.
  10. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=1C $ _{\tw {o}}$=1となる.
  11. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=1のデータは 「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=1のデータは 桁上げメモリに記憶されて,C $ _{\tw {i}}$=1となる.
  12. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=1C $ _{\tw {o}}$=1となる.
  13. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=1のデータは 「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=0のデータは 桁上げメモリに記憶されて,C $ _{\tw {i}}$=0となる.
  14. =1pt =0.2pt ADDをプッシュして,[6]と同様に加算をおこなう.S=1C $ _{\tw {o}}$=0となる.
  15. =1pt =0.2pt Iを1回プッシュして,[7]と同様にシフトさせる.S=1のデータは 「A」累算器の最上位ビットに記憶され,C $ _{\tw {o}}$=0のデータは 桁上げメモリに記憶されて,C $ _{\tw {i}}$=0となる.以上の操作で,5ビッ ト全部の演算が終了する.「A」累算器には,演算結果の差が記憶されて いるが最上位ビットを見ると"1"なので,負数をあらわしている.
  16. A」累算器のデータが負数(最上位ビットが1)のときは,「A$ ^\prime$/「A」切換スイッチを「A$ ^\prime$側に設定し,正数 (最上位ビットが0)のときは「A」側に設定する.
  17. A」累算器の2進数データを10進数表示するために,10進数表示器ON/OFFス イッチの左側のスイッチをONにすると,"12"と表示される.

$ \blacksquare$注意

  1. 累算をおこなう場合の負数判別は-1から-15までなので,あらかじめその範囲内 に入るように数値を設定すること.
  2. 累算をおこなう場合は,まずCP1をリセットする.その方法は,CP1の表 示が"0"になるように,=1pt =0.2pt Iをプッシュする.また,=1pt =0.2pt I IIをプッ シュすることによってもできる.なお,CLをプッシュすると,全部の設定 がリセットされるので注意が必要である.
  3. CP1をリセットしたのち,減数の実習の"操作順序"の[4]以降を,再度 操作すること.累算がおこなわれる.
  4. 減算の実習は,図18(累算器を用いた減算回路)を用 いるが,図17(減算の基本回路)の方式は,「M」 レジスタに補数器がないためにできない.
図 19: 減算の場合の結線と操作順序.[ ]内の数字は操作順序を表す.
\includegraphics[keepaspectratio,origin=c,angle=90,scale=0.85]{figure/logic2/exp_sub.eps}
図 20: 減算におけるレジスタや累算器等のビットパターン
74#2

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成17年10月21日


no counter