論理回路 第9回 フリップフロップ http://www.info.kindai.ac.jp/LC 38号館4階N-411 内線5459 [email protected] 組み合わせ回路と順序回路 定義2.4 (組み合わせ回路) – ある時刻の出力信号が、現在の入力信号だ けで決まる回路 定義3.2 (順序回路) – ある時刻の出力信号が、現在の入力信号だ けでなく、過去の入力信号の影響も受ける 回路 (回路内にバッファ・メモリがある) 順序回路の例 7 8 9 4 5 6 1 2 3 戻る 0 次へ 暗証番号 9876 9→8→7→6 の順に 押すと手続き開始 6→7→8→9や 6789同時押しではダメ 状態 定義3.1 (状態) – 論理回路の入力の履歴 1入力 状態11 1入力 状態1 0入力 状態10 初期状態 1入力 状態01 0入力 状態0 0入力 状態00 順序回路の入出力 順序回路 = 組み合わせ回路 + メモリ – 入力 : 外部から+以前の出力から – 出力 : 外部へ+以降の入力へ 外 部 入 力 組み合わせ回路 メモリ 外 部 出 力 同期式順序回路 定義3.3 (同期式順序回路) – クロックに同期して回路が動作する 順序回路 組み合わせ回路 メモリ クロック信号 同期式順序回路の動作 入力 X 入力 Y 出力 X +Y クロック 遅延 出力はクロックに 同期して変化 クロック時以外の 入力変化は影響無し 順序回路の状態遷移 定義3.4 (状態遷移関数) – 順序回路の次の状態Q + 現在の入力I および現在の状態Q から決定 Q +=f (Q, I ) f :状態遷移関数 順序回路の出力 定義3.5 (順序回路の出力) – 順序回路の出力O 現在の入力I および現在の状態Q から決定 O =g (Q, I ) g :状態遷移関数 状態遷移と出力 組み合わせ回路 順序回路 出力 O h (I ) g (Q, I ) 次の状態 Q + 無し f (Q, I ) g,h : 出力関数 f : 状態遷移関数 有限オートマトン 定義3.6 (有限オートマトン) – 以下の5項で定義する計算機械 有限個の状態 有限個の入力 状態遷移 初期状態 最終状態 1 状態1 1 0 0 初期状態 0 初期状態のとき 0が入力されたら 状態0へ 状態0 1 最終状態 順序機械 定義3.7 (順序機械) – 以下の6項で定義する計算機械 有限個の状態 有限個の入力 状態遷移 初期状態 出力 出力関数 初期状態のとき 0が入力されたら 1を出力し状態0へ 1/0 状態1 1/1 初期状態 0/0 0/1 0/1 状態0 1/0 入力,出力 状態遷移表, 状態遷移図 入力/出力 入力 現状態 次状態/出力 入力I 現状態q 0 1 q0 q1 q1 / 1 q0 / 0 q0 / 0 q1 / 1 状態 状態 0/1 q0 1/0 状態 q0 のときに 0 が入力されたら 1 を出力し状態 q1 へ 0/0 q1 1/1 状態遷移表と真理値表 遷移表は真理値表でも表現できる 入力 入力I 現状態q 0 1 q0 q1 q1 / 1 q0 / 0 q0 / 0 q1 / 1 状態 q0 のときに 0 が入力されたら 1 を出力し状態 q1 へ I 0 0 1 1 q q0 q1 q0 q1 出力 q+ O q1 1 q0 0 q0 0 q1 1 ミーリマシンとムーアマシン ミーリマシン(Mealy machine) – 現状態Q と入力I で出力O が決まる O = g (Q, I ) 入力/出力 状態 状態 ムーアマシン(Moore machine) – 現状態Q のみで出力O が決まる O = g (Q ) 状態 出力 入力 状態 出力 例題 : 順序機械と状態遷移図 初期状態から、1を偶数回入力すると1を、 奇数回入力すると0を出力する順序機械 ミーリマシン 0/0 1/1 q0 q1 0/0 1/0 ムーアマシン 0 1 q0/0 q1/0 1 0 q2/1 1 0 状態遷移表 現状態 ミーリ マシン q0 q1 現状態 ムーア マシン q0 q1 q2 次状態 I=0 I=1 q0 q1 q1 q0 次状態 I=0 I=1 q0 q1 q1 q2 q0 q1 出力 I=0 0 0 I=1 0 1 出力 0 0 1 双安定回路 高電位=値1 値0で安定 値1で安定 双安定回路 高電位=値0 値1で安定 値0で安定 1ビットを記憶可能 1ビットのメモリ フリップフロップ 定義3.8 (フリップフロップ) – 1ビットのメモリ 状態1または状態0を保持 Q 入力 クロック フリップ フロップ Q 状態Q と Q の否定を出力 状態 状態0 状態1 Q Q 0 1 1 0 SRフリップフロップ Set-Reset フリップフロップ – Set信号S およびReset信号R を入力 Set信号で1にセット、Reset信号で0にリセット S 0 1 0 1 R 0 0 1 1 Q+ Q 1 0 - 現状維持 S 1にセット R 0にリセット 入力11は禁止 SRFF CK Q Q SRフリップフロップの動作 入力 S 入力 R 出力 Q 出力 Q クロック S =1ならば 1にセット R =1ならば 0にリセット S =1,R =1ならば 値は不定 Dフリップフロップ Delay / Data latch フリップフロップ – Data信号D を入力 Data信号に出力を合わせる D 0 1 Q+ 0 0にリセット 1 1にセット D DFF CK Q Q Dフリップフロップの動作 入力 D 出力 Q 出力 Q クロック D =1ならば 1にセット D =0ならば 0にリセット Tフリップフロップ Toggle / Trigger フリップフロップ – Toggle信号T を入力 Toggle信号で値を反転 T 0 1 Q+ Q 現状維持 Q 値を反転 T TFF CK Q Q Tフリップフロップの動作 入力 T 出力 Q 出力 Q クロック T =1ならば 値を反転 JKフリップフロップ JK フリップフロップ – Set信号J および Reset信号K を入力 Set信号で1にセット、Reset信号で0にリセット Set信号,Reset信号共に入った場合は値反転 J 0 1 0 1 K 0 0 1 1 Q+ Q 1 0 Q 現状維持 J 1にセット K 0にリセット 入力11は値反転 JKFF CK Q Q JKフリップフロップの動作 入力 J 入力 K 出力 Q 出力 Q クロック J =1ならば 1にセット K =1ならば 0にリセット J =1,K =1ならば 値反転 コラム: JKとは? 一説によれば Jack-King フリップフロップ Jack,Kingが動かなければ(J=0,K=0) Queenは現状維持 Jackに求愛されれば(J=1)QueenはJackの元へ Kingに求愛されれば(K=1)QueenはKingの元へ Jack,Kingから同時に求愛されれば(J=1,K=1) Queenは相手を替える プリセット,クリア付フリップフロップ プリセット,クリア付フリップフロップ – 通常の入力(SR,D,T,JK)に加え、 Preset信号Pr とClear信号Clr を入力 Preset信号でクロックに関係無く1にセット Clear信号でクロックに関係無く0にリセット プリセット クリア 直接値を Clr Pr Q S セットできない SRFF TFFには必須 R Q CK プリセット,クリア付 Tフリップフロップの動作 入力 T プリセット クリア 出力 Q 出力 Q クロック T信号を入れても 不定のまま クロックに関係無く 強制的に1にセット 強制的に 0にリセット セット優先SRフリップフロップ セット優先SRフリップフロップ – Set信号S および Reset信号R を入力 Set信号で1にセット、Reset信号で0にリセット Set信号,Reset信号共に入った場合は1にセット S 0 1 0 1 R 0 0 1 1 Q+ Q 1 0 1 現状維持 S セット優先 Q 1にセット SRFF R Q CK 0にリセット 入力11は1にセット 問題: フリップフロップの動作 セット優先SRFFの動作を記入せよ (遅延は無視してよい) 入力 S 入力 R 出力 Q 出力 Q クロック SRFFの特性展開表 S 0 1 0 1 R 0 0 1 1 Q+ Q 1 0 - 特性表 S R 0 0 0 1 1 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ Q+ 0 1 1 0 0 1 0 1 1 0 1 0 - 特性展開表 JKFFの特性展開表 J 0 1 0 1 K 0 0 1 1 Q+ Q 1 0 Q 特性表 J K 0 0 0 1 1 0 1 1 Q 0 1 0 1 0 1 0 1 Q+ Q+ 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 1 特性展開表 問題 : 特性展開表 D,T フリップフロップの 特性展開表を作れ D 0 1 Q 0 1 0 1 Q+ Q+ D 0 1 T 0 1 Q+ 0 1 Q 0 1 0 1 T 0 1 Q+ Q+ Q Q Q+ SRFFの論理関数 S 0 1 0 1 R 0 0 1 1 Q+ Q+ Q 1 0 - Q+ SR Q Q S R Q Q R S Q 00 01 11 10 0 0 0 - 1 1 1 0 - 1 SR Q 00 01 11 10 0 1 1 - 0 1 0 1 - 0 SRFFの論理回路 Q S R Q S R Q SRFF S Q+ R Q+ Q R S Q R S Q SRFF S Q+ SRFF S Q+ R Q+ Q+ R ループがある DFFの論理関数,論理回路 Q+ D 0 1 Q+ D Q 0 1 0 1 0 0 0 1 1 1 Q+ D Q 0 1 0 1 1 1 0 0 DFF Q D Q D D Q + ただしこの回路は FFに求められる Q + 値保持機能が無い TFFの論理関数,論理回路 T 0 1 Q+ Q Q Q+ T Q 0 1 0 0 1 1 1 0 Q+ T Q 0 1 0 1 0 TFF T Q T Q T Q T Q Q T Q T Q T Q Q+ Q+ 1 0 1 JKFFの論理関数 J 0 1 0 1 K 0 0 1 1 Q+ Q+ Q 1 0 Q Q+ JK Q Q J Q K Q Q K Q J Q 00 01 11 10 0 0 0 1 1 1 1 0 0 1 JK Q 00 01 11 10 0 1 1 0 0 1 0 1 1 0 JKFFの論理回路 Q J Q K Q J Q K Q Q K Q J Q K Q J Q JKFF JKFF J Q+ J Q+ K Q+ K Q+ 入力要求 定義3.9 (入力要求) – FFの状態をQからQ +へ遷移するためは んな入力をすればいいか? 例 : SRFFで、現状態がQ=0であるとき、 Q +=1にするためには S,R にどんな入力を 入れればいいか? S=1, R=0を入れればQ +=1になる ど SRFFの入力要求表 SR 00 01 10 11 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 - Q 0 0 1 1 Q+ 0 1 0 1 S R 0 - S,R =0,0 または 0,1のとき Q の遷移は 0→0 SRFFの入力要求表 SR 00 01 10 11 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 - Q 0 0 1 1 Q+ 0 1 0 1 S 0 1 0 - R 0 1 0 DFFの入力要求表 D 0 1 Q 0 1 0 1 Q+ 0 0 1 1 Q 0 0 1 1 Q+ 0 1 0 1 D 0 1 0 1 TFFの入力要求表 T 0 1 Q 0 1 0 1 Q+ 0 1 1 0 Q 0 0 1 1 Q+ 0 1 0 1 T 0 1 1 0 問題 : 入力要求表 JK 00 01 10 11 Q 0 1 0 1 0 1 0 1 Q+ 0 1 0 0 1 1 1 0 JKFFの入力要求表を 作成せよ Q 0 0 1 1 Q+ 0 1 0 1 J K SRFFによるDFFの設計 DFF D D→SR 変換回路 S Q Q Q Q SRFF R 回路全体がDFFとなるように D→SR変換回路を作成する DFFの拡大入力要求表 SRフリップフロップ 入力 出力 D→SR変換回路 入力 D 出力 Q 0 0 1 0 1 1 S 0 0 1 - 入力 R 1 0 0 Q+ 0 0 1 1 出力 Dフリップフロップ D→SR変換回路 D→SR変換回路 入力 D 0 1 S 出力 0 0 0 1 1 - D 0 1 1 0 0 Q Q S R 0 0 - 1 0 1 0 1 0 1 - 0 SD RD D 0 1 R Q 0 1 SRFFを用いたDFF SD RD DFF D S Q Q Q Q SRFF R 変換回路作成手順 使用する回路の入出力 1. 2. 3. 4. 目的の回路の 入出力表作成 使用する回路の 入力要求表作成 変換回路の論理 関数を求める 回路を実装 入力 出力 変換回路の入出力 入力 出力 Q Q+ 0 1 0 1 入力 目的の回路の入出力 出力 SRFFによるTFFの設計 TFF T T→SR 変換回路 S Q Q Q Q SRFF R 回路全体がTFFとなるように T→SR変換回路を作成する TFFの拡大入力要求表 SRフリップフロップ 入力 出力 T→SR変換回路 入力 T 出力 Q 0 0 1 0 1 1 S 0 1 0 入力 R 0 0 1 Q+ 0 1 1 0 出力 Tフリップフロップ T→SR変換回路 T→SR変換回路 入力 T 0 1 S 出力 0 0 - 1 1 0 T 0 0 1 0 1 Q Q S R 0 0 - 1 - 0 0 1 0 1 0 1 S T Q R T Q T 0 1 R Q 0 1 SRFFを用いたTFF S T Q R T Q TFF S T Q Q Q Q SRFF R 問題 : TFFによるDFFの設計 TFFを用いてDFFを設計せよ DFF D D→T 変換回路 T Q Q Q Q TFF 回路全体がDFFとなるように D→T変換回路を作成する クロック入力付SRFF クロック信号が1のときのみ動作 クロック付SRFF S S CK R Q Q Q Q SRFF R レジスタ/ラッチ 同期したフリップフロップの集まり – n ビットの一斉読み出し、書き込みが可能 D0 D1 D Q DFF CK D2 D Q DFF CK D3 D Q DFF CK D Q DFF CK クロック Q0 Q1 Q2 Q3 シフタ 同期したフリップフロップの集まり – クロック入力ごとに、値が隣のFFに移動する D Di Qi 1 (1 i ) D0 D D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 シフタの動作 入力 D 出力 Q0 出力 Q1 出力 Q2 クロック 遅延 Q1の値が1クロック 遅れでQ2に伝播 シフタ-レジスタ シフタとレジスタの組み合わせ I0 I1 I2 I3 マルチ プレクサ S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 シフタ-レジスタ シフタとレジスタの組み合わせ S=0 ⇒ レジスタ I0 I1 I2 I3 S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 シフタ-レジスタ シフタとレジスタの組み合わせ S=1 ⇒ シフタ I0 I1 I2 I3 S D0 Q0 DFF D1 Q1 DFF D2 Q2 DFF D3 Q3 DFF CK CK CK CK クロック Q0 Q1 Q2 Q3 非同期式カウンタ 同期していないフリップフロップの集まり – 入力が1になった数を計測する SW Q T TFF Q Q T TFF Q Q0 Q T TFF Q Q1 Q T TFF Q Q2 Q3 非同期式カウンタの動作 入力 SW 出力 Q0 出力 Q1 出力 Q2 出力 Q3 遅延 遅延*3 遅延*2 遅延*4 同期式カウンタ 同期したフリップフロップの集まり – 入力が1になった数を計測する SW T Q TFF CK T Q TFF CK T Q TFF CK T Q TFF CK クロック Q0 Q1 Q2 Q3 同期式カウンタの動作 スイッチを 押している間 カウンタ作動 入力 SW 出力 Q0 出力 Q1 出力 Q2 クロック 遅延 遅延 遅延 演習問題 : 状態遷移図 下の状態遷移表から状態遷移図を作成せよ 入力I 現状態q 0 1 q0 q1 q2 q3 q1 / 0 q1 / 0 q2 / 0 q0 / 0 q2 / 1 q3 / 0 q3 / 0 q1 / 1 0/0 q1 0/0 1/0 0/0 1/1 q0 1/1 q2 0/0 1/0 q3 演習問題: フリップフロップの動作 SRFFの動作を記入せよ (遅延は無視してよい) 入力 S 入力 R 出力 Q 出力 Q クロック 演習問題: SRFFによるJKFFの設計 JKFF J K JK→SR 変換回路 S Q Q Q Q SRFF R 回路全体がJKFFとなるように T→SR変換回路を作成する JKFFの拡大入力要求表 SRフリップフロップ 入力 出力 JK→SR変換回路 入力 J 0 0 1 1 K 0 1 0 1 出力 Q S R Q+ 0 0 - 0 1 - 0 1 0 0 - 0 1 0 1 0 0 1 0 1 1 - 0 1 0 1 0 1 1 0 1 0 入力 出力 JKフリップフロップ JK→SR変換回路 S JK→SR変換回路 入力 JK 00 01 10 11 JK Q 出力 00 01 11 10 Q S R 0 0 0 1 1 0 0 - 1 - 0 0 - 1 - 0 00 01 11 10 0 - - 0 0 1 0 1 1 0 0 0 - 1 0 1 0 1 0 1 - 0 0 1 0 1 0 1 R JK Q S J Q R K Q SRFFを用いたJKFF S J Q R K Q J JKFF S Q Q Q Q SRFF K R
© Copyright 2024 ExpyDoc