デジタル回路の基本要素。入力の0/1の組み合わせから出力を決定する論理ゲートの仕組みと真理値表を学びます。
論理ゲートは、デジタル回路の最も基本的な部品です。 1つまたは2つの入力(0か1)を受け取り、論理演算のルールに従って1つの出力(0か1)を返します。 コンピュータのCPU内部には数十億個のゲートが組み合わされて動いています。
日常の例えでいうと、ANDゲートは「AさんもBさんも賛成したら可決」、ORゲートは「どちらか1人でも賛成なら可決」、NOTゲートは「賛成を反対に、反対を賛成にひっくり返す」という動作です。
上のツールでゲートの種類と入力A/Bを切り替えると、MIL記号(=論理ゲートの回路図記号)と真理値表がリアルタイムで変化します。 各組み合わせで出力がどう変わるか、すべてのパターンを試してみてください。
MIL記号は、アメリカの軍事規格(MIL-STD)に由来する論理ゲートの図記号です。 論理回路を読むときは、このMIL記号を読み取って出力を求めます。 各ゲートの形を覚えておくことが大切です。
覚え方のポイントは以下の通りです。
・AND:D字型(直線+半円)。両方1で1
・OR:曲線型(尖った出力側)。どちらか1で1
・NOT:三角形+丸。入力を反転
否定(NOT)は出力側に小さな丸(○)で表します。 そのためNAND記号は「ANDのD字型+出力に丸」、NOR記号は「ORの曲線型+出力に丸」となります。 上のツールでNANDやNORを選ぶと丸が付くのを確認できます。
| A | B | AND (A・B) | OR (A+B) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
ANDゲートは「論理積」とも呼ばれ、入力が両方とも1のときだけ1を出力します。 日常では「鍵Aと鍵Bの両方がないと金庫が開かない」というイメージです。 記号は「・」で、A・B と書きます。
ORゲートは「論理和」とも呼ばれ、入力のどちらか一方でも1なら1を出力します。 「非常口Aか非常口Bのどちらかが開いていれば脱出できる」というイメージです。 記号は「+」で、A+B と書きます。
上の真理値表を見ると、ANDとORの違いはA=0,B=1とA=1,B=0のときの出力だけです。 ANDは0(両方揃っていないからダメ)、ORは1(片方あればOK)。この違いが回路設計の基本になります。
NOTゲート(否定・インバータ)は入力を反転します。1を入れると0が、0を入れると1が出ます。 入力が1つだけなのが他のゲートとの違いです。記号はAの上に横棒を引いてAと書きます。
XORゲート(排他的論理和)は、2つの入力が異なるときだけ1を出力します。 「2人の意見が食い違ったら注意信号を出す」というイメージです。 記号は A⊕B と書きます。
XORは加算器(足し算回路)の核心部品です。0+0=0、0+1=1、1+0=1、1+1=0(繰り上がり)と なり、XORの真理値表と一致します。暗号化やパリティチェックにも使われる重要なゲートです。
NANDゲートは「NOT + AND」の略で、ANDの出力を反転したものです。 驚くべきことに、NANDゲートだけでAND・OR・NOTのすべてを作ることができます。 このため「万能ゲート(Universal Gate)」と呼ばれます。
具体的な構成方法は以下の通りです。
・NOT:NANDの入力AとBを同じ信号に接続 → NAND(A, A) = NOT A
・AND:NANDの出力をNOT(上の方法)に通す → NOT(NAND(A, B)) = AND
・OR:A, Bそれぞれを先にNOTし、その結果をNANDに入力 → NAND(NOT A, NOT B) = OR
実際のICチップ製造では、NANDゲートは他のゲートよりトランジスタ数が少なく効率的に作れます。 上のツールのプリセット「NAND→AND」「NAND→OR」を選ぶと、NANDの組み合わせで他のゲートを再現する様子を確認できます。
| A | B | AND | NAND | OR | NOR |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 0 | 1 | 0 |
NANDはANDの出力を反転、NORはORの出力を反転したゲートです。 真理値表を見ると、ANDとNAND、ORとNORの出力がすべて逆になっていることがわかります。 否定ゲートの出力は、元のゲートの0と1を入れ替えるだけで求められます。
NANDの真理値表は、ANDの真理値表を書いてから全部反転すれば求められます。 NORも同様にORの反転です。上のツールでANDとNANDを切り替えて、出力が逆になることを確認してみてください。
NORゲートもNANDと同様に万能ゲートです。 NORだけでAND・OR・NOTのすべてを構成できます。NANDとNORのどちらも万能性を持つという点は覚えておきましょう。
コンピュータが0と1しか扱わないのは、電気の「流れている」か「流れていないか」という2状態が、回路の中でもっとも安定して区別できるからです。電圧が高い(= 電気が流れている)を1(= 真・True)、低い(= 止まっている)を0(= 偽・False)と決めています。
なぜ2種類だと便利なのか。電圧は厳密には 3.7V や 4.2V など中間の値もとりますが、「高いか低いか」の2択にすることで、多少ノイズ(雑音)が混じっても判定を間違えにくくなります。「スイッチが入っているか切れているか」という単純な判定だけで済むため、回路を小さく・速く・安定して作れるのです。
身近な例では電灯のスイッチが分かりやすいです。スイッチは ON か OFF の2状態だけで、「ちょっとだけON」という中間はありません。論理ゲートはこの「スイッチのような部品」が組み合わさって計算を行います。
・1(ON):電気が流れる → LED 点灯 → 真
・0(OFF):電気が止まる → LED 消灯 → 偽
論理ゲートの動作は論理式(=記号を使った数式)で表します。記号さえ覚えれば、回路図を見なくても文字だけで論理の関係を書き表せます。
・AND(論理積):「・」または「∧」。例 Y = A・B
・OR(論理和):「+」または「∨」。例 Y = A + B
・NOT(否定):文字の上に横棒(Ā)または「¬」。例 Y = ¬A
・XOR(排他的論理和):「⊕」。例 Y = A ⊕ B
なぜ数式で書くのか。回路図を文字で表せると、等価変換(同じ意味の別の式への書き換え)が計算として行えます。たとえばド・モルガンの法則(後のページで学ぶ)を使うと ¬(A∧B) = ¬A∨¬B と書き換えられ、「使うゲートの種類を減らす」「回路を小さくする」といった設計最適化ができます。
上のツールで各ゲートを選ぶと、画面上部の論理式バーに現在の式が表示されます。入力 A・B を変えたときに数式の意味(どの組み合わせで 1 が出るか)を式と照らし合わせると、より深く理解できます。
実際のコンピュータでは、基本ゲートを組み合わせてより複雑な機能を実現します。 たとえば加算器(足し算回路)はXORとANDの組み合わせで作れますし、CPUの演算装置(ALU)も すべて論理ゲートの組み合わせでできています。
このような組み合わせ回路は、入力が決まれば出力が一意に決まる組み合わせ論理回路と呼ばれます。 一方、記憶機能を持つ回路は「順序回路」と呼ばれ、フリップフロップなどが該当します。 回路図を読んで出力を求めるには、各ゲートの動作を確実に押さえておくことが大切です。
現在のCPUには数十億個のトランジスタ(=ゲート)が集積されています。 上のツールのプリセット「XOR内部構成」を選ぶと、XORがAND・OR・NOTの組み合わせで実現される様子を確認できます。