f 3次元
5. ラッチ (latch) とフリップフロップ (flip-flop) 論理回路で用いられる記憶素子の総称。
5.6. D フリップフロップ
Dラッチをカスケード接続(マスター・スレイブ構成)したもの。
5.6.1. 回路
Q Q D Q
G Q
D Q G Q Q D Q G CK
D
Q Q P Q
5.6.2. (わかりにくい)特性表
CK D P Q
0 0 0 Q-(Qの直前の状態を保持)
0 1 1 Q-(Qの直前の状態を保持)
1 0 P-(=D-:CK=1になる直前のDの値) P(=P-=D-:CK=1になる直前のDの値)
1 1 P-(=D-:CK=1になる直前のDの値) P(=P-=D-:CK=1になる直前のDの値)
5.6.3. 記号*
Q Q D Q
“>”はクロック入力(CK)を示す。¯Q出力がない場合の記号は、以下のとおり。
D Q
5.6.4. 動作波形**
CK D P Q
・(わかりやすい)特性表を、こう書くこともある**。
CK D Q
0 0(=D-:CKが立上がる直前のDの値)
1 1(=D-:CKが立上がる直前のDの値)
例題1:シフトレジスタ*
Dフリップフロップを以下のように多段接続し、入力Dを与えたときの動作波形を描け。ただし初期値として、
Q0=Q1=Q2=Q3=0とする。
Q
0CK
D D Q D Q D Q D Q Q
1D Q D Q Q
2D Q D Q Q
3CK D Q
0Q
1Q
2Q
3このように1クロックずつ、波形が遅れる機能を持つ回路をシフトレジスタという。
例題2:T(トグル)フリップフロップ*
Dフリップフロップを以下のように接続したときの、動作波形を描け。ただし初期値として、Q=0とする。
Q Q D Q CK
Q
Q Q
または
CK
D Q Q D Q
Q Q
CK Q Q Q
QはCKの周波数を半分にしたものであり、一般に、周波数を半分にする回路を分周器という。また、出力が クロック入力に同期して反転することをトグルといい、フリップフロップで実装したこの回路をT(トグル)
フリップフロップという。
5.7. T(トグル)フリップフロップ
Tフリップフロップは、クロック入力Tの半分の周波数を、Qから出力する。
・特性表と記号
T Q
¯¯
Q-(反転)
Q Q Q
T
またはQ T
5.8. JKフリップフロップ^
その他のフリップフロップの1つに、JKフリップフロップがある。
・特性表と記号
CK J(セットに対応) K(リセットに対応) Q
0 0 Q-(保持)
0 1 0(リセット)
1 0 1(セット)
1 1 Q¯¯-(反転)
Q
Q
J Q
K
6. 順序回路
出力が、現時点の変数入力と、過去の状態に依存する論理回路。すなわち、過去の状態を記憶する回路(記 憶回路:ラッチ、フリップフロップ)が含まれる。
6.1. モデル
6.1.1. 組み合わせ論理回路のモデル
現時点での入力のみによって、出力が決まる。
組み合わせ
入力A 論理回路 出力Y
6.1.2. 順序回路のモデル(ミーリー型モデル)
現時点での入力+過去の状態で、出力と次の状態が決まる。
組み合わせ 論理回路
入力 A 出力 Y 記憶回路 過去の
状態S
6.2. 同期式順序回路
同期式順序回路とは、クロックに同期して、出力が変化する順序回路。D フリップフロップを記憶回路とし て用いれば、同期式順序回路を構成できる。この講義では、非同期式順序回路については触れない。
6.2.1. 同期式順序回路モデル(ミーリー型モデル)*
組み合わせ 論理回路
入力A 出力Y
現在の 記憶状態S
(t)S
(t+1)D Q
CK
S
(t)次の(1クロック後の)
記憶状態S
(t+1)具体的な回路図で書くと、以下のとおり。
6.3. 状態遷移図と状態遷移表
順序回路の設計には、状態遷移図と状態遷移表を用 いる。
6.3.1. 状態遷移図**
状態の変化を、入力・出力とともに図示したもの。
ラベルは入力/出力(=A/Y)を表す。接点(○)は状態 を表し、現在はいずれかの状態にある。1クロックご とに必ず、どこかの状態に遷移する。矢印はその遷 移を表す。
S
0S
1S
31/0
1/1 1/1
S
21/1
0/0 0/0
0/0
A/Y
0/0
この場合,状態数は4であり,2個のDフリップフ ロップが必要である。
6.3.2. 状態遷移表**
状態遷移図を表に書下したもの。
現在の状態S(t) 次の状態S(t+1) 出力Y 入力A 入力A
0 1 0 1
S0 S0 S1 0 0 S1 S1 S2 0 1 S2 S2 S3 0 1 S3 S3 S0 0 1 6.3.3. 状態変数
次に、状態に固有の変数を割り当てる。kビットの変 数で、2k状態まで表現できる。
S0、S1、S2、S3は4状態であり、2ビット(2つのD フリップフロップ)で表現できる。どの状態に、[00]2、 [01]2、[10]2、[11]2を割り当てるかは、一般に任意で あるが、割り当て方によって、回路規模は異なる。
ここでは、S0=[00]2、S1=[01]2、S2=[11]2、S3=[10]2
とすると、状態遷移表は以下となる
現在の状態S(t) 次の状態S(t+1) 出力Y 入力A 入力A
0 1 0 1
S0:00 S0:00 S1:01 0 0 S1:01 S1:01 S2:11 0 1 S2:11 S2:11 S3:10 0 1 S3:10 S3:10 S0:00 0 1
6.3.4. 回路化**
S(t)=[Q1(t) Q0(t)]2、S(t+1)=[Q1(t+1) Q0(t+1)]2とする。
・Q1(t+1)のカルノー図は、以下で与えられる。
Q1(t+1) A
Q1(t)Q0(t) 0 1 00 0 0 01 0 1 11 1 1 10 1 0 Q1(t+1)=Q1(t)A+Q¯ 0(t)A
・Q0(t+1)のカルノー図は、以下で与えられる。
Q0(t+1) A
Q1(t)Q0(t) 0 1 00 0 1 01 1 1 11 1 0 10 0 0 Q0(t+1)=Q
¯¯
1(t)A+Q0(t)A ¯・Yのカルノー図は、以下で与えられる。
Y A Q1(t)Q0(t) 0 1
00 0 0 01 0 1 11 0 1 10 0 1 Y=(Q1(t)+Q0(t))A
・結局、回路は以下のようになる。
・例題1
クロック入力 CK に同期して、記憶している値を 1 ずつ増やす回路をアップカウンタという。入力Aが A=0のときには、出力 Y=[Y1Y0]は[00]→[01]→[10]
→[11]…とカウントアップし、A=1 のときには、ホ ールド(出力そのまま)するカウンタを設計せよ。
状態遷移図:
S
3[11]
S
0[00]
S
1[01]
S
2[10]
0/01 0/11
0/00
0/10
1/00 1/01
1/10 1/11
A/Y
1Y
0状態遷移図:
Q1(t)Q0(t) Q1(t+1)Q0(t+1) Y1Y0
A A
0 1 0 1
S0:00 S1:01 S0:00 00 00 S1:01 S2:10 S1:01 01 01 S2:10 S3:11 S2:10 10 10 S3:11 S0:00 S3:11 11 11
Q1(t+1)のカルノー図:
Q1(t+1) A
Q1(t)Q0(t) 0 1 00 0 0 01 1 0 11 0 1 10 1 1
Q0(t+1)のカルノー図:
Q0(t+1) A
Q1(t)Q0(t) 0 1 00 1 0 01 0 1 11 0 1 10 1 0
結局、回路は以下のようになる。
・例題2
クロック入力CKに同期して、出力Y=[Y1Y0]を[01]
→[01]→[10]→[11]…とカウントアップする回路を設 計せよ。
状態遷移図: