第3回 基本ゲートとその組み合わせ

オンデマンド受講する場合は、必ず連絡の動画を見てから今回の内容に進んでください。

基本ゲート

概要

動画の解説を参照

論理回路はいろいろなゲートの組み合わせによって実現されます。
この項では基本となる6つのゲートについて解説します。


1. NOTゲート (否定)
入力を \(A\), NOTゲートを経由した出力を \(Y\) とすると、以下のように対応します。このような表を真理値表といいます。
\(A\) \(Y\)
0 1
1 0
これを式の形で表すとこのようになります。このような式を論理式といいます。
\(Y=\overline{A}\)
回路シミュレータで再現するとこのようになります。この記号がNOTゲートです。

スイッチの線が上(ON)になっているときは \(A = 1\), 下(OFF)になっているときは \(A=0\) です。
また、電流が流れているときは \(Y=1\), 流れていない時は \(Y=0\) です。
2. ANDゲート (論理積)
2つの入力を \(A\), \(B\)、ANDゲートを経由した出力を \(Y\) とすると論理式と真理値表は以下のようになります。
\(A = 1\), \(B=1\) のときだけ \(Y=1\) になります。
\(Y=A\cdot B\) (または \(Y=AB\) )
\(A\) \(B\) \(Y\)
0 0 0
0 1 0
1 0 0
1 1 1
回路シミュレータで再現するとこのようになります。この記号がANDゲートです。
「\(A\), \(B\) を組み合わせて \(Y\) をつくる」のような工程を演算といいます。
また、論理式で演算を行う記号 (論理積なら「\(\cdot\)」) のことを演算子といいます。

3. ORゲート (論理和)
2つの入力を \(A\), \(B\)、ORゲートを経由した出力を \(Y\) とすると論理式と真理値表は以下のようになります。
\(A = 0\), \(B=0\) のときだけ \(Y=0\) になります。
\(Y=A + B\)
\(A\) \(B\) \(Y\)
0 0 0
0 1 1
1 0 1
1 1 1
回路シミュレータで再現するとこのようになります。この記号がORゲートです。


4. NANDゲート (論理積否定)
2つの入力を \(A\), \(B\)、NANDゲートを経由した出力を \(Y\) とすると論理式と真理値表は以下のようになります。
\(A = 1\), \(B=1\) のときだけ \(Y=0\) になります。
\(Y=\overline{A\cdot B}\) (または \(Y=\overline{AB}\) )
\(A\) \(B\) \(Y\)
0 0 1
0 1 1
1 0 1
1 1 0
回路シミュレータで再現するとこのようになります。この記号がNANDゲートです。


5. NORゲート (論理和否定)
2つの入力を \(A\), \(B\)、NORゲートを経由した出力を \(Y\) とすると論理式と真理値表は以下のようになります。
\(A = 0\), \(B=0\) のときだけ \(Y=1\) になります。
\(Y=\overline{A + B}\)
\(A\) \(B\) \(Y\)
0 0 1
0 1 0
1 0 0
1 1 0
回路シミュレータで再現するとこのようになります。この記号がNORゲートです。


6. XORゲート (排他的論理和)
2つの入力を \(A\), \(B\)、XORゲートを経由した出力を \(Y\) とすると論理式と真理値表は以下のようになります。
\(A\) と \(B\) の値が異なるときだけ \(Y=1\) になります。
\(Y=A\oplus B\)
\(A\) \(B\) \(Y\)
0 0 0
0 1 1
1 0 1
1 1 0
回路シミュレータで再現するとこのようになります。この記号がXORゲートです。

ゲートの組み合わせ

概要

動画の解説を参照

基本ゲートを組み合わせることで、3つ以上の入力からひとつの出力を作ることができます。例えば
\(Y=A+B\cdot C\)
という論理式の \(Y\) は、まず \(B\cdot C\) がどうなるかを考えて、それと \(A\) の OR(論理和)を求めれば得られます。つまり
\(B\) \(C\) \(B\cdot C\)
0 0 0
0 1 0
1 0 0
1 1 1
と \(A\) の論理和を求めれば \(Y\) になるので、真理値表は以下のようになります。
\(A\) \(B\) \(C\) \(Y\)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
演算の優先順位
演算子が混在しているときは、以下の優先順位で演算を行います。
  1. NOT
  2. AND
  3. XOR
  4. OR
上の例だと、OR よりも AND の優先順位が高いので \(B\cdot C\) を先に行うわけです。
なお NAND と NOR は上記の組み合わせで考えます。
NANDは「AND演算を行ったものにNOT演算を行う」
NORは「OR演算を行ったものにNOT演算を行う」
優先順位の指定
もし \(Y\)を「\(A\) と \(B\) の論理和」と「\(C\)」の論理積としたい場合は、カッコをつけて
\(Y=(A+B)\cdot C\)
のように書きます。この場合の真理値表は以下のようになり、\(Y=A+B\cdot C\) のときとは別の結果になります。
\(A\) \(B\) \(C\) \(Y\)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
優先順位を考えなくてよいケース
\(A\) と \(B\), \(B\) と \(C\) の間にある演算子が同じものの場合はどちらの演算を先に行っても同じ結果になります。 例えば
\(Y=A\cdot B\cdot C = (A\cdot B)\cdot C =A\cdot (B\cdot C)\)
だったり
\(Y=A+ B+ C = (A+ B)+ C =A+ (B+ C)\)
が成り立つということです。

課題1

※ 準備 : 学籍番号を入れて「入力」をクリック (タップ) してください。


\(Y=(A\)
\(B)\)
\(C\) の真理値表を書いてください。
ただし、真理値表は10進数の 0, 1, 2,... 7 に等しい2進数 (\((000)_2\) ~ \((111)_2\)) に \(ABC\) が対応するように、上から下に向かって1ずつ大きくなる順で書いてください。
\(A\) \(B\) \(C\) \(Y\)
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
課題1解説

課題2

\(Y=(A\)
\(B)\)
\((C\)
\(D)\) の真理値表を書いてください。
ただし、真理値表は10進数の 0, 1, 2,... 15 に等しい2進数 (\((0000)_2\) ~ \((1111)_2\)) に \(ABCD\) が対応するように、上から下に向かって1ずつ大きくなる順で書いてください。
\(A\) \(B\) \(C\) \(D\) \(Y\)
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
課題2解説

課題

課題解答