ディジタル回路 4. 順序回路 五島 正裕 DATE : ディジタル回路 組み合わせ回路 と 順序回路 組み合わせ回路 (combinational circuit) 無記憶 現在の入力 ⇒ 出力 ex) 0101…0…0 ⇒ 0 0101…1…0 ⇒ 0 順序回路 (sequential circuit) 記憶 入力の履歴 ⇒ 出力 ex) 0101…0…0 ⇒ 0 0101…1…0 ⇒ 1 2 ディジタル回路 順序回路の例 Q 自動販売機 使える硬貨は100円のみ 200円の商品1種のみ ● 100円が 2個投入されると,商品を送り出す その順序機械: 入力 x:100円が投入されると,1サイクルの間だけ 1 出力 z:1 のとき,商品が送り出される 3 ディジタル回路 順序回路の例 x 0 1 0 1 0 0 0 1 1 0 z 0 0 0 1 0 0 0 0 1 0 time clock x z 4 ディジタル回路 状態 状態 S: ω : 100円を受け取っていない Д : 100円を1個受け取っている time x 0 1 0 1 0 0 0 1 1 0 S ω ω Д Д ω ω ω ω Д ω z 0 0 0 1 0 0 0 0 1 0 5 ディジタル回路 状態機械 (State Machine) の表現 time 0/0 x 0 1 0 1 0 0 0 1 1 0 S ω ω Д Д ω ω ω ω Д ω z 0 0 0 1 0 0 0 0 1 0 1/0 S(t +1), z S(t) ω Д 1/1 0/0 x=0 x=1 ω ω, 0 Д, 0 Д Д, 0 ω, 1 x/z 状態遷移図 (state diagram) 状態遷移表 (state transition table) 6 ディジタル回路 状態機械の構成 入力 組み合わせ 回路 現状態 出力 次状態 記憶素子 7 ディジタル回路 記憶素子の例 D-FF(フリップ・フロップ) データ入力 : d データ出力 : q クロック入力 : c (clk) 働き: 「クロック・エッジの時の d の値が,次のサイクルの間 q から出力される」 Y d q y clk 8 ディジタル回路 D-FF の動作 d 0 1 0 1 0 0 0 1 1 0 q 0 0 1 0 1 0 0 0 1 1 time clock d q 9 ディジタル回路 状態割り当て Y 状態 ω と Д を(たとえば)D-FF 1個で表現 d q y clk 状態割り当て: D-FF の出力 y: ω:y=0 Д:y=1 D-FF の入力 Y: 次状態を ω : y = 0 にしたいなら ,このサイクルに ω : Y = 0 に 次状態を Д : y = 1 にしたいなら, このサイクルに Д : Y = 1 に 10 ディジタル回路 例題の順序回路 y Y d x q z clock time y 0 0 1 1 0 0 0 0 1 0 x 0 1 0 1 0 0 0 1 1 0 Y 0 1 1 0 0 0 0 1 0 0 z 0 0 0 1 0 0 0 0 1 0 11 ディジタル回路 次状態関数 と 出力関数 S(t+1), z S(t) x=0 x=1 ω ω, 0 Д, 0 Д Д, 0 ω, 1 状態遷移表 ω : y/Y = 0 Д : y/Y = 1 Y z y y x=0 x=1 0 0 1 1 1 0 次状態関数 (next state function) の真理値表 x=0 x=1 0 0 0 1 0 1 出力関数 (output function) の真理値表 12 ディジタル回路 順序回路の構成 y Y d x q z clock time q 0 0 1 1 0 0 0 0 1 0 x 0 1 0 1 0 0 0 1 1 0 d 0 1 1 0 0 0 0 1 0 0 z 0 0 0 1 0 0 0 0 1 0 13 ディジタル回路 状態割り当て 18 ディジタル回路 状態割り当て と 状態機械の構造 入力 S(t + 1), z S(t) x=0 x=1 S0 S0, 0 S1, 0 S1 S3, 0 S0, 0 S2 S0, 0 S3, 1 S3 S3, 0 S2, 1 出力 x 出力関数 z 次状態関数 現状態 次状態 y1 y2 q d q d Y1 Y2 clk 19 ディジタル回路 状態割り当て と 状態機械の構造 入力 S(t + 1): Y1Y2, z S(t): y1y2 x=0 x=1 S0: 00 S0: 00, 0 S1: 01, 0 S1: 01 S3: 10, 0 S0: 00, 0 S2: 11 S0: 00, 0 S3: 10, 1 S3: 10 S3: 10, 0 S2: 11, 1 出力 x 出力関数 z 次状態関数 現状態 次状態 y1 y2 q d q d Y1 Y2 clk 20 ディジタル回路 状態割り当て と 状態機械の構造 S(t + 1): Y1Y2, z S(t): y1y2 x=0 x=1 S0: 00 S0: 00, 0 S1: 01, 0 S1: 01 S3: 10, 0 S0: 00, 0 S2: 11 S0: 00, 0 S3: 10, 1 S3: 10 S3: 10, 0 S2: 11, 1 Y1 = x' y'1 y2 + x y1 + y1 y'2 Y2 = x y'2 z = x y1 Y1 Y2 z y1y2 x=0 x=1 y1y2 x=0 x=1 y1y2 x=0 x=1 00 0 0 00 0 1 00 0 0 01 1 0 01 0 0 01 0 0 11 0 1 11 0 0 11 0 1 10 1 1 10 0 1 10 0 1 21 ディジタル回路 状態割り当て と 状態機械の構造 S(t + 1): Y1Y2, z S(t): y1y2 S(t + 1): Y1Y2, z x=0 x=1 S(t): y1y2 x=0 x=1 S0: 00 S0: 00, 0 S1: 01, 0 S0:00 S0: 00, 0 S1: 11, 0 S1: 01 S3: 10, 0 S0: 00, 0 S2:01 S0: 00, 0 S3: 10, 1 S2: 11 S0: 00, 0 S3: 10, 1 S1:11 S3: 10, 0 S0: 00, 0 S3: 10 S3: 10, 0 S2: 11, 1 S3:10 S3: 10, 0 S2: 01, 1 22 ディジタル回路 状態割り当て と 状態機械の構造 S(t + 1): Y1Y2, z S(t): y1y2 Y 1 = x ^ y1 Y2 = x y'2 z = x (y1 ^ y2) Y1 x=0 x=1 S0:00 S0: 00, 0 S1: 11, 0 S2:01 S0: 00, 0 S3: 10, 1 S1:11 S3: 10, 0 S0: 00, 0 S3:10 S3: 10, 0 S2: 01, 1 Y2 z y1y2 x=0 x=1 y1y2 x=0 x=1 y1y2 x=0 x=1 00 0 1 00 0 1 00 0 0 01 0 1 01 0 0 01 0 1 11 1 0 11 0 0 11 0 0 10 1 0 10 0 1 10 0 1 23 ディジタル回路 状態割り当て と 状態機械の構造 S(t + 1): Y1Y2, z S(t): y1y2 S(t + 1): Y1Y2, z S(t): y1y2 x=0 x=1 S0: 00 S0: 00, 0 S1: 01, 0 S0: 00 S0: 00, 0 S1: 11, 0 S1: 01 S3: 10, 0 S0: 00, 0 S2: 01 S0: 00, 0 S3: 10, 1 S2: 11 S0: 00, 0 S3: 10, 1 S1: 11 S3: 10, 0 S0: 00, 0 S3: 10 S3: 10, 0 S2: 11, 1 S3: 10 S3: 10, 0 S2: 01, 1 Y1 = x' y'1 y2 + x y1 + y1 y'2 Y2 = x y'2 z = x y1 x=0 x=1 Y 1 = x ^ y1 Y2 = x y'2 z = x (y1 ^ y2) x z y2 y1 y1 x z y2 24 ディジタル回路 状態割り当ての「最適化」 n 個の状態を k 個の FF で表すとき,異なる割り当て (2k − 1)! / (2k − n)! k! 通り n = 3, k = 2 ⇒ 3 通り n = 5, k = 3 ⇒ 140 通り n = 10, k = 4 ⇒ 27億+ 通り 効率のよいアルゴリズムは知られていない! 仕様どおり,素直に設計したほうがよい? 25 ディジタル回路 状態機械の最小化 26 ディジタル回路 冗長な状態機械の例 S0 1/0 0/0 0/0 S1 1/0 0/0 S2 0/0 S3 1/1 S3 1/1 1/1 0/0 1/0 S0 S1 0/0 0/0 S2 1/0 1/1 0/0 27 ディジタル回路 状態の等価性 状態 Si と Sj に同じ入力系列を与えて,異なる出力系列が得られる ⇒ この入力系列を, Si と Sj の識別系列 (distinguishing sequence) という Si と Sj に識別系列が… 存在する ⇒ Si と Sj は識別可能 (distinguishable) という 存在しない ⇒ Si と Sj は等価 (equivalent) という 等価: 「あらゆる長さのあらゆる系列を与えても,出力が異ならない」 28 ディジタル回路 状態の等価性 Si と Sj に,長さ k の識別系列が… 存在する ⇒ Si と Sj は k 識別可能 (k-distinguishable) という 存在しない ⇒ Si と Sj は k 等価 (k-equivalent) という 29 ディジタル回路 1 識別可能 と 1 等価 の 例 0/0 ? Si 0/0 ? 1/0 ? 0/0 ? 1/1 ? Sj 1/0 ? 1 等価 0/0 ? Si Sj 1/0 ? 1 識別可能 識別系列: 「1」 30 ディジタル回路 2 識別可能 の 例 0/0 0/0 ? ? 1/0 0/0 ? Si 0/0 ? 1/1 ? 0/1 ? 1/0 ? ? Sj 0/0 1/0 ? ? 1/0 1/0 ? ? 1 等価 で 2 識別可能 識別系列: 「01」 と「10」 31 ディジタル回路 冗長な状態機械の例 S0 1/0 0/0 0/0 S1 1/0 0/0 S2 0/0 S3 1/1 1/1 32 ディジタル回路 1 識別可能 → 2 識別可能 S0 0/? 3 等価 0/? S1 S2 1/? 1/? 1/? 0/? S0 0/? 2 等価 ? 0/? S1 S2 1/? 1/? 1/? 0/? S3 3 識別可能 1/? 0/? 0/? S3 2 識別可能 1/? S0 0/0 ? 1/0 ? 0/0 ? 1/0 ? 0/0 ? 1/1 ? 0/0 ? 1/1 ? 1 等価 S1 S2 1 等価 S3 1 識別可能 33 ディジタル回路 k 等価性による状態分割 現状態 次状態, 出力 x=0 x=1 S0 S1, 0 S2, 0 S1 S0, 0 S2, 0 S2 S3, 0 S1, 1 S3 S2, 0 S3, 1 状態遷移表 π1 B01 B11 状 態 次ブロック x=0 x=1 S0 B01 B11 S1 B01 B11 S2 B11 S3 B11 π2 状 態 次ブロック x=0 x=1 S0 B02 B12 S1 B02 B12 B01 B12 S2 B22 B02 B11 B22 S3 B22 B22 1 等価 → 2等価 B02 2 等価 → 3等価 34 ディジタル回路 冗長な状態機械の例 S0 1/0 0/0 0/0 S1 1/0 0/0 S2 0/0 S3 1/1 S3 1/1 1/1 0/0 1/0 S0 S1 0/0 0/0 S2 1/0 1/1 0/0 35 ディジタル回路 今日のまとめ 36 ディジタル回路 今日のまとめ 順序回路の表現 状態遷移図 状態遷移表 順序回路の設計 1. 状態機械 :状態遷移表 2. 状態割り当て 3. 次状態関数,出力関数 4. 組み合わせ回路の簡単化(カルノー図,etc) 5. (回路図の作画) 37 ディジタル回路 今日のまとめ 状態機械の最小化 k 等価性による状態分割 状態割り当て 順序回路の大きさ 状態割り当てに依存 状態割り当ての「最適化」は難しい 38
© Copyright 2024 ExpyDoc