Chapter 11
CMOS ロジック — インバータ 1 個からすべてが作られる
この章がなぜ必要なのか——デジタル回路は、全部これでできているから.
MCU も、FPGA も、メモリも、ロジック IC も、 中身は CMOS のインバータとその変形の集まりである。
そして CMOS の構造を知ると、実務の疑問が一気に解ける。
- なぜ「使わない入力を開放にしてはいけない」のか
- なぜ「スイッチング周波数を上げると消費電力が増える」のか
- なぜ「ラッチアップ」が起きるのか
- なぜ「立ち上がりを遅くするとノイズが減る」のか
この章で使う既出の用語(定義は各リンク先). バイアス(01 章 4 節)、逆方向(04 章 1 節)、スイッチ(05 章 2 節)、制御(06 章 6 節)、CMOS(07 章 2 節)、低消費電力(07 章 6 節)、反転(08 章 2 節)、インバータ(09 章 2 節)、負荷容量(09 章 2 節)
1. CMOS インバータ
| 入力 | PMOS | NMOS | 出力 |
|---|---|---|---|
| L (0 V) | オン | オフ | H(VDD に引っ張られる) |
| H (VDD) | オフ | オン | L(GND に引っ張られる) |
これが CMOS の本質である: どちらか片方しかオンにならない.
だから——定常状態では、VDD から GND への電流経路がない。
$$P_{static} \approx 0$$
これが「CMOS は静的な消費電力がゼロ」と言われる理由である。 (実際にはリーク電流があるが、後述する。)
相補 (Complementary) の意味
CMOS = Complementary Metal-Oxide-Semiconductor
「相補」とは、PMOS と NMOS が常に逆の状態になることを指す。
- プルアップネットワーク (PUN): PMOS で構成。出力を H にする
- プルダウンネットワーク (PDN): NMOS で構成。出力を L にする
- PUN と PDN は、常にどちらか一方だけが導通する
電圧伝達特性 (VTC)
| 領域 | PMOS | NMOS | ||
|---|---|---|---|---|
| \(V_{in} < V_{th,n}\) | 線形 | オフ | ||
| 遷移領域 | 飽和 | 飽和 ← 両方オン! | ||
| $`V_{in} > V_{DD} - | V_{th,p} | `$ | オフ | 線形 |
遷移領域では、PMOS と NMOS が両方オンになっている.
ここで VDD から GND へ貫通電流(short-circuit current)が流れる。
これが——
- 入力が中間電位で止まると、大電流が流れて発熱する
- なまった波形を入力すると消費電力が増える
- 未使用入力を開放にしてはいけない
の理由である。
CMOS インバータの動作を見る
\(V_{DD}\)・トランジスタのサイズ比・入力電圧を変えて、 VTC・貫通電流・遷移点を確かめられる。
遷移点(スイッチング閾値)
PMOS と NMOS の駆動力が等しくなる入力電圧。
05 章で見たとおり、PMOS の移動度は NMOS の 1/2〜1/3 なので、
にして駆動力を揃える。 こうしないと \(V_M\) が \(V_{DD}/2\) からずれ、 立ち上がりと立ち下がりの遅延も非対称になる。
2. 複合ゲート
NAND ゲート
| A | B | 出力 |
|---|---|---|
| L | L | H |
| L | H | H |
| H | L | H |
| H | H | L |
NOR ゲート
構成の規則
PDN(NMOS)が論理式そのもの、PUN(PMOS)はその双対.
論理 PDN(NMOS) PUN(PMOS) AND 直列 並列 OR 並列 直列 だから——
- \(\overline{A \cdot B}\)(NAND)→ NMOS 直列、PMOS 並列
- \(\overline{A + B}\)(NOR)→ NMOS 並列、PMOS 直列
任意の論理式を、この規則で回路に変換できる。
なぜ NAND / NOR が基本なのか
CMOS では、出力が必ず反転する。 (PUN が上、PDN が下という構造上、非反転の単純な形は作れない。)
だから——
| ゲート | 構成 |
|---|---|
| NOT | インバータ 1 個(2 トランジスタ) |
| NAND | 4 トランジスタ |
| NOR | 4 トランジスタ |
| AND | NAND + インバータ(6 トランジスタ) |
| OR | NOR + インバータ(6 トランジスタ) |
| XOR | 8〜12 トランジスタ |
NAND / NOR の方が AND / OR より少ないトランジスタで作れる.
だから論理設計は NAND / NOR を基本に行う(ド・モルガンの法則で変換する)。
そして——NMOS の直列は PMOS の直列より速い(移動度が高い)ので、 NAND の方が NOR より高速で小さい。 標準セルライブラリでは NAND が優先的に使われる。
複合ゲートの構成を見る
論理式を選ぶと、対応する CMOS 回路とトランジスタ数が表示される。
AOI / OAI ゲート
複数の論理を 1 段で実現できる。
AND-OR-Invert(AOI)や OR-AND-Invert(OAI)は、 個別のゲートを組み合わせるより少ないトランジスタで済む。
論理合成ツールは、こうした複合ゲートを自動的に選択する。
3. 伝搬遅延
遅延の原因
出力に繋がった容量を、有限の電流で充放電するのにかかる時間。
| 要因 | 遅延への影響 |
|---|---|
| 負荷容量 \(C_L\) | 比例して増える |
| 駆動力(\(W/L\)) | 反比例して減る |
| \(V_{DD}\) | 高いほど速い(\((V_{DD}-V_{th})^2\) が効く) |
| 温度 | 高温で遅くなる(移動度が下がる) |
| プロセスばらつき | Fast / Typical / Slow コーナー |
ファンアウトと遅延
1 つの出力が駆動するゲート数を「ファンアウト」という。
ファンアウトが大きいほど遅い。
FO4 遅延という指標.
「自分と同じインバータを 4 個駆動したときの遅延」を プロセスの速度指標として使う。
プロセス FO4 遅延の目安 180 nm 約 90 ps 65 nm 約 30 ps 28 nm 約 15 ps 7 nm 約 5 ps クロック周期を FO4 で割ると、1 サイクルで通せる論理段数が分かる。 一般的な設計では 20〜40 FO4 程度である。
バッファチェーン
大きな容量を駆動するには、段階的にサイズを大きくする。
最適な段数と倍率:
実際には、寄生容量を考慮して 3〜4 倍が最適とされる。
これが「クロックツリー」の設計原理でもある.
MCU の内部で、1 つのクロック源が数万個のフリップフロップを駆動する。 段階的にバッファを挿入して、遅延とスキューを制御する。
4. 消費電力
動的電力(スイッチング電力)
| 記号 | 意味 |
|---|---|
| \(\alpha\) | スイッチング確率(活性化率)。0〜1 |
| \(C_L\) | 負荷容量 |
| \(V_{DD}\) | 電源電圧 |
| \(f\) | 周波数 |
\(V_{DD}^2\) が効く、というのが最も重要な事実である.
電源電圧を半分にすると、消費電力は 1/4 になる。
だから低消費電力設計では——
- 動作電圧を下げる(DVS: Dynamic Voltage Scaling)
- 周波数を下げる(DFS)
- 両方(DVFS)——電圧を下げると最大周波数も下がるので、 必要な性能に対して最小の電圧を選ぶ
ただし電圧を下げると遅延が増え、リーク電流の比率が上がる(後述)。
なぜ \(V^2\) か: 容量を \(V_{DD}\) まで充電するのに必要なエネルギーは
(半分は容量に蓄えられ、半分は PMOS で熱になる。放電時に残り半分が NMOS で熱になる。)
貫通電流(短絡電流)
遷移中に PMOS と NMOS が同時にオンになる期間の電流。
入力の立ち上がりが遅いほど、貫通電流が増える.
遷移領域にいる時間が長くなるからである。
だから——
- なまった信号をロジック入力に入れない(シュミット入力で受ける、09 章)
- 配線が長いと立ち上がりが鈍り、消費電力が増える
- 一般に貫通電流は全体の 5〜15 % だが、入力が悪いと数倍になる
リーク電流
| 種類 | 内容 |
|---|---|
| サブスレッショルド漏れ | \(V_{GS} < V_{th}\) でも流れる。\(V_{th}\) を下げるほど指数的に増える |
| ゲート漏れ(トンネル) | 酸化膜が薄いと、量子トンネルで漏れる |
| 接合漏れ | PN 接合の逆方向漏れ |
微細化のジレンマ.
微細化 → \(V_{DD}\) を下げたい → \(V_{th}\) も下げないと速度が出ない → サブスレッショルド漏れが指数的に増える
だから現代のプロセスでは、リーク電力が全体の 30〜50 % を占めることもある。
対策:
- マルチ \(V_{th}\)(速度が要る経路だけ低 \(V_{th}\) を使う)
- パワーゲーティング(使わないブロックの電源を切る)
- ボディバイアス(基板電位で \(V_{th}\) を制御)
- FinFET / GAA(ゲートの制御力を上げて漏れを減らす)
組み込みでは——MCU のスリープモードで、 どのブロックの電源が切れるかがリーク電力を決める。
消費電力の内訳を見る
\(V_{DD}\)・周波数・活性化率・温度を変えて、 動的・貫通・リークの内訳を確かめられる。
5. 実務上の注意点
未使用入力を開放にしてはいけない
開放にすると:
| 症状 | 原因 |
|---|---|
| 発熱 | 中間電位で止まり、貫通電流が流れ続ける |
| 発振 | ノイズを拾って不定に切り替わる |
| 他の回路への干渉 | 電源経由でノイズが伝わる |
| 消費電流の増大 | 待機時に mA オーダーの電流が流れることも |
MCU の GPIO も同じである。 未使用ピンは 「入力プルアップ/プルダウン」か「出力ロー」に設定すること(19 章)。
ラッチアップ
CMOS 構造には、寄生的な PNPN サイリスタが存在する。
トリガされると、VDD から GND へ大電流が流れ続け、破壊に至る。
| トリガ条件 | 内容 |
|---|---|
| 入力が VDD より高い/GND より低い | 保護ダイオードが順バイアスされ、基板に電流が注入される |
| 電源投入の順序 | I/O 電源がコア電源より先に立つなど |
| 過渡的なノイズ | ESD、サージ |
対策:
| 対策 | 内容 |
|---|---|
| 入力電圧を電源範囲内に保つ | 直列抵抗、クランプダイオード(04 章) |
| 電源シーケンスを守る | データシートの規定に従う(16 章) |
| 入力電流を制限する | 多くの IC で「入力ピンあたり ±20 mA」などの規定がある |
| プロセス側の対策 | ガードリング、エピタキシャル基板(設計者側では選べない) |
「MCU の電源を切っても動く」現象は、ほぼこれの入口である(04 章)。
信号線から保護ダイオード経由で VDD に電流が流れ込み、 MCU が中途半端に動作する(ファントム給電)。 これがラッチアップに発展すると、発熱して壊れる。
必ず直列抵抗で電流を制限すること。
入力の閾値とノイズマージン
| ロジックファミリ | \(V_{IH}\)(H と認識する最低) | \(V_{IL}\)(L と認識する最高) |
|---|---|---|
| CMOS (VDD=3.3 V) | 0.7 × VDD = 2.31 V | 0.3 × VDD = 0.99 V |
| TTL 互換 (LVTTL) | 2.0 V | 0.8 V |
| LVCMOS 1.8 V | 0.65 × VDD = 1.17 V | 0.35 × VDD = 0.63 V |
ノイズマージン:
3.3 V の CMOS 出力を 5 V の CMOS 入力に入れると、H と認識されない.
5 V CMOS の \(V_{IH} = 0.7 \times 5 = 3.5\) V。 3.3 V の出力(最大 3.3 V)では届かない。
対策: レベルシフタを使う(21 章)。 または TTL 閾値の品種(\(V_{IH} = 2.0\) V)を選ぶ。
逆に 5 V → 3.3 V は電圧が高すぎるので、 5 V トレラント入力でなければ抵抗分圧かレベルシフタが要る。
6. ロジック IC のファミリ
| ファミリ | 電源 | 特徴 |
|---|---|---|
| 74HC | 2〜6 V | 汎用 CMOS。CMOS 閾値 |
| 74HCT | 5 V | TTL 閾値(\(V_{IH}=2.0\) V)。5 V 系での 3.3 V 受け |
| 74LVC | 1.65〜3.6 V | 低電圧・高速。5 V トレラント入力の品種が多い |
| 74AUP | 0.8〜3.6 V | 超低消費電力。電池駆動向け |
| 74AHC / 74AC | — | 高速版 |
| 1G / 2G シリーズ | — | 1 ゲートだけの小型パッケージ(SOT-23-5 など)。便利 |
1 ゲート IC(74LVC1G シリーズなど)は非常に便利である.
- インバータ 1 個(74LVC1G04)
- バッファ 1 個(74LVC1G125、出力イネーブル付き)
- AND / OR / NAND / XOR
- シュミットトリガ(74LVC1G17)
- レベルシフタ(電源が分かれている品種)
SOT-23-5 や SC-70-5 で数十円。 「ロジックを 1 つだけ足したい」場面で重宝する。
7. この章のまとめ
| ポイント | 内容 |
|---|---|
| CMOS の本質 | PMOS と NMOS のどちらか片方だけがオン。定常電流がゼロ |
| 遷移領域 | 両方オンになり、貫通電流が流れる。中間電位は危険 |
| 構成の規則 | PDN(NMOS)が論理式、PUN(PMOS)はその双対 |
| NAND / NOR | AND / OR より少ないトランジスタ。NAND の方が速い |
| 遅延 | \(t_{pd} \propto C_L V_{DD} / I_{on}\)。ファンアウトに比例 |
| バッファチェーン | 段ごとに 3〜4 倍が最適 |
| 動的電力 | \(P = \alpha C V_{DD}^2 f\)。\(V^2\) が効く(電圧半分で電力 1/4) |
| 貫通電流 | 入力の立ち上がりが遅いほど増える。シュミットで受ける |
| リーク | \(V_{th}\) を下げると指数的に増える。現代では全体の 30〜50 % |
| 未使用入力 | 絶対に開放にしない。発熱・発振・干渉の原因 |
| ラッチアップ | 寄生 PNPN。入力を電源範囲内に保ち、電流を制限する |
| 閾値 | 3.3 V → 5 V CMOS は H と認識されない。TTL 閾値品かレベルシフタ |
| 1 ゲート IC | 74LVC1G シリーズ。「1 つだけ足したい」ときに便利 |
次章では、ロジックを組み合わせたときに起きる問題—— タイミング・消費電力・メタステーブルを扱う。