3回 組み合わせ回路ct13050/johogaku/1-3...1 第3回 組み合わせ回路 1. 実験目的...

8
1 3 組み合わせ回路 1. 実験目的 組み合わせ回路(Combinational logic)は現在の入力のみで出力が決まる回路である.論理ゲートを 組み合わせればどんな論理回路も構成することができる.CPU の演算論理装置(ALU, Arithmetic and Logic Unit )も組み合わせ回路で構成されている.本実験の目的は,真理値表から論理回路を書 き起こし,ブレッドボードでその動作を確認することである.はじめに 3 の正の倍数を検出する論 理回路を設計する.次に 1 ビットの加算器である半加算器,全加算器を設計し,計算機の計算原理 を理解する. 2 使用器具 ブレッドボード(サンハヤト社製 IC トレーナー CT-311R,単三型 Eneloop 電池×4 取付済) ロジック IC74LS00(2 入力 NAND), 74LS04(NOT), 74LS08(2 入力 AND), 74LS32(2 入力 OR)74LS02(2 入力 NOR) (各ブレッドボードに取付済) ジャンプワイヤー(黒,赤,黄,青,白,各 6 本計 30 本,IC トレーナーケース内に同梱) 3 【実験 13 の正の倍数検出回路 3 の正の倍数検出回路とは文字通り, 3 の正の倍数が入力された時に出力が真になる論理回路であ る.今回は 3 入力 1 出力の論理回路を設計する.設計の流れは,(1)真理値表を作り,(2)論理式を書 き起こし, (3)ゲート図を描く.実験はゲート図に基づいてブレッドボードのゲート IC に配線して動 作確認を行う. 3.1 真理値表 真理値表(Truth table)とは論理式および論理回路において,すべての入出力の結果を表にし たものである.3 の正の倍数回路の真理値表を表 1 に示す.網掛けが 3 の正の倍数である.入 C,B,A の並びは最下位ビット(LSB, least significant bit)A となるように並べている.

Upload: others

Post on 07-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

1

第 3回 組み合わせ回路 1. 実験目的

組み合わせ回路(Combinational logic)は現在の入力のみで出力が決まる回路である.論理ゲートを組み合わせればどんな論理回路も構成することができる.CPU の演算論理装置(ALU, Arithmetic and Logic Unit )も組み合わせ回路で構成されている.本実験の目的は,真理値表から論理回路を書き起こし,ブレッドボードでその動作を確認することである.はじめに 3 の正の倍数を検出する論理回路を設計する.次に 1 ビットの加算器である半加算器,全加算器を設計し,計算機の計算原理を理解する.

2 使用器具

・ ブレッドボード(サンハヤト社製 ICトレーナー CT-311R,単三型 Eneloop電池×4取付済) ・ ロジック IC,74LS00(2入力NAND), 74LS04(NOT), 74LS08(2入力AND), 74LS32(2入力OR),

74LS02(2入力 NOR) (各ブレッドボードに取付済) ・ ジャンプワイヤー(黒,赤,黄,青,白,各 6本計 30本,ICトレーナーケース内に同梱)

3 【実験 1】3の正の倍数検出回路 3の正の倍数検出回路とは文字通り,3の正の倍数が入力された時に出力が真になる論理回路である.今回は 3入力 1出力の論理回路を設計する.設計の流れは,(1)真理値表を作り,(2)論理式を書き起こし,(3)ゲート図を描く.実験はゲート図に基づいてブレッドボードのゲート ICに配線して動作確認を行う.

3.1 真理値表

真理値表(Truth table)とは論理式および論理回路において,すべての入出力の結果を表にしたものである.3の正の倍数回路の真理値表を表 1に示す.網掛けが 3の正の倍数である.入力 C,B,Aの並びは 下位ビット(LSB, least significant bit)が Aとなるように並べている.

2

表 1: 3の正の倍数検出回路の真理値表 入力 出力

(参考)10進数 C B A Z 0 0 0 0 0 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 0 6 1 1 0 1 7 1 1 1 0

3.2 論理式

論理式は,真理値表の出力が真(Z=1)となる場合を抽出して記述する.表1の場合,Z=1(3の正の倍数)となるのは, (C=0 かつ B=1 かつ A=1) または (C=1 かつ B=1 かつ A=0) ・・・(式 1) であるから, Z = C ∙ B ∙ A + C ∙ B ∙ A ・・・・・・・・・・・・・・・・・・・・・・・(式 2) と書ける.

