ほえ

ほえ!!

ディジタル回路:ラッチ・フリップフロップ/同期式順序回路

ディジタル回路の構成要素から見直し。

SRラッチ

構造はNORゲートのたすき掛け。入力はS(Set)とR(Reset)の2つ、出力はNORゲート2つの出力がそれぞれQ, Q'。(R, S) = (0, 0)のとき不確定となり、入力以前のQ_prevを参照して出力が決定する。

(S, R) = (0, 1)であれば、QはResetされ0。 (S, R) = (1, 0)であればQはSetされて1。 (S, R) = (1, 1)のときは、Q = Q' = 0となるので禁止入力である。

Dラッチ

SRラッチにおける(S, R) = (1, 1)の不具合を解消する。

Dラッチの入力は(CLK, D)の2つであり、出力は同様に(Q, Q')。

(CLK and D)がSRラッチのS、(CLK and (not D))がSRラッチのRに入力されるようになっており、CLKはどのタイミングで出力するか、Dは何を出力するかを決定する。CLK = 1の状態をトランスペアレント(透過状態)と呼び、この状態ではDの値がQに通過する。CLK = 0の状態では以前の値を保持する。

Dフリップフロップ

DラッチではCLK = 1の間Qを更新し続ける。これを修正する。入力は(CLK, D)の2つであり、出力は(Q, Q')。

DフリップフロップはDラッチを2つ接続した形となっており、入力側はマスタ、出力側はスレーブと呼ばれる。

スレーブのCLKを反転した信号がマスタのCLKに入力される。マスタの出力QがスレーブのDに入力される構造となっている。以下ではスレーブのCLKをCLKと呼ぶ。また、QとDを接続するノードをN1とする。

CLK = 0のときはマスタが透過状態であり、入力DがN1まで到達する。しかし、スレーブは透過状態ではないため、出力までは到達しない。この状態でCLK = 1とすると、スレーブが透過状態となり、N1が出力Qまで到達する。この状態ではマスタはブロックされているため、入力Dを変動させても出力Qは変わらない。

よって、DフリップフロップではCLKの立ち上がり時に入力Dを出力に到達させる構造となっていることがわかる。共通のCLKを持つN個のフリップフロップをNビットのレジスタと呼ぶ。

同期式順序回路

・全ての回路の要素はレジスタ / 組み合わせ回路

・1つの要素は少なくともレジスタ

・すべてのレジスタのCLKは共通

・すべての巡回パスには一つはレジスタが入っている

を満たす回路を同期式順序回路と呼ぶ。