NOR演算子とは何か?基本定義から機能的完全性・回路設計・XOR実装まで詳しく解説
NOR演算子とは — 基本定義
NOR(Not OR)演算子は、論理和(OR)の否定を取る2値論理演算子です。入力のいずれかが真(1)であれば出力は偽(0)になり、入力がすべて偽(0)のときのみ出力が真(1)になります。記号では ¬(A ∨ B) や A ↓ B(Peirce の矢)などで表されます。電子回路ではNORゲートとして実装され、論理回路設計の基本要素の一つです。
真理値表
| A | B | A OR B | A NOR B |
|---|---|---|---|
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 0 |
ブール代数における性質(要点)
- 定義:A NOR B = ¬(A ∨ B)
- 可換性:A NOR B = B NOR A(入力順序に依存しない)
- 非結合性:一般に (A NOR B) NOR C ≠ A NOR (B NOR C)(NOR は結合則を満たさない)
- 冪等性ではないが、A NOR A = ¬A(同じ入力を与えることで否定が得られる)
- De Morgan の定理により、NOR は OR と NOT の組合せと同等である:A NOR B = ¬A ∧ ¬B(形式的には ¬(A ∨ B) = ¬A ∧ ¬B)
機能的完全性 — NORだけで他の論理を作る
NOR 演算子は「機能的に完全(functionally complete)」であり、NOR だけで任意のブール式を表現できます。代表的な構成は次の通りです。
- NOT(否定): ¬A = A NOR A
- OR(論理和): A ∨ B = ¬(A NOR B) = (A NOR B) NOR (A NOR B)
- AND(論理積): A ∧ B = ¬(¬A ∨ ¬B) = (A NOR A) NOR (B NOR B)
これらを組み合わせることで NAND、XOR、複雑な論理関数も構成可能です。例えば XOR は基本的に (A ∧ ¬B) ∨ (¬A ∧ B) と表せ、上の NOT/AND/OR の構成で NORのみを使って実現できます(ゲート数は増えますが、論理的に可能です)。
NORでのXOR実装(概念例)
手順の概念を示します:まず NOT を作り、次に AND を作り、その後 OR を使って和を取るという流れです。
- NA = A NOR A (¬A)
- NB = B NOR B (¬B)
- AandNB = (A NOR A) NOR (NB NOR NB) —(前項の変形で AND を構成)
- 同様に NotAandB を構成し、最後に両者の OR を (XOR) = (AandNB) NOR (AandNB) NOR (NotAandB) のように組合せます。
(実際の合成ではゲートの結線を工夫し、最小化を行うことでゲート数を減らす設計が行われます。)
物理実装とIC
NORゲートはTTLやCMOSの基本ICとして広く提供されています。代表的な製品例:
- TTL系:74xx02(例:7402、74LS02、74HC02 など) — 2入力NORが4個入ったパッケージが一般的。
- CMOS系:CD4001(4001)など — 低消費電力で広い電源電圧範囲を持つ。
トランジスタレベルでは、CMOS実装はPMOSのプルアップとNMOSのプルダウンを組合せて NOR の伝達特性を作ります。TTL実装ではマルチエミッタトランジスタ等を用いる場合があります。各ファミリでの利点・制約(伝搬遅延、駆動力、消費電力、耐ノイズ性)は異なるため、用途に応じた選択が必要です。
設計上の考慮点
- プロパゲーション遅延:ゲートを直列に連ねると遅延が累積します。NORのみで構成した場合、同じ論理をNAND/NOTで実装する場合とゲート数・深さが変わり、遅延に影響します。
- ハザード(静的/動的):組合せ回路で入力変化時に一瞬の不整合(グリッチ)が発生する可能性があります。NORを主に用いる回路でも同様の対策(遅延調整や冗長項の追加など)が必要です。
- ファンイン/ファンアウト:1ゲートあたりの入力数(ファンイン)を増やすと論理レベル保持や遅延の影響が出ます。大入力のNORを使うと簡潔にできる一方、物理的制約を考慮する必要があります。
- 消費電力とノイズマージン:CMOSでは静的消費電力が小さいが、スイッチング時のピーク電流がある。TTL系ではアイドル時の消費電力が大きくなることがある。
応用例・実例
- 基本論理ブロック:NORは基本ゲートとして組合せ回路や簡単な制御ロジックに用いられる。
- 記憶素子の構成:NORフラッシュメモリは「NOR型フラッシュ」と呼ばれ、読み出しやランダムアクセスがしやすい構造を持つ(ただしここでいうNOR演算子とは直接別概念で、名称の由来は論理的な接続の類比に起因します)。
- 設計簡素化:単一種類のゲート(NORのみ)で回路全体を作ると設計・製造の面で単純化できる場合がある。
- 教育用途:ブール関数の表現、機能的完全性の学習においてNORは良い教材となる。
歴史的・理論的背景
論理の基本演算子のみで全ての論理を表現できることの示例として、NOR(あるいはNAND)は重要な役割を果たします。NOR はチャールズ・サンダース・ピアス(Charles S. Peirce)により Peirce の矢(arrow)として知られ、Sheffer は別に NAND(Sheffer stroke)を示して、どちらも回路設計や論理学で機能的完全性を示す代表的な例となりました。
まとめ
NOR演算子は「OR の否定」という単純な定義ながら、機能的に完全であり、NOT・AND・ORを含む任意のブール演算をNORのみで構成できます。電子回路ではTTL/CMOSの基本ICとして広く実装され、回路設計上の便利なツールである一方、遅延・ハザード・消費電力などのトレードオフを考慮する必要があります。論理回路設計やデジタル論理の教育、実務において重要な基礎概念です。
参考文献
- Wikipedia: NORゲート(日本語)
- Wikipedia: NOR gate(English)
- Wikipedia: Functional completeness(機能的完全性)
- Texas Instruments SN7402 製品資料(例: 7402 Quad 2-Input NOR Gate データシート)
- Texas Instruments CD4001B (CMOS Quad NOR) データシート
- Wikipedia: Peirce's arrow(Peirce の矢)
- Wikipedia: Sheffer stroke(Sheffer の論理)