3.3 ゲート図 ゲート図は論理式をゲート記号に置き換えて配線した図である.式 2をゲート図で描くと図1になる.

図 1: 3の正の倍数検出回路のゲート図

3.4 実験

図 1をブレッドボード上のゲート ICを使って配線しなさい(参考:図 2).なお,ブレッドボード上には 3入力 ANDは無いので,2入力 ANDを 2つ組み合わせて 3入力 ANDを構成しなさい.配線が終わったら真理値表通りに動作するか確認しなさい.動作が確認できたら実

験値をノートに記録し,回路を撮影すること.

3

図 2: (参考) 3の正の倍数検出回路の実体配線

4 【実験 2】半加算器,全加算器

半加算器(Half adder)は加算器の一つで,2 進数の一桁の加算を行なう論理回路である.デジタル回路では,加減算などの演算は常に 2進数で行なわれている.その回路において,半加算器が用いられる.半加算器だけでは 2進数の一桁しか計算できず下の桁からの繰り上がり(Carry in)が処理できないが,半加算器を二つ組み合わせると全加算器(Full adder)となり,下の桁からの繰り上がりを含めた 2進数の一桁の加算が実現できる.

4.1 半加算器 半加算器は 1 ビット 1 桁の足し算を行う 2 入力 2 出力の論理回路である.算術式では A+B=S繰り上がり Coと書け,A,Bは入力,Sは合計,Coは次の桁への繰り上がり(Carry out)である.半加算器の真理値表を表 2に示す.

表 2: 半加算器の真理値表 入力 出力

A B Co S 参考 0 0 0 0 0+0=00 0 1 0 1 0+1=01 1 1 1 0 1+1=10 1 0 0 1 0+1=01 A・B A○+ B

さて,表 2を見ると Sは A○+ B(XOR,排他的論理和),Coは A・B(AND,論理積)になっていることに気付くだろう.このことから,ゲート図は,図 3のように描くことができる.

4

図 3: 半加算器のゲート図

4.2 半加算器の実験 ブレッドボード上には XORのゲート ICが無いため,図 3をそのまま配線することはできない.そこで NANDゲートで XORを実現する(詳しくは第 1回「デジタル回路の基礎」を参照).図 4に NANDゲートと NOTゲートによる半加算器のゲート図を示す.Coは初段の NANDを否定(NOT)して A・Bを得ている.もちろん直接 ANDゲートを使ってもよいが,こちらのほうが配線数が少ない. 図 4をブレッドボード上のゲート ICを使って配線しなさい.配線が終わったら真理値表通りに動作するか確認しなさい.動作が確認できたら実験値をノートに記録し,回路を撮影する

こと.

図 4: NANDゲートと NOTゲートによる半加算器 4.3 全加算器

全加算器は二つの半加算器を組み合わせた繰り上がりを考慮した 3入力 2出力の論理回路である.半加算器は前の桁からの繰り上がり(Ci: Carry in)を足すことができない.そこで入力A,Bを足すのに半加算器を 1個,その答えと前の桁からの繰り上がり(Ci)を足すのに 1個,合わせて 2個あれば1ビット一桁の計算が完全に行える.これを全加算器という.なお,参考までに 32ビット (32桁)の加算機を実現するには,全加算器を 32個(半加算器を 64個)用意すれば良い.表 3に全加算器の真理値表を,図 5に半加算器 2個によるゲート図を示す.半加算器Iは A,Bの加算を行いその合計 SIと繰り上がり CIを出力する.半加算器 IIは SIと Ciを加算しその合計 Soutと繰り上がり CIIを出力する.Coは CIと CIIの論理和(OR)で出力される.なお Sは A,B,Ci の 3入力 XOR回路,Coは A,B,Ciの 3入力多数決回路になっている.

Co

5

表 3: 全加算器の真理値表 入力 出力

Ci A B Co S 参考 0 0 0 0 0 0+0+0=00 0 0 1 0 1 0+0+1=01 0 1 1 1 0 0+1+1=10 0 1 0 0 1 0+1+0=01 1 1 0 1 0 1+1+0=10 1 1 1 1 1 1+1+1=11 1 0 1 1 0 1+0+1=10 1 0 0 0 1 1+0+0=01 A ,B,Ciの

