1 / 43

8. 順序回路の簡単化,機能的な順序回路

8. 順序回路の簡単化,機能的な順序回路. 五島 正裕. 前回の復習. 順序回路の例. Q 自動販売機 使える硬貨は 100 円のみ 200 円の商品 1 種のみ 100 円が 2 個投入されると,商品を送り出す その順序機械: 入力 x : 100 円が投入されると, 1 サイクルの間だけ 1 出力 z : 1 のとき,商品が送り出される. 順序回路の例. time. clock. x. z. 順序回路の例. time. 0 / 0. 1 / 0. A. B. 1 / 1. 0 / 0. x / z. 状態遷移図

saleema
Download Presentation

8. 順序回路の簡単化,機能的な順序回路

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 8. 順序回路の簡単化,機能的な順序回路 五島 正裕

  2. 前回の復習

  3. 順序回路の例 • Q • 自動販売機 • 使える硬貨は100円のみ • 200円の商品1種のみ • 100円が 2個投入されると,商品を送り出す • その順序機械: • 入力 x:100円が投入されると,1サイクルの間だけ 1 • 出力 z:1 のとき,商品が送り出される

  4. 順序回路の例 time clock x z

  5. 順序回路の例 time 0 / 0 1 / 0 A B 1 / 1 0 / 0 x / z 状態遷移図 (state diagram) 状態遷移表 (state transition table)

  6. 順序回路の例 D Q clock • 状態 • Aと B • (たとえば)D-FF 1個で • 状態割り当て • A : Q = 0 • B : Q = 1

  7. 順序回路の例 A : Q = 0 B : Q = 1 状態遷移表 次状態関数 (next state function) の真理値表 出力関数 (output function) の真理値表 D = Q’x + Qx’ z = Qx

  8. 順序回路の例 D Q x z clock time x Q z

  9. 順序回路の例 その2 • Q • 自動販売機 • 使える硬貨は100円のみ • 200円の商品1種のみ • 100円が 2個投入されると,次のサイクルに 商品を送り出す • その順序機械: • 入力 x:100円が投入されると,1サイクルの間だけ 1 • 出力 z:1 のとき,商品が送り出される

  10. D Q 順序回路の例 その2 D Q x z clock time x Q z

  11. D Q Mealy 機械 と Moore 機械 D Q D Q x x z z clk clk Mealy 機械 Moore 機械

  12. D D Q Q Mealy 機械 と Moore 機械 出力関数 出力関数 出力 出力 入力 次状態関数 入力 次状態関数 現状態 次状態 現状態 次状態 clk clk Mealy 機械 Moore 機械

  13. 順序回路の簡単化

  14. 順序回路の簡単化 • 状態の削除 • 不要な状態の削除 • 重複した状態の削除 • 状態割り当ての「最適」化

  15. Q D 不要な状態の削除 a D Q x ad aq z bd bq 初期状態 clk b A 00 0 / 1 B 01 0 / 0 1 / 0 1 / 0 1 / 1 1 / 1 C 10 D 11 0 / 0 0 / 1

  16. 不要な状態の削除 x : don’t care ad = aq’x + aqx’ bd = aqx z = bq

  17. Q D 不要な状態の削除 a D Q x ad aq z bd bq clock b ad = aq’x + aqx’ bd = aqx z = bq

  18. D Q Q Q D D 重複した状態の削除 D Q x z clock b a x z clock

  19. D Q Q D 重複した状態の削除 次状態と出力が同じ状態は,同じ状態 b a x z clock

  20. 重複した状態の削除 次状態と出力が同じ状態は,同じ状態 1 / 0 A 00 B 01 A 00 B 01 0 / 0 0 / 0 0 / 0 0 / 0 1 / 1 1 / 0 1 / 0 1 / 0 0 / 0 0 / 1 0 / 1 1 / 0 C 10 D 11 D 11 1 / 1

  21. 状態割り当ての「最適」化 • 状態割り当て • A:00, B:01, C:10, D:11 • A:00, B:01, C:11, D:10 • ... • n 個の状態を k 個のFFで表すとき,異なる割り当て • (2k− 1)! / (2k− n)! k! 通り • n = 3, k = 2 ⇒ 3 通り • n = 5, k = 3 ⇒ 140 通り • n = 10, k = 4 ⇒ 27億+ 通り • 効率のよいアルゴリズムは知られていない! • 仕様どおり,素直に設計したほうがよい(?)

  22. 機能的な順序回路

  23. 機能的な組み合わせ回路 • これまでの内容 • すべての組み合わせ回路 : 論理関数(完全集合) • 論理回路の簡単化 ⇒ 最小の積和形(和積型)回路 • しかし,実際は… • 大規模で複雑な回路に対しては困難: • その論理関数を求める • それを簡単化する

  24. 機能的な組み合わせ回路 • 階層化設計 (hierarchical design) • ex) ソフトウェアのサブルーチン • 機能的な組み合わせ回路 • 比較的単純 • 頻繁に使われる

  25. 機能的な組み合わせ回路の例 • 非演算回路 • セレクタ • デコーダ • エンコーダ • 演算回路 • ALU • シフタ • 浮動小数点演算器

  26. 機能的な順序回路 • これまでの内容 • すべての順序回路 : 状態遷移 • 順序回路の簡単化 ⇒ 状態遷移の簡単化 • しかし,実際は… • 大規模で複雑な回路に対しては困難: • その状態,遷移を求める • それを簡単化する

  27. 機能的な組み合わせ回路 • 階層化設計 (hierarchical design) • ex) ソフトウェアのサブルーチン • 機能的な順序回路 • 比較的単純 • 頻繁に使われる

  28. 機能的な順序回路の例 • 機能的な順序回路の例: • レジスタ • カウンタ • シフト・レジスタ

  29. D D D Q Q Q レジスタ • n-bit レジスタ ≒ • n 個の D-FF Q[0] D[0] Q[1] D[1] Q[n−1] D[n−1] clk

  30. D D D Q Q Q レジスタ(ライト・イネーブル付き) • n-bit レジスタ ≒ • n 個の D-FF • Write-Enable:we • 0: 保持 • 1: 書き込み Q[0] D[0] Q[1] D[1] Q[n−1] D[n−1] we clk

  31. D D D Q Q Q レジスタ(ライト・イネーブル付き) • n-bit レジスタ ≒ • n 個の D-FF • Write-Enable:we • 0: 保持 • 1: 書き込み • クロック・ゲーティング Q[0] D[0] Q[1] D[1] Q[n−1] D[n−1] we clk

  32. D Q クロック・ゲーティング we clk c time 下げるのが遅いと... clk we c 失敗!

  33. リセット • フリップ・フロップ • 初期状態(電源投入直後の状態):不定(unknown) 1 0 0 1

  34. 非同期リセット付き D-FF • 非同期リセット(asynchronous reset) • クロックと関係なく(非同期に),出力を 0 に data Q D sync_reset’ clock R R async_reset’ D Q R

  35. D D D Q Q Q (バイナリ)カウンタ Cin • 二進数を保存 • 入出力: • キャリー入力:Cin • 1 : インクリメント Q[0] C0 Q[1] 桁上げ(carry) C1 0 1 1 1 Q[2] +) 1 0 1 1 1 1 0 0 C2 clk

  36. (バイナリ)カウンタ • カウンタ: • アップ・カウンタ • ダウン・カウンタ • アップ/ダウン・カウンタ

  37. D D D Q Q Q シフト・レジスタ • n-bit レジスタ • 入出力: • Serial-In : SI • Parallel-Out : PO[n−1...0] PO[0] SI PO[1] PO[n−1] clk

  38. D D D Q Q Q シフト・レジスタ(並列ロード付き) • n-bit レジスタ • 入出力: • Serial-In : SI • Parallel-Out : PO[n−1...0] • Parallel-In : PI[n−1...0] • Load:l • 0: シフト • 1: ロード SI PO[0] PI[0] PO[1] PI[1] PO[n−1] PI[n−1] l clk

  39. シフト・レジスタ • 並列―直列,直列―並列変換 (parallel-serial, serial-parallel conversion) SI SI PI PO PI PO SO SO clk clk clock recovery

  40. リング・カウンタ • リング・カウンタ • シフト・レジスタの FF のうち, • 1つ: プリセット • 残り:リセット P D Q D Q D Q D Q R R R clk reset’

  41. 今日のまとめ

  42. 今日のまとめ • 順序回路の簡単化 • 機能的な順序回路 • レジスタ • カウンタ • シフト・レジスタ

  43. 今後の予定 • 12/22 • 演算回路 • 1/12 • 3/ 2 • 試験 (9:00~10:30)

More Related