素子 | ディジタルロジック02

進数 | ディジタルロジック01 今回のお話はについて.
  • True(真): 正しいこと. T.
  • False(偽): 誤りのこと. F.
驚くべきことに,このシンプルな2つの値(TとF)だけでディジタル回路の動作理論をすべて説明することが出来る. この考え方は"ブール型(Boolean)"と呼ばれる. またこの2値をブール値(Boolean Value)と呼ぶ. ブール型は前回の記録で紹介した2進数に対応させることが出来る. 0をFに,1をTに対応させればブール値を2進数と見なすことが出来る. 電気がある状態をT,電気のない状態をFとすれば,コンピュータのハードウェアにもブール型を見ることが出来る. 電気の有無で2進数を表現するコンピュータには都合の良い考えかたなのである.
ブール型 ⇔ 2進数 ⇔ ディジタル回路 ⇔ コンピュータ ⇔ ブール型
さて,ブール型を利用すればディジタル回路の動作理論をすべて説明出来ると書いた. コンピュータは高度に設計されたディジタル回路であり,ブール型はコンピュータが扱う2進数として表現出来ることから,コンピュータとブール型は切っても切れない縁で結ばれていることは確かだ. ここではディジタル回路を構成する最も基本的な素子を紹介する. コンピュータはこれら素子を"意味ある形"で無数に繋ぎ合わせたディジタル論理回路なのである.

AND (論理積)


ABX
000
010
100
111
Aが真 そして Bが真ならば 結果は真
入力のAとB,そして出力のXという3つの端子がついた素子. 図記号では信号は左から右へと流れる. AとBにブール値(2進数であり電気信号である)を入力すると,入力に応じて決まった出力が出力される. その様子を表にまとめたものを"真理値表(Truth Table)"と言う. 表の列が各状態を表す. 入力Aが0でBが1の時その出力Xは0になる,といった具合である. AとBが両方1である時にだけ1が出力される. これがAND素子. どちらも1でなくては結果が1とはならないことから,論理積と呼ばれる. これは,AとBの掛け算を考えたとき,どちらか一方が0だと積が0になるイメージに由来する.

OR (論理和)


ABX
000
011
101
111
Aが真 もしくは Bが真ならば 結果は真
論理積と同じく,入力のAとB,そして出力のXという3つの端子がついた素子. AかBの入力どちらか一方でも1ならば,その出力は1となる. 見方を変えると,AとB両方が0の時にだけ0を出力する素子がORである. この素子は入力のどちらか一方が真ならば,その出力が真となる素子なので,論理和と呼ばれる. これも論理積と同じく入力の足し算を考えたときのイメージに由来する.

XOR (排他的論理和)


ABX
000
011
101
110
Aだけが真 もしくはBだけが真ならば 結果は真
XORの出力は一風変わっていて面白い. "排他的"とは"互い違い"という言葉に解釈して構わない. AかBのどちらか一方が1のとき,その出力が1となるところは論理和と同じだが,AとBの両方が1の時,その出力は0となる. AとBの入力が互い違いで1の時に限り,出力が"真"になる. 簡単に言うと,入力されている1の数が奇数ならば"真",偶数ならば"偽"となる素子だ. その証拠に,偶奇判定素子として使われることもある. もし,入力端子が3つ(A,B,C)あれば,入力されている"真"の数が0か2つならば出力は"偽"となる. 1つか3つ全部ならば"真"が出力される.

NOT (論理否定)


AX
01
10
Aの状態の逆が結果
NOTはアベコベ素子だ. 入力はAのひとつしかない. 入力が0ならば出力は1になり,入力が1ならば出力が0になる. 入力の反対(反転)を出力する. 図記号は三角形の出力側に丸がくっついた図. 三角形だけで丸が無い図記号(素子)も存在し,バッファと呼ばれているが,それについては後述する.

伝達と出力反転


ABX'X
0001
0110
1010
1110
上に紹介した4つの素子たちは互いに接続することができる. 例えばここにORの出力をNOTに入力する形で接続した図である. この出力はORの出力X'を反転した値Xになる. 素子ORの出力にNOTがくっついた素子はNOR(ノア)と呼ばれる. 同様に,ANDの出力にNOTがくっついた素子をNAND(ナンド),XORの出力にNOTが接続された回路をXNOR(エクスノア)と呼ぶ. 下図を見てほしい. NORの図記号は,ORの図記号出力側に丸がくっついたものになっている. つまり,このが"NOT"を示しているわけだ. NOTを入力側に接続した場合も同様に丸をくっつけた,いわゆる略記が可能であるが,その場合はNANDやNORとは呼ばない. 出力側にNOTがついている場合に限りNANDやXNORと呼ぶ.
上図右端にバッファを載せた. バッファは今までの知識で言うとNOTをNOTしたもの,つまり入力をそのまま出力する素子である. この素子に何の意味があるのか. ただの導線との違いはなにか. バッファ(Buffer)という素子は導線と同じく,入力と出力が全く同じ素子である. 1を入力すれば1が,何も入力しなければ(0ならば)0を出力する. しかしこのバッファ,導線とは違う点がある. それが信号の蓄積(遅延出力)である. 一定時間信号をためてから出力できるので,出力を遅らせることが出来るため遅延素子とも呼ばれることがある. 例えば,遅延(蓄積)時間が1秒のBufferがあるとする. 入力を0の状態から1へと切り替えたその1秒後に出力も0から1へと切り替わる. コンピュータのように非常に複雑なディジタル回路を組み上げる上で,この遅延素子は非常に重要な意味を持つ. 言い換えれば,NOTは遅延時間0秒のバッファを反転(NOT)したものと見ることもできる. ちなみに,AND,OR,XOR,NOTはすべて,NANDだけを用いて再現が可能である. 上で紹介した各素子の画像をクリックすると,NANDだけを用いて構成されたAND,OR,XOR,NOTを見ることができるので参考までにどうぞ.
2245988019002221173 http://www.storange.jp/2014/03/02.html http://www.storange.jp/2014/03/02.html 素子 | ディジタルロジック02 2014-03-20T16:29:00+09:00 http://www.storange.jp/2014/03/02.html Hideyuki Tabata 200 200 72 72