NORゲートとは何か:機能的完全性・真理値表・CMOS実装・SRラッチまでデジタル回路の基礎を解説
NORゲートとは
NORゲートはデジタル論理回路における基本的な論理素子の一つで、「否定論理和」(Not OR)を実現します。2つ以上の入力のうち少なくとも1つが論理1(High)のとき出力が論理0(Low)になり、すべての入力が論理0のときのみ出力が論理1になります。論理式で表すと Y = ¬(A ∨ B) です。NORは単独で他の基本論理(NOT、AND、OR)を構成できる「機能的完全性(関数完全)」を持つ点が特徴で、実用上も重要な役割を果たします。
真理値表と論理式
2入力NORゲートの真理値表は次の通りです。
- A=0, B=0 → Y=1
- A=0, B=1 → Y=0
- A=1, B=0 → Y=0
- A=1, B=1 → Y=0
論理式は、Y = NOT (A OR B)、すなわち Y = ¬(A ∨ B) で表されます。De Morganの法則を用いると ¬(A ∨ B) = ¬A ∧ ¬B と書き換えられ、NORは入力を否定したANDとも見なせます。
回路記号と表記
ANSI(米国)やIEC(国際)で用いられる回路記号はやや異なりますが、共通して「ORゲートの出力に否定を示す小さなバブル(円)」が付くことでNORを表します。バブルは論理の否定(アクティブロー)を示すため、NORは「ORの否定」と直感的に理解できます。
CMOSでの実装(トランジスタレベル)
スタティックCMOSで2入力NORを実装する場合、プルアップ(pMOS)ネットワークは直列、プルダウン(nMOS)ネットワークは並列に配置します。理由は出力をHighにするには両方の入力が0でなければならないため、両方のpMOSがON(入力=0)してVDDと出力を接続できるように直列とする必要があるからです。一方、出力をLowにするにはいずれかの入力が1であれば良いので、nMOSは並列に配置されます。
2入力静的CMOS NORは通常4個のトランジスタ(pMOS×2、nMOS×2)で構成されますが、負荷や動作速度を改善するためにトランジスタの幅(W)を調整してドライブ能力を補正することが一般的です。入力数(ファンイン)が増えるとpMOSの直列数が増え、立ち上がり遅延(pull-up経路の抵抗増)や静的遅延が悪化するため、実装上のトレードオフが発生します。
TTLやその他の論理ファミリでの実装
歴史的にTTL(Transistor–Transistor Logic)やCMOS以前のロジックファミリでもNORは基本ゲートとして提供されてきました。代表的なICとして「SN7402」(Quad 2-input NOR)があり、TTL回路として抵抗やトランジスタのネットワークでNOR機能を実現しています。ロジックファミリごとに入力閾値、出力ドライブ能力、電源電圧や消費電力など性能特性が異なります。
NORの性質と設計上の考慮点
- 機能的完全性:NORだけでNOT、AND、ORなど任意のブール関数を構成できる。
- ファンインの影響:入力数増加でpMOSの直列が増え、立ち上がり遅延や電圧ドロップが大きくなる。
- 伝搬遅延(Propagation delay):トランジスタのオン抵抗と容量に依存し、設計上重要なパラメータ。
- ファンアウト:1つの出力で駆動可能な入力数。駆動先の入力容量により制限される。
- ノイズマージンとしきい値:ロジック信号の信頼性に関わる。
- ハザード(グリッチ):競合入力変化時に一瞬の誤出力が発生する場合があり、冗長項を加える等で対策することがある。
NORを使って他の論理を作る例
NORだけで他の基本論理を構成する例を示します。NORの「自己入力」を利用するとNOTが簡単に作れます。
- NOT A = A NOR A (入力を短絡)
- A OR B = (A NOR B) NOR (A NOR B) — まずA NOR Bを作り、それを自己NORで反転
- A AND B = (A NOR A) NOR (B NOR B) — De Morganを用いて、まずNOT A, NOT Bを作り、NORで結ぶ
これらにより、NORゲートのみで任意の組合せ回路を実装できます。実際の集積回路設計では、性能や面積の都合で最適化されたセル(NANDやINVなど)を混用することが多いです。
SRラッチ(NOR版)と記憶要素
NORゲートはフィードバックを使った記憶回路の構成要素として有名です。代表的なものがSRラッチ(セット-リセットラッチ)で、2つのNORゲートを相互に接続して構成します。大まかな動作:
- S=1, R=0 → Q=1(セット)
- S=0, R=1 → Q=0(リセット)
- S=0, R=0 → Qは保持(前の状態)
- S=1, R=1 → 禁止状態(不定)
SRラッチはフリップフロップやメモリセルの基本概念を学ぶ上で重要です。NORベースのラッチは、特にアクティブハイ制御が要求される場合に自然に適合します(NANDベースはアクティブロー)。
実務上の用途と選択基準
NORは論理合成や標準セルライブラリ、FPGAのルックアップテーブル(LUT)設計、低レベルの論理最適化、そして記憶素子の実装など幅広く用いられます。設計者は次を考慮してNORを選択します:
- 機能単純さ:特定の論理式がNOR中心で効率的に実現できる場合
- パフォーマンス:ファンインや負荷に応じた遅延特性
- 消費電力:静的CMOSでは静電力消費が低いが、動的スイッチング電力は負荷とスイッチ頻度に依存
- ノイズ耐性とマージン:特にアナログ混在環境や低電圧動作時に重要
設計上の課題:ハザードとスケーリング
大規模集積回路や高速回路では、NORの多入力化やトランジスタ微細化に伴い、次の課題が顕在化します。
- 静的・動的ハザード:入力が遷移する際に出力が一瞬誤った値を示す。論理式の冗長化や合成ツールによるタイミング検査で対処する。
- マルチファンインによる遅延:pMOS直列の増加で立ち上がり遅延が増え、トランジスタの幅増や分割実装(ツリー状にする)で対応する。
- 低電圧動作:しきい値やノイズマージンが厳しくなり、電源電圧低下時の設計が難しくなる。
まとめ
NORゲートは「ORの否定」を行う基本ゲートであり、機能的完全性を持つため論理回路設計で極めて重要です。静的CMOSではpMOSが直列、nMOSが並列に配置される実装形態が一般的で、ファンインや遅延、消費電力のトレードオフが設計上の主要な検討点になります。SRラッチなどの記憶素子構成や、NORだけで他の基本論理を構築できる点から、デジタル回路設計・集積回路設計の基礎として必須の概念です。


