第13回 順序回路の設計方法 仕様が与えられたら、それを満たす順序回路を設計できるように する 本講義のホームページを活用して下さい http://www.ee.tcu.ac.jp/lectures/digital/index.html ユーザ名: tcu パスワード: seto 1 重要連絡 期末試験 電卓は使用不可,テンプレートを忘れないように 2 順序回路の設計手順 (本講義で説明) 仕様 (スペック) 設計者 が検討 (重要) 設計する回路の 機能説明書 (仕様の機能を実現する) 1. 回路の入出力を決定 2. 状態遷移図を描く 3. 状態に0,1の列を割当てる 機械的 な作業 4. 状態遷移表を書く 組合せ回路の設計 5. 状態遷移関数、出力関数 を導き、カルノー図で簡単化 回路図 前回 の講義 3 順序回路の仕様(例) (注意深く読む!) 入出力一覧 信号名 clk rst x f 入出力 論理 ビット幅 入力 - 1 入力 正論理 1 入力 正論理 1 出力 正論理 1 機能・備考 クロック信号 (立上りで動作) リセット信号(初期状態に戻す) クロックに同期した入力 回路の動作説明 入力xが3回“1”となったとき (連続していなくてもよい)、 3回目に“1”となったクロック周期間だけ“1”を出力 “1”を出力した直後のクロック周期で、初期状態に戻る 4 ステップ1. 入出力の決定 この例では、与えられているので,それを使えばよい クロック入力 clk リセット入力 rst クロックに同期した1ビットの入力信号 x 1ビットの出力 f x rst 設計対象の 順序回路 f clk 実際の設計では、入出力は、自分で考えて決定することも多い 5 補足: クロックに同期した信号とは? クロックの立上り直後以外で変化しない信号 (つまり,D-FFの出力) パタパタ変化しないので、扱いやすい クロックに同期しない信号を,非同期信号と呼ぶ クロック 非同期入力 x’ 同期入力 x 非同期入力 クロック x’ 同期化された入力 Q D x 順序回路 6 ステップ2. 状態遷移図を描く (1): 状態の検討 機能を実現するために,どんな 状態 (丸) が必要か考える 仕様 をよく読む 「入力xが3回“1”となったとき、 “1”を出力」 と書いてある 「連続しなくてもよい」,と書いてある x が何回“1”になったか,状態として覚えておく必要がある clk x 状態 0 回 0 回 1 回 1 回 2 回 “1”になった “1”になった“1”になった “1”になった “1”になった 7 ステップ2. 状態遷移図を描く (2): 状態の検討 必要そうな 状態 が考えついたら、丸をかく 適当にコンパクトな記号を記入 ( S0, S1, S2 ) rst S0 0回 1になった S1 1回 1になった S2 2回 1になった また リセット状態 がどこかになる検討し、矢印を記入 (rst) リセットされたときに移る,最初の状態 状態遷移図の本質は、動作を 手続き 順番に整理することである。 に分けて、 8 ステップ2.状態遷移図を描く(3): 状態遷移(矢印)の検討 仕様をよく読み、各状態で、入力 x のすべてのパターン(0, 1)に 対してどんな 状態遷移が起こるか考える 仕様: 状態S0: x=0 のとき、S0 のまま 入力xが3回“1”となったとき、 x=1 のとき、S1 にジャンプ 3回目に“1”となったクロック 状態S1: x=0 のとき、S1 のまま 周期だけ“1”を出力する x=1 のとき、S2 にジャンプ 「“1”を出力した直後のクロッ 状態S2: x=0 のとき、S2 のまま ク周期で、初期状態に戻る」 x=1 のとき、S0 にジャンプ rst 0/ S0 0回 1になった 1/ 0/ S1 1回 1になった 1/ 1/ 0/ S2 2回 1になった 9 ステップ2. 状態遷移図を描く (4): 出力の検討 各状態にいるときに、入力 x のすべてのパターンに対して 出力 f がどうなるか考える 状態S0: x=0 のとき、f = 0 x=1 のとき、f = 0 仕様: 状態S1: x=0 のとき、f = 0 入力xが3回1となったとき、3回 目に1となったサイクルだけ1を x=1 のとき、f = 0 出力する 状態S2: x=0 のとき、f = 0 x=1 のとき、f = 1 rst 0/ 0 S0 0回 1になった 1/ 0 0/ 0 S1 1回 1になった 1/ 1 1/ 0 0/ 0 S2 2回 1になった 10 ステップ3. 状態に0, 1の列を割当てる ( 状態割り当て ) 状態は 3 個 (S0, S1, S2) 2 ビットあれば、よい (Q1, Q2 とする) Q1, Q2 を 状態 変数 とも呼ぶ 割り当てかた は、自由 ここでは、以下のように割当てる rst 0/0 S0 Q1Q2 00 1/0 0/0 S1 Q1Q2 01 1/0 0/0 S2 Q1Q2 10 1/1 11 ステップ4. 状態遷移図から、状態遷移表を書く 現状態、入力、出力、次状態の順 現状態 入 力 に,表を作成 Q1 Q2 x 現状態、入力の全パターンを昇順で 0 0 0 列挙 rst 0/0 S0 Q1Q2 00 1/0 0/0 S1 Q1Q2 01 1/0 0/0 S2 Q1Q2 10 1/1 ただし、Q1=1 かつ Q2=1 の状態 には行かないので、そのときの 出力、次状態はともに、 ドントケア 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 出 力 f 次状態 D1 D2 * * * * * 12* ステップ4. 状態遷移図から、状態遷移表を書く 現状態、入力の各パターンに対し、 状態遷移図を参考に、 出力、次状態を埋めていく rst 0/0 S0 Q1Q2 00 1/0 0/0 S1 Q1Q2 01 1/1 1/0 0/0 S2 Q1Q2 10 現状態 入 力 出 力 次状態 Q1 Q2 x f D1 D2 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 0 0 1 1 0 * * * 1 1 1 * * * ここを埋める 13 ステップ5. 状態遷移関数、出力関数を導き、カルノー図で簡単化(1) まず、 状態遷移表 から、 論理式 ドントケアの論理式 も導く 次状態 を導く 現状態 入 力 出 力 Q1 Q2 x f D1 D2 0 0 0 0 0 1 0 0 0 0 0 1 D1 Q1Q2 x Q1Q2 x 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 1 0 0 D2 Q1Q2 x Q1Q2 x 1 1 1 0 1 1 1 0 1 1 * * 0 * * 0 * * f Q1 Q2 x DC Q1Q2 x Q1Q2 x ドントケア (Don’t Care) 14 5. 状態遷移関数、出力関数を導き、カルノー図で簡単化(2) (復習) 出力関数 f の簡単化 f Q1 Q2 x DC Q1Q2 x Q1Q2 x ドントケア (don’t care) 囲みを大きく、囲みの数を少なく f Q1 x Q1Q2 x 00 01 11 10 0 * 1 * 1 11 10 Q 1Q 2 x 00 01 0 * 1 * 1 15 5. 状態遷移関数、出力関数を導き、カルノー図で簡単化(3) (復習) 状態遷移関数 D1の簡単化 Q1Q2 D1 Q1Q2 x Q1Q2 x DC Q1Q2 x Q1Q2 x ドントケア (don’t care) 囲みを大きく、囲みの数を少なく D1 Q2 x Q1 x x 00 01 0 1 Q1Q2 x 00 10 * 1 1 * 01 11 10 * 1 0 1 11 1 * 16 5. 状態遷移関数、出力関数を導き、カルノー図で簡単化(4) (復習) 状態遷移関数 D2の簡単化 Q1Q2 D2 Q1Q2 x Q1Q2 x DC Q1Q2 x Q1Q2 x ドントケア (don’t care) 囲みを大きく、囲みの数を少なく D2 Q1Q2 x Q2 x x 00 0 1 Q1Q2 x 11 1 * 1 00 0 1 01 1 10 * 01 11 1 * * 10 17 ステップ6. 回路図を描く 状態のビット数分 D-FFを用意 簡単化された、 状態遷移関数D1, D2 出力関数 f から、組合せ回路を描く f x f D2 D1 f Q1 x D1 Q2 x Q1 x Q1 D1 D2 Q1Q2 x Q2 x Q2 D2 ただし、クロックとリセットは省略 18 完成した順序回路 仕様書 x f 入出力は、以下の通り。 クロック入力clk クロックに同期した 1ビットの入力信号x 1ビットの出力f リセット入力 (rst) 以下の動作をする。 … 設計後、簡単な動作チェックをしよう rst Q1 D1 クロックとリセットも忘れずに描くこと 実は前回の小テストで、 状態遷移図を描いた回路 Q2 D2 clk 19 まとめ 仕様から、順序回路を設計する方法を学んだ 仕様→状態遷移図→状態遷移表→順序回路 状態遷移図を描けることが重要 最後は、組合せ回路の設計方法を活用 問題を解いて、方法を身に付けて下さい 20
© Copyright 2025 ExpyDoc