組み込み回路 11 · CMOS ロジック — インバータ 1 個からすべてが作られる

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 インバータ

VDDPMOS入力 L でオン出力NMOS入力 H でオン入力
CMOS インバータ。定常状態では必ずどちらか一方だけがオンなので、電流が流れない
入力PMOSNMOS出力
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 が常に逆の状態になることを指す。

電圧伝達特性 (VTC)

V_inV_outVDDV_M(スイッチング閾値)遷移領域利得が大きく、貫通電流が流れる入力を中間電位で放置してはいけないのは、ここに居座るから
入出力特性(VTC)。傾きが急なほど利得が高くノイズに強いが、遷移中は必ず貫通電流が流れる
領域PMOSNMOS
\(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 の駆動力が等しくなる入力電圧。

\[ V_M \approx \frac{V_{DD}}{2} \quad (\text{PMOS と NMOS の駆動力が等しいとき}) \]

05 章で見たとおり、PMOS の移動度は NMOS の 1/2〜1/3 なので、

\[ \left(\frac{W}{L}\right)_p \approx 2 \sim 3 \times \left(\frac{W}{L}\right)_n \]

にして駆動力を揃える。 こうしないと \(V_M\) が \(V_{DD}/2\) からずれ、 立ち上がりと立ち下がりの遅延も非対称になる。

2. 複合ゲート

NAND ゲート

VDDP(A)P(B)並列YN(A)N(B)直列AB
NAND。NMOS が直列、PMOS が並列。両方 H のときだけプルダウン網が導通して出力が L になる
AB出力
LLH
LHH
HLH
HHL

NOR ゲート

NOR2:Y = NOT(A + B)VDDP(A)P(B)直列YN(A)N(B)並列AB
NOR。PMOS が直列になるので遅い。だから合成ツールは NAND を好む

構成の規則

PDN(NMOS)が論理式そのもの、PUN(PMOS)はその双対.

論理PDN(NMOS)PUN(PMOS)
AND直列並列
OR並列直列

だから——

任意の論理式を、この規則で回路に変換できる。

なぜ NAND / NOR が基本なのか

CMOS では、出力が必ず反転する。 (PUN が上、PDN が下という構造上、非反転の単純な形は作れない。)

だから——

ゲート構成
NOTインバータ 1 個(2 トランジスタ)
NAND4 トランジスタ
NOR4 トランジスタ
ANDNAND + インバータ(6 トランジスタ)
ORNOR + インバータ(6 トランジスタ)
XOR8〜12 トランジスタ

NAND / NOR の方が AND / OR より少ないトランジスタで作れる.

だから論理設計は NAND / NOR を基本に行う(ド・モルガンの法則で変換する)。

そして——NMOS の直列は PMOS の直列より速い(移動度が高い)ので、 NAND の方が NOR より高速で小さい。 標準セルライブラリでは NAND が優先的に使われる。

複合ゲートの構成を見る

論理式を選ぶと、対応する CMOS 回路とトランジスタ数が表示される。

AOI / OAI ゲート

複数の論理を 1 段で実現できる。

AOI21:Y = NOT(A·B + C)VDDP(A)P(B)A ∥ BP(C)と直列YN(A)N(B)N(C)(A 直列 B) ∥ C
AOI(AND-OR-Invert)。プルダウン網に論理式をそのまま組み、プルアップ網はその双対(直列↔並列)にする

AND-OR-Invert(AOI)や OR-AND-Invert(OAI)は、 個別のゲートを組み合わせるより少ないトランジスタで済む。

論理合成ツールは、こうした複合ゲートを自動的に選択する。

3. 伝搬遅延

遅延の原因

出力に繋がった容量を、有限の電流で充放電するのにかかる時間。

\[ t_{pd} \approx \frac{C_L V_{DD}}{2 I_{on}} \approx \frac{C_L V_{DD}}{2 \cdot \frac{1}{2}k'\frac{W}{L}(V_{DD}-V_{th})^2} \]
要因遅延への影響
負荷容量 \(C_L\)比例して増える
駆動力(\(W/L\))反比例して減る
\(V_{DD}\)高いほど速い(\((V_{DD}-V_{th})^2\) が効く)
温度高温で遅くなる(移動度が下がる)
プロセスばらつきFast / Typical / Slow コーナー

ファンアウトと遅延

1 つの出力が駆動するゲート数を「ファンアウト」という。

\[ C_L = \text{FO} \times C_{gate} + C_{wire} \]

ファンアウトが大きいほど遅い。

FO4 遅延という指標.

「自分と同じインバータを 4 個駆動したときの遅延」を プロセスの速度指標として使う。

プロセスFO4 遅延の目安
180 nm約 90 ps
65 nm約 30 ps
28 nm約 15 ps
7 nm約 5 ps

クロック周期を FO4 で割ると、1 サイクルで通せる論理段数が分かる。 一般的な設計では 20〜40 FO4 程度である。

バッファチェーン

大きな容量を駆動するには、段階的にサイズを大きくする。

小中大特大信号重い負荷1 段あたり 3〜4 倍ずつ大きくするのが、遅延が最小になる比率
バッファチェーン。いきなり大きなドライバで受けると入力容量が重くなるので、段階的に拡大する

最適な段数と倍率:

\[ \text{倍率} \approx e \approx 2.7 \quad (\text{理論値}) \]

実際には、寄生容量を考慮して 3〜4 倍が最適とされる。

\[ N = \ln\left(\frac{C_L}{C_{in}}\right) / \ln(\text{倍率}) \]

これが「クロックツリー」の設計原理でもある.

MCU の内部で、1 つのクロック源が数万個のフリップフロップを駆動する。 段階的にバッファを挿入して、遅延とスキューを制御する。

4. 消費電力

\[ P_{total} = P_{dynamic} + P_{short} + P_{leak} \]

動的電力(スイッチング電力)

\[ P_{dynamic} = \alpha \, C_L \, V_{DD}^2 \, f \]
記号意味
\(\alpha\)スイッチング確率(活性化率)。0〜1
\(C_L\)負荷容量
\(V_{DD}\)電源電圧
\(f\)周波数

\(V_{DD}^2\) が効く、というのが最も重要な事実である.

電源電圧を半分にすると、消費電力は 1/4 になる。

だから低消費電力設計では——

ただし電圧を下げると遅延が増え、リーク電流の比率が上がる(後述)。

なぜ \(V^2\) か: 容量を \(V_{DD}\) まで充電するのに必要なエネルギーは

\[ E = C V_{DD}^2 \]

(半分は容量に蓄えられ、半分は PMOS で熱になる。放電時に残り半分が NMOS で熱になる。)

貫通電流(短絡電流)

遷移中に PMOS と NMOS が同時にオンになる期間の電流。

\[ P_{short} \propto \frac{\tau_{rise}}{T} \cdot V_{DD} \cdot I_{peak} \cdot f \]

入力の立ち上がりが遅いほど、貫通電流が増える.

遷移領域にいる時間が長くなるからである。

だから——

リーク電流

種類内容
サブスレッショルド漏れ\(V_{GS} < V_{th}\) でも流れる。\(V_{th}\) を下げるほど指数的に増える
ゲート漏れ(トンネル)酸化膜が薄いと、量子トンネルで漏れる
接合漏れPN 接合の逆方向漏れ
\[ I_{sub} \propto e^{(V_{GS}-V_{th})/(n V_T)} \]

微細化のジレンマ.

微細化 → \(V_{DD}\) を下げたい → \(V_{th}\) も下げないと速度が出ない → サブスレッショルド漏れが指数的に増える

だから現代のプロセスでは、リーク電力が全体の 30〜50 % を占めることもある。

対策:

組み込みでは——MCU のスリープモードで、 どのブロックの電源が切れるかがリーク電力を決める。

消費電力の内訳を見る

\(V_{DD}\)・周波数・活性化率・温度を変えて、 動的・貫通・リークの内訳を確かめられる。

5. 実務上の注意点

未使用入力を開放にしてはいけない

【悪い】開放×出力?入力が中間電位に漂い貫通電流が流れ続ける外来ノイズでも誤動作【良い】固定出力LGND か VDD に固定する(未使用 GPIO はアナログ入力が最良)
未使用の CMOS 入力を開放にしてはいけない。消費電流が跳ね上がり、誤動作の温床になる

開放にすると:

症状原因
発熱中間電位で止まり、貫通電流が流れ続ける
発振ノイズを拾って不定に切り替わる
他の回路への干渉電源経由でノイズが伝わる
消費電流の増大待機時に mA オーダーの電流が流れることも

MCU の GPIO も同じである。 未使用ピンは 「入力プルアップ/プルダウン」か「出力ロー」に設定すること(19 章)。

ラッチアップ

CMOS 構造には、寄生的な PNPN サイリスタが存在する。

寄生サイリスタ(ラッチアップ)p+PMOSn ウェルp 基板n+NMOS寄生 PNP寄生 NPN互いに正帰還を作る一度点火すると電源を切るまで止まらない
CMOS の構造には必ず寄生 PNP と NPN が含まれる。ピンから基板に電流が注入されると点火し、大電流が流れて焼損する

トリガされると、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 V0.3 × VDD = 0.99 V
TTL 互換 (LVTTL)2.0 V0.8 V
LVCMOS 1.8 V0.65 × VDD = 1.17 V0.35 × VDD = 0.63 V

ノイズマージン:

\[ NM_H = V_{OH} - V_{IH}, \qquad NM_L = V_{IL} - V_{OL} \]

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 のファミリ

ファミリ電源特徴
74HC2〜6 V汎用 CMOS。CMOS 閾値
74HCT5 VTTL 閾値(\(V_{IH}=2.0\) V)。5 V 系での 3.3 V 受け
74LVC1.65〜3.6 V低電圧・高速。5 V トレラント入力の品種が多い
74AUP0.8〜3.6 V超低消費電力。電池駆動向け
74AHC / 74AC—高速版
1G / 2G シリーズ—1 ゲートだけの小型パッケージ(SOT-23-5 など)。便利

1 ゲート IC(74LVC1G シリーズなど)は非常に便利である.

SOT-23-5 や SC-70-5 で数十円。 「ロジックを 1 つだけ足したい」場面で重宝する。

7. この章のまとめ

ポイント内容
CMOS の本質PMOS と NMOS のどちらか片方だけがオン。定常電流がゼロ
遷移領域両方オンになり、貫通電流が流れる。中間電位は危険
構成の規則PDN(NMOS)が論理式、PUN(PMOS)はその双対
NAND / NORAND / 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 ゲート IC74LVC1G シリーズ。「1 つだけ足したい」ときに便利

次章では、ロジックを組み合わせたときに起きる問題—— タイミング・消費電力・メタステーブルを扱う。