ラッチとフリップフロップの違い:動作と使い分けを比較
どちらも1ビットを記憶しますが、動き出すきっかけが違います。ラッチはレベル感応で、イネーブルが有効な間は透明になって入力をそのまま出力へ通し、イネーブルが無効になると、その値を保持します。フリップフロップはエッジトリガで、クロックのエッジの瞬間だけ入力を取り込み、それ以外の変化は無視します。フリップフロップは、逆の位相で動く2つのラッチでできています。
| 項目 | ラッチ | フリップフロップ |
|---|---|---|
| トリガー | レベル感応。イネーブルが有効な間、動作する | エッジトリガ。クロックの立ち上がりまたは立ち下がりの瞬間だけ動作する |
| 出力の動き | 透明な間は入力に追従し、そのあと保持する | クロックのエッジでだけ変わり、それ以外は安定している |
| 構成 | 記憶の段が1つ | 逆の位相で動く2つのラッチを直列につなぐ(マスタースレーブ) |
| 大きさと消費電力 | 小さく、消費電力も小さい | 大きい。トランジスタ数はおよそ2倍 |
| タイミング解析 | 複雑。透明な期間をまたぐタイムボローイングがある | 簡単。クロックのエッジの前後のセットアップ時間とホールド時間 |
| グリッチへの影響 | 透明な間は、グリッチやレースが通り抜ける | クロックのエッジの間の入力の変化には影響されない |
| 主な用途 | タイムボローイングを使う専用の高速設計、クロックゲーティングのセル | 同期設計のレジスタ、カウンタ、ステートマシン |
数値は代表的な目安で、世代や製品によって異なります。