実験1・基本ゲート回路 - ie-ryukyue055717/ie/jikken/file/NAND.pdf1 実験目的...
Transcript of 実験1・基本ゲート回路 - ie-ryukyue055717/ie/jikken/file/NAND.pdf1 実験目的...
実験1・基本ゲート回路実験日:2006年 05月 30日
050717A 金城佑典共同実験者
050727H 條寛之050738C 張暁雪
提出日:2006年 06月 06日
目 次
1 実験目的 2
2 実験概要 2
3 実験 2
3.1 実験 (1)プローブの校正 . . . . . . . . . . . . . . . . . . . . . 23.2 実験 (2)直流電圧の測定 . . . . . . . . . . . . . . . . . . . . . 23.3 実験 (3)パルス信号の測定 . . . . . . . . . . . . . . . . . . . . 33.4 実験 (4)パルス信号の同時観測 . . . . . . . . . . . . . . . . . . 33.5 実験 (5)ストレージモードでの観測 . . . . . . . . . . . . . . . 33.6 実験 (6)NANDをもちいたゲート回路設計 . . . . . . . . . . . 3
3.6.1 実験 (6)の結果 . . . . . . . . . . . . . . . . . . . . . . 33.6.2 実験 (6)の考察~ゲート数の削減~ . . . . . . . . . . . 6
3.7 実験 (7)ゲート回路の実現 . . . . . . . . . . . . . . . . . . . . 73.7.1 実験 (7)の結果 . . . . . . . . . . . . . . . . . . . . . . 73.7.2 実験 (7)の考察1~配線数の削減~ . . . . . . . . . . . 73.7.3 実験 (7)の考察2~配線ミスを減らす~ . . . . . . . . 7
4 調査課題 8
4.1 調査課題 (a)論理関数 . . . . . . . . . . . . . . . . . . . . . . 84.1.1 なぜ2変数の論理関数は16種類あるのか . . . . . . . 84.1.2 16種類の論理関数 . . . . . . . . . . . . . . . . . . . 8
4.2 調査課題 (b)完全系 . . . . . . . . . . . . . . . . . . . . . . . . 94.3 調査課題 (c)組み合わせ回路と順序回路 . . . . . . . . . . . . . 94.4 調査課題 (d)加算器 . . . . . . . . . . . . . . . . . . . . . . . . 10
4.4.1 半加算器 . . . . . . . . . . . . . . . . . . . . . . . . . . 104.4.2 全加算器 . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5 考察 11
6 感想 12
1
1 実験目的
現代社会に欠かすことのできないコンピュータは、大規模なディジタル回
路によって構成されている。本実験では、ディジタル回路の構成要素である基
本ゲート回路と論理演算の基礎を習得することを目的とする。また本実験で
は、NANDゲートを用いて他のゲート回路 (NOT,AND,OR,NOR,XOR)を構成することによって、汎用ロジック ICおよびオシロスコープ、直流電源、発振器などの測定機器の基本的な使用法についても学ぶ。
2 実験概要
上記目的を達成するため、まずは実際に測定機器の設定をすることでの測定
機器の使用法を学んだ。次に、各自で基本ゲート回路の出力結果並びにNANDゲートの出力結果をもとに論理演算を使って紙面上にNANDゲートのみをもちいたゲート回路 (NOT,AND,OR,NOR,XOR)の設計を行う事で基本ゲート回路と論理演算の基礎を習得した。その後、ブレッドボード上に実際にNAND回路のみをもちいた NOT回路,OR回路,XOR回路の設計を行い、測定機器を用いて実際に出力を確認する事で紙面上の設計の確認及び測定機器の使用
法の実習を行った。最後に、各自で後述の調査課題を調査することで論理回
路に関してより理解を深めた。
3 実験
3.1 実験 (1)プローブの校正
実験内容:プローグを校正しなさい(報告の必要なし)
報告は省略する
3.2 実験 (2)直流電圧の測定
実験内容:直流電源を5 [V]に設定して、オシロスコープで、直流電圧を測定しなさい(報告の必要なし)
報告は省略する
2
3.3 実験 (3)パルス信号の測定
実験内容:発振器を用いて1 [kHz]のパルス信号を出力し、オシロスコープで、その波形を観測しなさい(報告の必要なし)
報告は省略する
3.4 実験 (4)パルス信号の同時観測
実験内容:上記の実験で用いた発振器の信号を CH1、CH2を用いて同時に観測しなさい(報告の必要なし)
報告は省略する
3.5 実験 (5)ストレージモードでの観測
実験内容:上記の実験をストレージモードで観測しなさい(報告の必要な
し)
報告は省略する
3.6 実験 (6)NANDをもちいたゲート回路設計
実験内容:NANDゲートのみを用いて NOT,AND,OR,NOR,XORゲートを設計せよ
3.6.1 実験 (6)の結果
~NOT回路の設計~NANDの真理値表のうち (0,0)と (1,1)が使えればいいのでN A N D
図 1: NANDでの NOTの実現
3
図の真理値表 NOTの真理値表
A f A f
1 0 1 0
0 1 0 12つの真理値表が等しいので、図の回路は NOTの機能を実現している
~AND回路の設計~NANDは ANDの NOTなので、NANDの NOTをすれば ANDになるN A N DN A N D
図 2: NANDでの ANDの実現
図の真理値表 ANDの真理値表
A B f A B f
0 0 0 0 0 0
0 1 0 0 1 0
1 0 0 1 0 0
1 1 1 1 1 12つの真理値表が等しいので、図の回路は ANDの機能を実現している
~OR回路の設計~ORの積和標準形 f = AB + AB + AB を変形する
f = AB + AB + AB = AB + AB + AB + AB
= (A + A)B + A(B + B) = A + B = (A + B) = (AB)N A N D N A N DN A N D図 3: NANDでの ORの実現
4
図の真理値表 ORの真理値表
A B f A B f
0 0 0 0 0 0
0 1 1 0 1 1
1 0 0 1 0 0
1 1 1 1 1 12つの真理値表が等しいので、図の回路は ORの機能を実現している
~NOR回路の設計~上記 ORに NOTをつければいいN A N D N A N DN A N D N A N D
図 4: NANDでの NORの実現
図の真理値表 ORの真理値表
A B f A B f
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 1 0 0
1 1 0 1 1 02つの真理値表が等しいので、図の回路は NORの機能を実現している
~XOR回路の設計~XORの積和標準形は f = AB + BA なので下図のようになる
よって ���� � � �� � � � � ���� � � � 5
N A N D N A N D N A N DN A N D N A N DABBA図 5: NANDでの XORの実現
図の真理値表 XORの真理値表
A B f A B f
0 0 0 0 0 0
0 1 1 0 1 1
1 0 1 1 0 1
1 1 0 1 1 02つの真理値表が等しいので、図の回路は XORの機能を実現している
3.6.2 実験 (6)の考察~ゲート数の削減~
~NOT,AND,OR,NOR~どう考えてもこれ以上は無理
~XOR~下図のような回路で実現できるN A N D N A N DN A N D N A N DAB
図 6: NANDでの XORの実現
<証明>
上図の回路の積和標準形は f = (A(AB))(B(AB)) である
f = (A(AB))(B(AB)) = A(AB) + B(AB)
= A(A + B) + B(A + B) = AA + AB + BA + BB
6
= AB + BA
よって上図はたしかに XORを実現している
3.7 実験 (7)ゲート回路の実現
実験内容:実験 (6)で設計した各ゲートを実際に NANDゲート ICを用いてブレッドボード上に実現し、それらの動作を確認せよ(時間に余裕のない
場合は NOT,OR,XORのみでもよい)
3.7.1 実験 (7)の結果
時間がなかった(というか時間をオーバーしていた)ので NOT,OR,XORの動作確認のみ行い、オシロスコープを用いて確かに動作している事が確認
できた
3.7.2 実験 (7)の考察1~配線数の削減~
配線数の削減には以下の事をするとよい
1. 実現したい回路の簡単化
2. ICの種類によって設計を変える(例えば NANDならなるべく NANDを多用)
3.7.3 実験 (7)の考察2~配線ミスを減らす~
配線数ミスを減らすには以下の事をするとよい
1. 配線数を削減する
2. 入力から順番に作るのではなく、先に必要なゲートを作っておく
3. 完成したゲートを接続する前に、1つ1つのゲートの動作テストをしておく
4. ゲートを接続する際も、必ず動作テストを行いながら進める
テストを繰り返すのは面倒だが、配線ミスをした場合はさらに面倒な事にな
るので、やっておいた方がよい
7
4 調査課題
4.1 調査課題 (a)論理関数
調査内容:2変数の論理関数は全部で16種類ある。なぜ16種類あるの
か説明せよ。また、2変数の論理関数をすべて列挙し、否定 (NOT)、論理積(AND)および論理和 (OR)のみを用いて表現せよ。
4.1.1 なぜ2変数の論理関数は16種類あるのか
2変数の論理関数の入力の組み合わせは 22 = 4で4通りある、そのそれぞれについて0と1の2通りの出力があり得るので2変数の論理関数は 42 = 16で16とおりあることになる
4.1.2 16種類の論理関数
2入力の論理関数の出力は以下の16通りである (→は基本回路での表現)
A B fn
0 0 w
0 1 x
1 0 y
1 1 zのとき fn = (wxyz) とするf1 = (0000) → AA = 0f2 = (0001) → AB
f3 = (0010) → AB
f4 = (0011) → A
f5 = (0100) → AB
f6 = (0101) → B
f7 = (0110) → A +© B = AB + BA
f8 = (0111) → A + B
f9 = (1000) → (A + B) = AB
f10 = (1001) → (A +©B) = (AB + BA) = (A + B)(B + A) = AB + AB
f11 = (1010) → B
f12 = (1011) → (AB) = A + B
f13 = (1100) → A
f14 = (1101) → (AB) = A + B
f15 = (1110) → AB = A + B
f16 = (1111) → A + A = 1
8
4.2 調査課題 (b)完全系
調査内容:ある決まった論理演算の組を使用して任意の論理関数を表すこ
とができるとき、そのような論理演算の組を完全系という。例えば、論理積
否定 (NANDゲート)だけを用いて任意の論理関数を表すことができるので、論理積否定は、それ一つだけで、完全系となっている。また、調査課題 (a)でも調べたように否定 (NOT)、論理積 (AND)、論理和 (OR)の組も完全系である。この他にもたくさんの完全系が存在する。これら以外の完全系を2組
以上示し、それらが完全系である事を証明せよ。
< 完全系の例1~NOR~>NORは下図のようにすることで NANDと等価になるN O R N O RN O RN O R
図 7: NORでの NANDの実現
NANDは完全系なので NORも完全系である
< 完全系の例2~NOTと OR~>NOTと ORがあれば NORを構成できる、NORは完全系なので、NOTとORの組も完全系である
< 完全系の例3~NOTと AND~>NOTとANDがあればNANDを構成できる、NANDは完全系なので、NOTと ANDの組も完全系である
4.3 調査課題 (c)組み合わせ回路と順序回路
調査内容:ディジタル回路は、組み合わせ回路と順序回路に大別される。両
者の違いを調査し説明せよ。
組み合わせ回路とは:出力が過去の入力には依存せず、現在の入力によって一
意に定まるようなディジタル回路のこと。AND,OR,NOT,NAND,NOR,XORはこれにあたる
9
順序回路とは:出力が現在の入力だけでなく、過去の入力の履歴にも依存
する回路のこと。FF(Flip Flop)などがこれにあたる
4.4 調査課題 (d)加算器
調査内容:実用的な組み合わせ回路として半加算器および全加算器がある。
これらの回路はどのような回路か調査し、それぞれの真理値表を示せ。また、
各真理値表を用いて、それらの機能や特徴を説明せよ。さらに、それぞれの
回路図の一例と、各回路図が実現している論理関数を示せ。
4.4.1 半加算器
半加算器は1ビットの2進数を加算し、和と桁上がりを出力する2入力/
2出力の回路
入力 入力 桁上がり 和
A B C S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0真理値表より論理関数は
C = AB
S = AB + AB = A +©B
であることがわかるので、回路図は以下のようになる
X O RA N DAB C S図 8: 半加算器
10
4.4.2 全加算器
全加算器は多ビットの加算を行う時に下位桁からの桁上がりも考慮するこ
とのできる回路
入力 入力 下位桁からの桁上がり 桁上がり 和
A B Ci−1 Ci Si
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0
1 1 0 1 0
1 1 1 1 1真理値表より論理関数は
Ci = ABCi−1 + ABCi−1 + ABCi−1 + ABCi−1 = BCi−1 + ACi−1 + AB
Si = ABCi−1 + ABCi−1 + ABCi−1 + ABCi−1 = A +©B +©Ci−1
であることがわかるので、回路図は以下のようになるA B C ( i � 1 ) A N DA N DA N DX O R O R C ( i )S ( i )図 9: 全加算器
5 考察
この実験では AND,OR,などさまざまな回路をNANDゲートで実現した、このレポートだけをみても、同じ出力結果を得る回路が多数ある事がわかる。
11
そしてその中から最も簡単な回路を見いだすのは4つの NANDで構成された XORの例を見てもわかるように非常に難しい。
6 感想
実験はブレッドボードで XORを実現する際にミスをしてしまい、かなり時間がかかった。実験の方法はとてもよかった、とくに TAの存在は非常に有効だと思う。
実験指導書は説明が一部わかりにくいところがあった、たとえば p13の発振器は実物と写真が違ったし、p18の(報告の必要なし)はややこしいので削除した方がいいと思う。
レポートに関しては書式の指定が厳しすぎると思う。確かに採点者への配
慮は必要だと思うが、端が折れてたり止め方がずれてるだけで減点というの
はずれの程度にもよるが行き過ぎだと思う。とくに止め方に関しては、40
1のプリンターで印刷するとどうしても紙が湾曲してしまいとても止めにく
いのである程度配慮してほしい。
参考文献
[1] 実験指導書ーディジタル回路編ー
(たぶん)吉田たけお 情報工学科 2006/6 pp1-20
[2] VHDLで学ぶディジタル回路
吉田たけお・尾知博共著 CQ出版 2006/3/1第4版
[3] 特別講座<デジタル論理回路編>
http://akademeia.info/main/lecture4/tokubetu_dejitaru_ronri_kairo.htm
12