View
0
Download
0
Category
Preview:
Citation preview
6. フリップフロップFlip-flop
2019年度前期ディジタル電子回路講義資料
6.1 ラッチLatch
• 双安定/bistable:安定な二つの状態
Q’ Q
0 1 01 0 1 いずれも安定(双安定)
不安定な平衡点:
位置がわずかに左右にずれると,さらに大きく左右にずれる:正のフィードバック
安定な平衡点:
わずかにずれても元に戻ろうとする:負のフィードバック
安定な二つの状態:二値の記憶(メモリ)電子回路では正負に振り切れた(飽和)状態で維持
ラッチ(かんぬき)
ラッチ(ラチェット,爪車)
• ラッチ:双安定な二つの状態を外部入力でコントロール• NORゲートSRラッチ
Ø特性方程式/Characteristic equation𝑅 " 𝑆 = 0 (S=1 かつ R=1にはならない)
𝑄'() = 𝑆 + 𝑅′𝑄'
R
S
Q
Q’
Q
S R Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 禁止
前の状態を保持
reset
set
(S=1 かつ R=1にはならない)
𝑄' /SR 00 01 11 10
01
0 0 - 11 0 - 1
𝑄'R’
S
SまたはRを1にすると出力は即座に変化・・・ transparent(出力透過的)
𝑄'()のカルノーマップ
-:don’t care
• 動作波形/Time-chart of operation
S
R
Q
(S,R)=(0,0)の区間は前の状態を保持
reset set reset
• SRラッチの応用(NANDゲートSRラッチ)
Øスイッチを上に倒しても,接点はすぐには繋がらない• 接点は何度かバウンスした後につながる(チャタリング)
R’
S’Q
Q’
S’ R’ Qn+1
1 1 Qn
1 0 0
0 1 1
0 0 禁止
前の状態を保持
resetset
=VDD
S’
R’
Q
上側の接点でチャタリング
ここで接点を離れる
1,1の区間は前の状態を保持
• DラッチØ SRラッチに右表の論理回路を付加する
• つまり𝑆 = 𝐶𝐷𝑅 = 𝐶𝐷′
Ø NANDゲートで構成
C D S R0 00 11 01 1
0 00 00 11 0
NANDSRラッチ
コントロール信号が0の時、前の状態を保持
コントロール信号が1の時データ線(D)が出力を決める
C
D QS’
R’
コントロール付きDラッチ
CのタイミングでDが出力に現れるため、コントロール信号に同期するSRラッチとなる
𝑄'()𝑄'𝑄'01
D
Q
Time chart
C
Cが1の間は出力が変化(transparent)
• 禁止入力無しSRラッチ
C
R
Q
Q’
SM’
RM’
SC S R SM’ RM’1 0 01 0 11 1 01 1 10 - -
1 11 00 10 11 1
𝑄'()𝑄'011𝑄'
禁止入力(S=1, R=1)の時、R側入力にはSM’が戻されているためSM’=0, RM’=1となり、Qはセット
6.2 フリップフロップ
• 広くラッチも含めて内部状態を保持する論理回路をフリップフロップと呼ぶ.(厳密にはクロックに同期するものがフリップフロップ)
• 同期式順序回路Ø現在の内部状態(記憶素子に保持されている)と外部入力により出力と次の状態を決め,次の状態として保持する.
組み合わせ論理回路
入力
記憶素子
クロック
出力
現在次の状態
演算処理装置の基本的な形態
内部状態の定義:現在,次,次の次...という時点をどう決めるのか
⇒ある信号(クロック)に同期させる
• クロックに同期させる方法クロックの立ち上がり↑、または立ち下がり↓のタイミングで出力が変化
Øマスタースレーブ方式• ラッチを2段にする:クロックが1の間はマスターが、↓でスレーブの出力が変化
Øエッジトリガ方式• クロックのエッジ(立ち上がり↑,あるいは立ち下がり↓)時点の入力だけで内部状態をホールドする.
入力
C
クロック
マスタ スレーブ
C
• 種類Ø D-フリップフロップ
• Dラッチを使ったFF
Ø JK-フリップフロップ• SRラッチの禁止入力を許し,反転動作(トグルモード)としたもの.マスタスレーブJK-FFは回路構成が簡単でかつては良く使われた.
Ø T-フリップフロップ• JK-FFでJ=Kとしたもの
• 記号Ø D-FF
Qn+1 = JQn '+K 'Qn
入力
クロック
D Q
立ち上がりで動作(ポジティブエッジトリガ)
立ち下がりで動作(ネガティブエッジトリガ)
D クロック
01
↑↑
Q01
その他 前の状態を保持
ØマスタスレーブD-FF/Master-slave D-FF𝑄'() = 𝐷
クロック
D S’
R’
S’
R’
QM
QM’
Q
Q’
コントロール部 SRラッチ
Dラッチ
D Q
クロック
D
QM
Q
Time chart
出力はクロックの立ち下がり時だけで変化する
ØエッジトリガD-FF/Edge trigger D-FF
CLK
D
Q
Q’
S’
R’
クロック
D
Q
Time chart setup time hold time
前節の禁止入力無しSRラッチにSRラッチを付加
• 汎用デバイスØ 7473, 4013: dual JK-FF マスタスレーブ型/set付きØ 7474, 4027: dual D-FF エッジトリガ型/set-reset付きØ 7475, 4042: dual Dラッチ
D
クロック
セットアップタイムtsu
ホールドタイムth
例) 74ACT74: tsu=3.5ns, th=1ns, tpd=11.5ns組み合わせ回路のtpdを10nsとするとFFと合わせてT=3.5+1+11.5+10=26ns最大動作周波数はfmax=1/T=38MHz
D Q
CLK
CLR
RESET’
PR
SET’
D Q
7474
SET/PRESET: 強制的にQを1にするRESET/CLR: 強制的にQを0にする(いずれも負論理、つまり0にするとSET/RESETされる)
フリップフロップの応用
• レジスタ/registerØ入力データD0, D1, D2, D3,,, を記憶する
CLKRESET
D Q
CLR
D0 Q0
D Q
CLR
D1 Q1
D Q
CLR
D2 Q2
D Q
CLR
D3 Q3
• シフトレジスタ/shift registerØシリアルの入力データを記憶し、クロックごとにシフトする
CLKRESET
D Q
CLR
D0
Q0
D Q
CLR
Q1
D Q
CLR
Q2
D Q
CLR
Q3
D Q
CLR
Q4
• カウンタ/分周器 counter/frequency dividerØ IN入力(CLK入力)のパルスをカウントØ出力はクロック周波数の1/2, 1/4, 1/8,,, となる(分周)
IN/CLK
D Q
Q0
Q’
D Q
Q1
Q’
D Q
Q2
Q’
D Q
Q3
Q’
IN/CLK
Q0
Q1
Q2
Q3Q2Q1Q0 0000
クロック入力
1/2分周
1/4分周
1/8分周
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
Q3 1/16分周
Time chart
6.4 同期式順序回路Synchronous sequential logic circuit
• ディジタル回路の表現方法Ø真理値表
Ø論理式,論理方程式
Ø回路図
Øハードウェア記述言語(HDL: hardware description language)
Øタイミングチャート
Ø状態遷移図
• 状態遷移図/state transition diagramØ順序回路で時間とともに遷移する状態を表現したグラフ
Ø例) ミーリーグラフ/Mealy graph
状態(ノード,節点, node/vertex)
状態の移動(辺,アーク,枝, arch/edge)
SRラッチ
S0 S1
10/1
01/0
00/001/0
00/110/1
10(set=1, reset=0)/Q=1
Dフリップフロップ
S0 S1
1/1
0/0
0/0 1/1
• ディジタル回路による順序回路の実現Øフリップフロップの並び(レジスタ):
• 状態を保持Ø組み合わせ論理回路:
• 現状態から次の状態(FFへの次のデータ入力)を計算
Øクロック:• 同期式の場合,クロックのエッジによりFFを書き換え
Øフリップフロップの数• 状態( )の数によって何ビットのレジスタが必要か決まる.
• 例)– 状態の数=4 ・・・ 22つまり2ビットレジスタ(FFが2個)– 状態の数=6 ・・・ 22<6<23 3ビットあれば済む
設計例1 Dフリップフロップ
1) 状態遷移図2) 状態遷移表
3) カルノー図
現状態y
次の状態Y入力x=0, x=1
S0 : 0S1 : 1
S0: 0 S1: 1S0: 0 S1: 1
出力x=0, x=1
0 10 1
y/x 0 1
01
0 10 1
x 状態遷移方程式:「次の状態Y」を現状態yと入力xにより記述
S0に0, S1に1を状態として割り当てる(状態がユニークに決まれば何でも良い)
S0 S1
1/1
0/0
0/0 1/1
Yに関して
入力xと現在の状態yにより「次の状態Y」が決まる(状態が遷移する).
𝑌 = 𝑥
4) Dフリップフロップによる構成次式のD-FFの特性方程式を用いて,順序回路を構成する.
𝑄'() = 𝐷つまり,状態遷移図の「次の状態Y」 をD-FFの𝑄'()と考えれば良い
𝑌 = 𝑄'()以上より,D-FFの入力方程式は
𝐷 = 𝑌 = 𝑥
4) 回路図
D-FF:入力Dが次の状態𝑄'()
入力方程式:FFの入力を現状態yと入力xで記述.この入力によりクロックのエッジで次の状態が決まる.D-FFの場合は単純に状態遷移方程式でYをDとしたもの.
x
クロック
D Q Y
𝐷 = 𝑥 𝑌 = 𝑄'() = 𝑥
...Dフリップフロップそのものになる(当たり前)
設計例2 T-フリップフロップ
Ø状態遷移図
Ø以上より,D-FFを用いて構成すると𝐷 = 𝑌 = 𝑥1𝑦 + 𝑥𝑦1𝑦 = 𝑄'
S0 S1
1/1
1/0
0/0 0/1
y Yx=0, x=1
S0 : 0S1 : 1
0 11 0
y/x 0 1
01
0 11 0
x
CLK
D Qn
Y
状態遷移表
𝑌 = 𝑥1𝑦 + 𝑥𝑦′
状態遷移方程式
Øあるいは
Ø以上より
S0 S1
*/1
*/0
y Y
01
10
D =Y = y ' =Qn '
CLK
D Qn
Qn’
CLK
Qn
*: don’t care
𝑌 = 𝑦′
状態遷移表
状態遷移方程式
状態遷移図
前節のカウンタ/分周器の1ユニット
設計例3
“0011”というビットの並びを待つ1ビット入力回路Ø状態は4つ...2ビットで実現できる
• S0: 「0を待つ」という状態• S1: 「0の後で0を待つ」という状態• S2: 「00の後で1を待つ」• S3: 「001の後で1を待つ」
S0 S1
1/1
1/0
1/0 S2 S3
1/0
0/0
0/0
0/0
0/0y1y0
Y1Y0x=0, x=1
S0 : 00S1 : 01S2 : 11S3 : 10
S1 : 01 S0 : 00S2 : 11 S0 : 00S2 : 11 S3 : 10S1 : 01 S0 : 00
状態が決まれば何でも良い
このとき1を出力
状態遷移表状態遷移図
Øカルノー図
Ø以上より
ただし
y1y0/x 0 1
00011110
0 01 01 10 0
Y1 = y1y0 + x ' y0= y0 (y1 + x ')
Y1 y1y0/x 0 1
00011110
1 01 01 01 0
Y0 = x '
Y0
D1 =Y1 = y0 (y1 + x ')D0 =Y0 = x '
y1 =Q1,n,Y1 =Q1,n+1y0 =Q0,n,Y0 =Q0,n+1
CLK
D Q次の状態
Y=Qn+1
現状態y=Qn
CLK
D Q次の状態
Y=Qn+2
現状態y=Qn+1
CLK
状態遷移方程式 状態遷移方程式
�����!� ���
���
����
�����
���
�������
Ø回路図
D Q次の状態Y1
𝑄),' + 𝑥1
D Qx
1
0
𝑄),'
𝑄4,'(𝑄),' + 𝑥1)
𝑄4,'
次の状態Y0
出力回路は省略
設計例4 5進カウンタquinary (5-ary) counter
0,1,2,3,4,0,1,2,3,4,,, と順にカウントする同期式カウンタ(2進カウンタは既出の通りで簡単)
Ø状態は5つ...3ビットで実現できる• S5 -S7 (101-111)の場合はdon’t careで000に戻ることにする
y2y1y0 Y2Y1Y0
S0 : 000S1 : 001S2 : 010S3 : 011S4 : 100S5 : 101S6 : 110S7 : 111
S1 : 001S2 : 010S3 : 011S4 : 100S0 : 101S0 : 000S0 : 000S0 : 000
状態遷移表
現在のD-FFの状態:カウント値とするのが簡単
Ø状態遷移表よりカルノー図を書き、まとめると𝐷7 = 𝑌7 = 𝑦7′𝑦)𝑦4𝐷) = 𝑌) = 𝑦71 𝑦)’𝑦4 + 𝑦71 𝑦)𝑦4′𝐷4 = 𝑌4 = 𝑦7′𝑦4′
Ø以上より
CLK
D QD2
y2
D QD1
y1
D QD0
y0
状態遷移方程式
現在の状態 y2, y1, y0で決まるD2, D1, D0を各FFに入力し、クロックが入ると、出力𝑄𝑛は次の状態Y2, Y1, Y0に遷移する。
2 1 0
具体的な組み合わせ回路は省略
同期式順序回路の解析Analysis of sequential circuit
• 解析例
D QY1=Q1,n’ Q0,n’
D Q
1
0
Q’
Q’Y1=Q1,n Q0,n’
y1y0 Y1Y0
S0 : 00S1 : 01S2 : 10S3 : 11
10 (S2)00 (S0)01 (S1)00 (S0)
S0=00 S1=01 S2=10
ダウンカウンタ
S3=11
Recommended