ラッチ回路

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

ラッチ回路(ラッチかいろ)は、双安定マルチバイブレータの一種で、1bitの情報を保持できる状態を有する電子回路である。アナログ回路の応用もあるが、デジタル回路論理回路)のひとつとみなされることもある。クロックのある(同期・クロックド)ラッチでは、クロックのエッジ位置でのみ出力が変化するエッジトリガタイプと、「オープン」の期間は素通りするトランスペアレントタイプの2種類に大別される。

エッジトリガタイプをフリップフロップとする、ないしトランスペアレントタイプのみをラッチとする、また、エッジトリガタイプを同期式フリップフロップ、セット・リセットとトランスペアレントタイプを非同期式フリップフロップ、などとすることがある。

ラッチを含む回路は状態を保持することができ、「以前の入力信号による現在の状態」と「現在の入力」とにより、このような回路の出力は決定する。有限オートマトンにモデル化されるこのような回路を順序回路(論理回路#順序回路)と呼ぶ。オートマトンの用語で、出力を決定するものに「現在の入力」が含まれない(エッジトリガタイプ)ものをムーア・マシン、含まれる(トランスペアレントタイプ)ものをミーリ・マシンと言う。

近年の高速なアナログ回路では、コンパレータ分周回路として差動のラッチ回路が数多く利用される。

セット・リセット型ラッチ回路[編集]

SRラッチ/双安定性ラッチ[編集]

SRラッチ回路

論理素子を用いてラッチを作成する場合、最も基礎的なラッチが単純な「SRラッチ」である。ここで、Sは「Set」、Rは「Reset」を意味する。

この回路は、1組のたすきがけになったNOR (Not OR) で構成することができる。保持されたbitの情報は、Qと表記されたポートから出力される。

NANDによるRSラッチ
インバータによるRSラッチ

なお、入力部分にインバータを追加することにより、NAND素子でRSラッチを構成することができる。また、インバータ2つを用いてRSラッチを構成することも可能である[1][2]

一般的に、SとRの入力ポートを両方ともLowにすることにより、データを保持する。この時、たすきがけのフィードバック回路により、 QとQの出力が、一定値、かつ、それぞれ逆の値で保たれる。

R (Reset) がLowの間に S (Set) が一瞬でもHighとなった場合、Q出力がHighとなり、SがLowに戻った後も QはHighを保持する。同様に、SがLowの間に Rが一瞬でもHighとなった場合、Q出力がLowとなり、RがLowに戻った後も QはLowを保持する。

SRラッチの動作
S R 動作
0 0 状態保持
0 1 Q = 0
1 0 Q = 1
1 1 (制限付き)
SRラッチのシンボル
アニメーションによるSRラッチの動作説明

R = S = 1 の組み合わせは制限付きである。なぜなら両方の NORゲートの出力が 0 となり、 Q = not Q の論理式に違反するようになるからである。この組み合わせ回路は、一時的に両方の入力が同時にLowになるという時間があるという不適切な回路である(すなわち、制限付きから保持状態への遷移が存在する)。

ゲートでの伝播時間の関係(競合状態)により、出力が1か0にロックされる。ある実装では、出力が決定する前に、長いリンギング(減衰振動)を発生し、その結果、高周波ディジタル回路における不定値(誤り)となる可能性がある。よって、通常この状態を避けるように設計する。

制限付きの組み合わせの問題を解決するために、(S,R) = (1,1) を制限されていない組み合わせの1つに変換するために、入力にゲートを加えることができる。これは以下の通りである。

  • Q = 1 (1,0) — Sラッチとみなす
  • Q = 0 (0,1) — Rラッチとみなす
  • 保持状態 (0,0) — Eラッチとみなす

あるいは、制限付きの組み合わせにより、出力を 切り替える(トグルする) のに使用することができる。これはJKラッチとなる。

特徴: Q+ = R'Q + R'S または Q+ = R'Q + S[3]

SR NAND型ラッチ回路[編集]

NAND型SRラッチ

これは、SRラッチをNAND (Not AND) 論理ゲートで置き換えたモデルである。セットとリセットは負論理となり、それぞれSRと示している。これ以外の動作はSRラッチと同じである。

負論理入力の表記などの不便性にもかかわらず、SRラッチは、歴史的に広く使われている。これは、CMOSが普及する以前の初期の集積回路であるDTLTTLで、NANDゲートNORゲートに比べて安価に生産できるためである。その後、ほとんどの集積回路CMOSで作られるようになってきた現在でも、NANDゲートが広く使われている。

SRラッチの動作
S R 動作
0 0 (制限付き)
0 1 Q = 1
1 0 Q = 0
1 1 状態保持
SRラッチのシンボル

JKラッチ[編集]

JKラッチ

JKラッチは、JKフリップフロップと言われることが多い。

JKラッチは、次の状態を持つ。

JKラッチ真理値表
J K Qnext コメント
0 0 Qprev 変化なし
0 1 0 リセット
1 0 1 セット
1 1 Qprev トグル
JKラッチのシンボル

したがって、JKラッチは、SRラッチの制限付きの状態が実行されるときに、出力を 切り換える(トグルする) ように作られていると考えることができる。

ゲーテッド・ラッチ回路と条件付通過性[編集]

ラッチは、データを通過するように設計されている。すなわち、入力信号の変化するとすぐに出力信号が変化する[nb 1]。あるいは、一方の信号が入力されていない時に非透過にするための簡単な論理(例えば「Enable」入力)を、通過性のラッチに追加することができる。

このようにすることにより、 通過性の低い ラッチや エッジで動作する フリップフロップなどを実装することができる[4]

ゲーテッドSR型ラッチ回路[編集]

NANDゲートで構成されたゲーテッドSRラッチ回路図
NORゲートで構成されたゲーテッドSRラッチ回路図

同期SRラッチ(しばしばクロックドSRラッチ と呼ばれる)は、SRラッチへ2段目のNANDゲートを追加する(あるいはSRラッチに2段目のNORゲートを追加する)ことによって作ることができる。

そして、余分なゲートがさらに入力を逆にするので、単純なSRラッチがゲーテッドSRラッチになる(逆に、単純なSRラッチは、不論理のイネーブルつきのゲーテッドSRラッチとなる)。

EがHighのとき(イネーブル が真のとき)、信号は入力ゲートを通り抜け、内部のラッチにデータが伝わる。次に、「(0,0) = 保持」以外のすべての組み合わせでは、(Q,Q) がすぐに出力される。すなわち、このラッチは通過型である。

EがLowのとき(イネーブル が偽のとき)、ラッチは 閉じられて いて、出力は E が High のときの値を保持する。

イネーブル 入力はしばしばクロック信号となり、リードやライトのストローブ信号にもなる。

ゲーテッドSRラッチの真理値表
E/C 動作
0 動作しない(状態保持)
1 通常のSRラッチと同じ動作をする
ゲーテッドSRラッチのシンボル

ゲーテッドDラッチ回路[編集]

Schematic diagram
通過型Dラッチ
D 入力
E Enable/clock
Q 出力
Q Qの反転
SR (NOR) ラッチを元に構成したゲーテッドDラッチ

このラッチは、ゲーテッドSRラッチに密接に関連しており、同じようにして構成することができる。また、このラッチは 通過型ラッチデータラッチ、あるいは単に ゲーテッドラッチ と呼ばれる。

Dラッチには、データと イネーブル の入力信号がある(イネーブルは、しばしば クロック または コントロール と呼ばれることがある)。通過型 という言葉は、イネーブル入力がOnのとき、入力Dからの信号が出力Qまで直接伝播することから付けられている。

通過型ラッチの典型的な使用例としては、I/Oポートや非同期回路がある[nb 2]。1つの回路あたりの通常複数のラッチを用いて、集積回路を構成することができる。一般的な7400シリーズの例として、通過型ラッチが4素子入った 74HC75 がある。

Dラッチ真理値表
E/C D Q Q コメント
0 X Qprev Qprev 変化なし
1 0 0 1 Reset
1 1 1 0 Set
ゲーテッドDラッチのシンボル

真理値表は、enable/clock 入力が0のとき、D入力は出力に影響を与えないことを示している。また、E/C入力がHighのとき、出力はDに等しい。

ゲーテッド・トグル型ラッチ回路[編集]

ゲーテッド・トグル型ラッチ回路は、前の状態を切り換える(トグルする)もうひとつの同期SRラッチである。

Tラッチ(Tフリップフロップと呼ばれることが多い)は、トグル (T) 入力がHighなら、クロック入力がストローブされると状態が変化(「トグル」)する。

Tラッチを表す論理式は、 Qnext = T ⊕ Qpre である。ここで、 Qnext は次の状態であり、 Qprev は前の状態を示している。

T Qprev Qnext コメント
0 0 0 状態保持
0 1 1
1 0 1 状態のトグル
1 1 0
T型フリップフロップのシンボル。ここで > はクロック入力、 T はトグル入力、 Q は保持されているデータの出力を示す。

Tフリップフロップは、JKフリップフロップを使って作ることができる(具体的には、TがJとKピンを接続することによって実装される)。

また、Dフリップフロップを使用してTフリップフロップを作ることもできる(具体的には、T入力とQpreviousを、XORゲートを通してD入力に接続する)。

高速アナログ回路でのラッチ回路[編集]

差動型Dラッチのシンボル

「ラッチ回路内部にあるクロスカップル部分の2つの信号線間に、微小な電位差があると、時間の経過とともにその電位差が開いていく」という特徴を利用して、コンパレータを高速化するために、ラッチ回路がしばしば用いられる。

コンパレータとしてラッチを使用する場合、前段へのキックバックノイズの影響を考慮しておく必要がある[5][6]

ラッチ回路は高速なADコンバータなどに応用される。ADコンバータでは、コンパレータの速度がサンプリング周期を決定する重要な要因[7]であり、Flash ADCなど複数のコンパレータが必要な場合に、回路面積の削減と高速化のためにラッチ回路を利用できる。

差動型のDラッチは、分周回路を構成するために用いられる。ダイナミック・ラッチ・コンパレータやトラック・アンド・ラッチ・コンパレータは差動型Dラッチとみなせる。

ダイナミック・ラッチ・コンパレータ[編集]

ダイナミック・ラッチ[7][8]

右図は、インバータと、スイッチを用いて、ダイナミック・ラッチを構成した回路である。

イネーブル信号 CK に High が入力されているとき、クロスカップル部にある2つのインバータの出力がHi-Zとなり、DとDからの入力が、ZとZへ伝えられる。

イネーブル信号 CK が Low になると、入力信号DとDからのスイッチが Off となり、クロスカップル部にある2つのインバータ(ラッチ回路)が動作する。

DとDの電位差が小さい場合でも、クロスカップル部分の動作が開始すると、ZとZの電位差が徐々に大きくなり、1bitの情報がラッチされるため、離散時間でのコンパレータとなる。

ZとZの電位差は、 V_{out}(t) \propto V_{in} \exp \left( \frac{t}{\tau} \right)\tau = \frac{C}{g_m} で与えられる[5]ため、前段にプリアンプを追加するなどして、初期値 Vin をできる限り大きくするか、クロスカップル部にある寄生容量 C を小さくするなどにより、応答速度の改善を図る。

トラック・アンド・ラッチ・コンパレータ[編集]

トラック・アンド・ラッチ・コンパレータ

トラック・アンド・ラッチ・コンパレータは、ネガティブインダクタンス回路を用いて、電流を操作し、ラッチ状態を作り出す回路である[9]。 このコンパレータはバイポーラCMOSの両方で高速動作を実現でき[10][11]、高速のADコンバータなどに利用されている[12]

分周回路[編集]

差動型Dラッチによる2分周回路[10]

差動Dラッチを2段組み合わせると2分周回路を作ることができる。これはシングルエンドのDラッチからDフリップフロップを構成する場合と同じである。

注釈[編集]

  1. ^ 「通過」型のいくつかのラッチは、全ての信号が伝播されるものもある。
  2. ^ 通過型ラッチは、2相(ないし多相)クロック同期設計(トランジスタ数削減などの目的で採用される)で時々使用される。単相で、直接のフィードバックのある場合は発振するので、論理で発振が起きないよう保証するか、非通過型を使用するか、マスタ・スレーブ構成とするかなどしなければならない。

参照[編集]

関連記事[編集]

参考文献[編集]