Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "8. 順序回路の簡単化,機能的な順序回路 五島 正裕."— Presentation transcript:

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

2 前回の復習

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

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

5 (state transition table)
順序回路の例 time x 1 z 0 / 0 1 / 0 S(t) S(t +1), z(t) x = 0 x = 1 A A, 0 B, 0 B A, 1 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 順序回路の例 S(t) S(t+1), z x = 0 x = 1 A A, 0 B, 0 B A, 1 Q D x = 0 x = 1 1
1 Q z x = 0 x = 1 1 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 順序回路の例 その2 D Q x Q D z clock time x Q z

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

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

13 順序回路の簡単化

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

15 不要な状態の削除 a D Q x ad aq Q D z bd bq clk b A 00 0 / 1 B 01 0 / 0 1 / 0
初期状態 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 不要な状態の削除 S(t) S(t+1), z(t) x = 0 x = 1 A:00 A:00, 0 C:10, 0 B:01
x : don’t care aqbq ad x = 0 x = 1 00 1 01 11 x 10 aqbq bd x = 0 x = 1 00 01 11 x 10 1 aqbq z x = 0 x = 1 00 01 1 11 x 10 ad = aq’x + aqx’ bd = aqx z = bq

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

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

19 重複した状態の削除 次状態と出力が同じ状態は,同じ状態 S(t+1), z(t) S(t) : a b x = 0 x = 1 A : 00
C : 10, 0 B : 01 B : 01, 0 D : 11, 0 C : 10 D : 11 A : 00, 1 C : 10, 1 S(t+1), z(t) S(t) : a b x = 0 x = 1 A : 00 A : 00, 0 B : 10, 0 B : 01 B : 01, 0 D : 11, 0 D : 11 A : 00, 1 B : 10, 1 b a Q D Q D x z clock

20 重複した状態の削除 次状態と出力が同じ状態は,同じ状態 S(t+1), z(t) S(t) : a b x = 0 x = 1 A : 00
C : 10, 0 B : 01 B : 01, 0 D : 11, 0 C : 10 D : 11 A : 00, 1 C : 10, 1 S(t+1), z(t) S(t) : a b x = 0 x = 1 A : 00 A : 00, 0 B : 10, 0 B : 01 B : 01, 0 D : 11, 0 D : 11 A : 00, 1 B : 10, 1 A 00 B 01 A 00 1 / 0 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 レジスタ n-bit レジスタ ≒ n 個の D-FF Q D D[0] Q[0] Q D D[1] Q[1] Q D D[n−1]
Q[n−1] clk

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

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

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

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

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

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

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

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

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

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

40 リング・カウンタ リング・カウンタ シフト・レジスタの FF のうち, 1つ: プリセット 残り:リセット P D Q D Q D Q D
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)


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

Similar presentations


Ads by Google