多数決回路 A○+ B○+ Ci

3入力XOR

図 5: 2個の半加算器による全加算器

4.4 全加算器の実験

ブレッドボード上にはNANDのゲート ICが 1つしか無いためNANDゲートによる半加算器を 2つ作ることが出来ない.そこで NOR(否定論理和)のゲート IC他を用いて 2個目の半加算器を作成する.参考までに,どんな論理回路も NANDゲートで作ることができるが,NORゲートでも同様に作ることができる.図 6に NORゲートによる XOR回路を示す.

図 6: NORゲートによる XOR回路 これで解決したように思えるが,残念ながらブレッドボード上の NORの ICは 4ゲートしかない.図 6は 5ゲートある.代替案として 1個の NORゲートを ORゲートと NOTゲートで実現すれば良いが,それで全加算器を配線するとジャンプワイヤーが 30本以上必要になり現在の使用器具では実験できないことが分かった(次年度以降で買い足すかも知れない).そ

こでジャンプワイヤー30本以内で足りる論理回路を以下に説明する.

i

o

6

図 7: 図 6の一部を ANDゲートに置き換える説明図

図 7の破線で囲んだ部分はド・モルガンの法則よりA + B = A ∙ Bと書き換えることができる

ので 3ゲートを 1ゲートに簡略化できる.これにより,半加算器のゲート図は図 8のように描ける.Coは A・Bなのでそのまま引き出せる.これでブレッドボード上に 2個目の半加算器が配線できる.

図 8: NORゲートと ANDゲートによる半加算器

図 4(半加算器 Iとして)と図 8(半加算器 IIとして)を組み合わせ,図 5をブレッドボード上に配線しなさい(参考:図 9).配線が終わったら真理値表通りに動作するか確認しなさい.動作が確認できたら実験値をノートに記録し,回路を撮影すること.

図 9: (参考)全加算器の実体配線

Co

7

5. レポート報告事項

【実験1】【実験 2】について実験目的,実験方法,結果,考察,結論のように章立てし報告すること.実体配線写真または実体配線図を図示すること.

6. 発展課題 実験1,実験2が終了した者は,以下の発展課題を任意で行ってもよい. 【実験3】複数名(n人)で nビットの2進数に対する全加算器を構成し,動作を確認する. 例えばn=4とする.2つの4ビットの2進数𝐴!𝐴!𝐴!𝐴!と𝐵!𝐵!𝐵!𝐵!の加算は,筆算による加算と同じく,

以下のようにして行うことができる. 𝐴! + 𝐵! ⇒ 合計𝑆!,繰り上がり𝐶! 𝐴! + 𝐵! + 𝐶! ⇒ 合計𝑆!,繰り上がり𝐶! 𝐴! + 𝐵! + 𝐶! ⇒ 合計𝑆!,繰り上がり𝐶! 𝐴! + 𝐵! + 𝐶! ⇒ 合計𝑆!,繰り上がり𝐶!

加算結果は𝐶!𝑆!𝑆!𝑆!𝑆!となる.(𝐶! = 1となるのは,加算結果が4ビットを超える数になった場合である) 上記より,以下の図 10のように配線すると nビット2進数の全加算器を得ることができる.

図 10: nビット全加算器の構成法 このとき,図 11のようにプレッドボードのグランド(GND,0V)同士を接続することが必要になる.

A B Ci

Co S

全加算器 n

A B Ci

Co S

全加算器 2

A B Ci

Co S

全加算器 1 …

A B Ci

Co S

全加算器 3

A1 A2 A3 An B1 B2 B3 Bn

S1 S2 S3 Sn Cn+1

8

図 11: グランドの相互接続

【実験4】実験3で作成した nビット加算器において,負の数を2の補数で表現することによって,引き算ができることを確認する.

例えば4ビットの場合MSBが1である 1000(2)から 1111(2)で-8(10)から-1(10)までの負の数を表現する.

6-2を実行する場合は 6+(-2)を行えばよいので 0110(2)+1110(2)を行うと 0100(2)が得られる.いくつかの数

値例に対して引き算が正しく実行されることを確認すること.

プレッドボード n

GND

プレッドボード 3

GND

プレッドボード 1

GND

プレッドボード 2

GND …

GND