4回順序論理回路の設計signalysis.co.jp/hosei/hw/cshw04b.pdf ·...
TRANSCRIPT
第4回順序論理回路の設計
・状態遷移図
・カルノー図
・電子サイコロの設計製作
1.目的順序論理回路の設計法を習得する。順序論理回路は内部状態と入力の組み合わせで出力が決まる。これを記述するのに、状態遷移図を作成する。状態遷移図に基づき指定された動作を行う順序論理回路を設計する。
2.順序論理回路組み合わせ論理回路では
出力=f(入力)
で記述するように、入力の組み合わせで出力が決まっていた。順序論理回路では、
出力= f(内部状態、入力)
で記述されるように、入力の組み合わせだけでなく内部状態によっても出力が変化する。内部状態の記憶はFFによって行わ
れる。
より具体的には、入力の組み合わせに応じて記憶素子であるFFの状態を変化させるのに必要なFFの入力を決定する。さらに、
内部状態の変化に基づき必要な出力を組み上げる。
FFs
組み合わせ論理回路
組み合わせ論理回路
・・・
・・・
順序論理回路
順序回路:1つ以上の入力とすくなくとも1つの出力を持ち、
各出力の論理値が現在の状態と現在の入力の組合せによって決まる回路。
出力
状態
入力 0 1 0 0 1 0 1 1 0 1 0 1
S0 S0 S1 S1 S1 S2 S2 S3 S1 S1 S2 S2
0 0 0 0 0 0 1 0 0 0 0 1
...
...
S3
入力 出力
状態
入力 出力
組合せ回路 順序回路
組合せ回路
組合せ回路
時系列
1が3個入ると出力1を出す回路
現在の入力が決まると
(遅延はあるが)出力は一意に決まる入力の履歴(状態)と現在の入力で出力が決まる
出力
状態
入力 0 1 0 0 1 0 1 1 0 1 0 1
S0 S0 S1 S1 S1 S2 S2 S3 S1 S1 S2 S2
0 0 0 0 0 0 1 0 0 0 0 1
...
...
S3
状態遷移表(State Transition Table)
S3
S2
S1
S0
力入力入
力出状態次の現在の状態
S0 S1
S1 S2
S2 S3
S0 S1
0 1 0 1
0 00 0
0 10 0
力入
/出力次状態現在の状態
S0
S1
S2S3
S0/00 1
S1/0S1/0 S2/0
S2/0 S3/1S0/0 S1/0
右で示す順序回路は4状態あるので2ビットで表現できる。
2個の状態保存用メモリ
Q2 ,Q1を用いて状態を表すこと
ができる。(状態割当)
Q2 ,Q1
S0→“00”
S1→“01”
S2→“10”
S3→“11”
01/000/01 111/110/01 010/001/00 101/000/00 010Q2 Q1
力入
/出力次状態現在の状態
状態の割当
力入力入
力出状態次の現在の状態
例) 1が3回続くと出力1を出す回路
S0
S1
S2S3
S0 S1
S0 S2
S0 S3S0 S3
0 1 0 1
0 00 00 10 1
入力と現在の状態で出力が決まるもの⇒ミーリー型順序回路
現在の状態だけで出力が決まるもの ⇒ムーア型順序回路
←ミーリー型
記憶回路(遅延回路):情報を遅延させること。
入力
出力
記憶回路
(遅延回路)
状態決定回路
(組合せ回路)
ミーリー型
出力決定回路
(組合せ回路)出力
記憶回路
(遅延回路)
状態決定回路
(組合せ回路)
ムーア型
出力決定回路
(組合せ回路)
入力
現在の時刻から次の状態に対応する情報を遅らせて次の時刻における現在の状態に対応させること。過去の状態を全て記憶する必要は無く、現状態と次状態への状態変化を管理すれば順序回路が構成できる(有限状態遷移)。
2値なのでn個(ビット)あると2n通りの状態を記憶することができる。
状態数が多いほど複雑な動き
状態の記憶の方法:記憶回路の実現方法は各種存在
1.遅延回路:文字通り信号を遅らせて再び入力側に返す。
2.専用のメモリ素子(フリップフロップ)を用いる(これが一般的)
遅延線など
組合せ回路
フリップフロップ
組合せ回路
1)遅延素子+
組合せ回路
2)フリップフロップ+
組合せ回路
同期式順序回路/非同期式順序回路
現状態から次状態への遷移が時刻で定められず連続的に進むもの
⇒非同期式順序回路
状態変化は一定周期のクロックで一斉に起こるもの
⇒同期式順序回路
同期式の方が速度が遅くなる場合があるが、設計、解析が容易
(今後、特に断らない限り同期式順序回路に対象を限る)
S0
S3
S2 S1
X=1/O=1
X=0/O=1
X=1/O=1
X=0/O=0
X=1/O=0
X=1/O=1
X=0/O=0
X=0/O=0
ミーリー型マシンの状態遷移表現(例)
状態 状態入力/出力
ミーリマシンの状態遷移図
S0
S3
S1 S2
X=1
X=0
X=0
X=1
X=0
X=1 X=1
X=0
O=1
O=0
O=1
O=1
ムーア型マシンの状態遷移表現(例)
状態/出力
状態/出力
入力
ムーアマシンの状態遷移図
S0
S2
S3 S1
カウンタ:タイミング信号としてクロック以外に入力が無く、
クロックを予め定めた順序で計数(カウント)する順序回路
の特別なケース
Q2Q1=00
Q2Q1= 01
Q2Q1= 10
Q2Q1= 11
2進カウンタ:
n個のフリップフロップによって2n 個の状態を表現
可能。
状態の組を2進数と見な
して順に状態遷移する
順序回路
注意:状態割当は2進数
の順番に割り当てる必要は無い。割当方により回路が簡単になることも。
Q2Q1=01
Q2Q1=11
Q2Q1=10
Q2Q1=00
特殊なグレイコードカウンタ
+1Q+
2Q2Q 1Q 2K2J 1K1J 1D2D
2ビット2進カウンタの設計
入力要求表の作成:(JK FF及びD FFによる2つの場合)
0 0 0 10 1 1 01 0
1 1
1 1
0 0
0 -1 -- 0
- 1
1 -- 11 -
- 1
0 11 01 1
0 0
12
12
QKQJ
==
11
1
1
==
KJ
11
1212122
QD
QQQQQQD
=
⊕=⋅+⋅=
回路例1) JK FF による実現
回路例2) D FF による実現
例)3ビット2進カウンタの設計(JK FF使用)
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0010
1001
0111
1101
0
1
0
1
011
100
110
000
+1Q+
2Q2Q 1Q 2K2J 1K1J+3Q3Q 3K3J
0 -0 -
0 -
1 -
- 0
- 0
- 0- 1
0 -1 -
- 0
- 1
0 -
1 -
- 0- 1
1 -- 1
1 -
- 1
1 -
- 1
1 -- 1
123
123
QQKQQJ
==
12
12
QKQJ
==
11
1
1
==
KJ
3ビット2進カウンタのJK FF による実現
注)回路図中のS,R端子は直接セット、リセット入力
カウンタの強制リセット、強制セットとして使う
クロックと同期していない(いつでも優先される)
00
11
Q1+
111001
110000
Q2+Q1Q2
例)2ビットグレイコードカウンタの設計(JK FF 使用)
S0
S2
S3 S1
Q2Q1=00
Q2Q1= 01
Q2Q1= 11
Q2Q1= 10
2J 2K 1J 1K1 -
- 00 -
- 1
0 -
1 -- 1
- 0
12
12
QK
QJ
=
=
21
21
QKQJ
==
例)同期式4進カウンタをD FFで構成し4クロックごとに“0”を出せ
Q1n Q2n Q1n+1 Q2n+1 D1 D2 y’0 00 11 01 1
これより
0 11 01 10 0
0 1 11 0 11 1 10 0 0
nn
n
nnnn
QQy
QD
QQQQD
21
22
21211
=′
=
+=
注)DFFの場合はD入力は次状
態値と同じになる。
例:T-FFを使った
4進カウンタの設計
4進カウンタでは、4個の入力パルスに対して1個の出力パルスが得られる。このことから、内部状態は4個あることがわかる。これらの状態数のlog2をとると必要なFFの個数が求められる。この例では、 log24 = 2である。これに基づき、4つの状態をそれぞれのFFの出力Q1Q2を並べて、00 01 10 11とする。
このときの状態遷移は、1)内部状態が00でパルスが入力すると内部状態が01に変化し
出力はなし。2)内部状態が01でパルスが入力すると内部状態が10に変化し
出力はなし。3)内部状態が10でパルスが入力すると内部状態が11に変化し
出力はなし。4)内部状態が11でパルスが入力すると内部状態が00に変化し
1個のパルスを出力する。
入力
出力
00
10
0111
入力/出力
4進カウンタの状態遷移図
0/0
0/0
0/0
0/0
1/0
1/0 1/0
1/1 入力1で出力0
内部状態を表す。(各FFの出力)
4進カウンタ真理値表
x Q1n Q2n Q1n+1 Q2n+1 T1 T2 y0 0 01 0 00 0 11 0 10 1 01 1 00 1 11 1 1
nn
nnnnnnnn
nnnn
QxQyQxQQxQQQxQQxT
QxQQQxT
21
212121212
21211
=
+++=
+=
これより
0 00 10 11 01 01 11 10 0
0 0 00 1 00 0 01 1 00 0 00 1 00 0 01 1 1
注)T FFは状態を反転させたい時にTを1にする。
カルノー図を用いた簡単化
nnnn QxQQQxT 21211 +=
0 111 111 0
0 010\21 xQQ nn
nxQT 21 =
nnnnnnnn QxQQxQQQxQQxT 212121212 +++=
10 111 111 010 010\21 xQQ nn
xT =2
===
nn
n
QxQyxTxQT
21
2
21
まとめると
===
nn
n
QxQyxTxQT
21
2
21
2T2Q
2Q
1T1Q
1Qx
y
2T2Q
2Q
1T1Q
1Qx
y
図1
図2
を満たす回路の記述
プローブ
プローブ
対象信号線
GND
……
CLK
CLK2
Fetch
MEM-ADD Program Counter Operand Add
MEM-RD
LD-IR
LD-Acc
PC-Inc
ロジック・アナライザの働き
タイムスケール
トリガポイント
基本的には複数(16本殻32本)の信号線の論理値(1/0)を時間刻みで計
測し表示。任意の組合せのトリガ条件を設定できる。
トリガ条件の前後が見える。(信号の値を記憶するメモリを巡回式メモリとして使い、所定のトリガ条件を検出するとしばらく計測して止める)
⇒結果(異常イベント)から原因イベントを逆に辿ることができる。
循環メモリ式パターンメモリ
(2)ロジックアナライザ
(a)概要:多数のデジタル信号の時間関係を計測するための多チャンネルのオシロスコープ
(b)用途:デジタル回路の効率的なデバッグ、ファームウェア/ソフトウェアの設計/テストなどに有効
・周波数帯域幅
・チャンネル数 例:34, 68, 102, 136チャンネル等
(c)仕様:
例:200MHz・ADC分解能
・タイミング速度
・ステート速度 例:100MHz
例:8ビット
例:250MHz・メモリ容量 例:128K
プローブ
コンパレータ
スレッシュホールド
設定
ラッチ メモリ
アドレスカウンタ
トリガ制御
クロック制御外部クロック
内部クロック
読み出し表示
対象信号線
信号レベル(TTL,CMOS…)設定可能
ワンショット(繰返しはワンショットの繰返し)
複雑なトリガ条件を設定可能( 入れ子のIFルールなど)
多入力線(16~128)
内部クロックで正確な時間波形観測可能、
外部クロックに同期してCPUの命令実行状況計測など
細かい“ヒゲ”やグリッジなど計測可能
逆アッセンブル機能も
タイミング表示で波形として認識
ステート用事でプログラム実行のトレースなど
ロジックアナライザTLA700の簡単な使い方
・プローブ群の接続:8チャネルずつ1組でケーブルとプローブを当該の右側のソケットに接続。(当面1組だけで良い)
・本体左サイドにキーボードとマウスコネクタを接続
・正面右下部にある電源SWを押す。
・しばらく待つとWINDOWS2000が立上り、更に待つとテクトロの画面が
立ち上がる。
・本体はロジアナ部とパターン発生器が入っているので2つのソフト画面が出る。
・ロジアナを使うので当該ウインドウを開く(前面に出す)
・Setupメニューからプローブのチャンネル名、グループ名を設定。また、初期設定で
内部クロック(Clocking/ Internal ), スレッショルドレベル(1.5V)になっていることを確認
クロックレート(4ns, 5ns,…., 50ms), メモリ長(Memory Depth)を適当に。
・対象回路にプローブをつなぐ、真中の黒いスリーブがGND,後はカラーコード順で8本
・とりあえず“RUN”ボタンを押して見る。また、各プローブに信号が来ているかは“Activity”
タブで確認できる。
・トリガ条件を設定する。(もう1つのウインドウを開く)複雑なトリガ条件が設定できる。
・プレ/センター/ポストトリガを自由に設定可能。
・終了は通常のPCと同様な手続きで
3.実験課題
電子サイコロを製作せよ
・これまでのクロック発生器をクロック源として、・7セグメント表示でサイコロの“目”を表す(1~6まで)・リセットスイッチ(初期化、表示は“0”)
・ゴースイッチ(カウントを始める)・ストップスイッチ(カウントを止める)⇒サイコロの目
リセットスイッチはいつでも利き、表示0に戻る
余裕があれば上記回路を2組作り、偶/奇判定回路でLED表示すると面白い。
ロジアナを使って各部の信号を同時に計測せよ
クロック発生器
サイコロカウンタ/制御回路
(FF3個)
ResetSW
プルアップ抵抗を忘れずに!
GOSW
StopSW
GND
BCD to 7 セグメ
ントデコーダ
74LS247
Vcc
制限抵抗7個
電子サイコロの構成例
ヒント:1,2,3,4,5,6,1,2,…の状態をとる回路(カウンタ)を考えしリセットでどこからでも別の状態0になり、ゴーで上記無限カウントを初め、ストップで動かない状態遷移図を作成し、DFFで構成すると良い。
状態数は7個で、入力が3本、現状態3ビットから状態遷移図を作り設計するとテーブルが大きくなりすぎるので、リセットはFFの直接リセットを使い強制的に000にし、遷移図から外して良い。
GoF StF Q2 Q1 Q0 Q2n Q1n Q0n
0 - 0 0 0 0 0 0
0 0 11 - 0 0 0
- 0 0 0 1 0 1 0
- 1 0 0 1 0 0 1
- 0 0 1 0
- 1 0 1 0
0 1 1
0 1 0
M M- 0 1 1 0
- 1 1 1 0M
状態遷移図のイメージ
}}
}
}M
状態000での状態遷移先
状態001での状態遷移先
状態010での状態遷移先
状態110での状態遷移先
この表を完成させて、論理を組む
メカニカルスイッチを使う場合の注意点
機械式(バネ)はチャッタリングがある。
⇒チャッタリングキラー回路を入れないと誤動作に
本実験で使う3つのスイッチの使い方の参考例
特にGoとStop信号は注意。左の回路のように74をRSFF代わ
りに使うと便利。(一度セットされると、Restが来るまで保持し
てくれる。
生の入力信号を使わず、GoF,
StopFを制御回路に与えると
チャッタリングが防止
参考:74LS247の回路図、ピン配置
BCD-7セグメントデコーダ
a
b
c
d
e
fg
a,b,c,d,e,f
b,c
a,b,d,e,g
a,b,c,d,g
b,c,f,g
a,c,d,f,g
a,c,d,e,f
a,b,c
a,b,c,d,e,f,g
a,b,c,d,f,g
アノードコモン型
カソードコモン型
カソードコモン型ではセグメント入力に“1”を
入れると発光。
アノードコモン型では“0”とすると発
光。
セグメントデコーダの活用例
4.考察
4.1 先の例題でT FFを使った4進カウンタにおいて、
図1と図2との回路構成法の得失を比較・考察しなさい。
4.2 入力と内部状態数の和が4を超えるとカルノー図による簡単化が難しくなってくる。こうした場合に用いられるクワイン-マクワスキ法についてまとめなさい。必要なら
を例題として用いなさい。4.3 ロジアナの利点、効用についてまとめよ。
シンクロ(オシロ)スコープとの違いもまとめよ。
DCABABCDCDBADCABBCDACDBAF
++
+++=
レポート作成にあたっての注意:
1.実験環境、条件を明記すること。(第三者が追実験可能にすること)
使用用した機器のメーカー名、モデル名(製品名)、製造番号を書く。
2:図番、タイトル、グラフの縦・横軸のタイトル、単位を明示すること。
図表だけから定量的データが読み取れる必要。(図表は万国共通)
3:A4サイズのレポートになっていない (ノートを裂いたもの、B5レポートは不可)
4:実験結果にレクチャーノートの絵をそのままコピーしているものがある。
これは実験結果と認めない。
オシロスコープの画面をスケッチでも良いから書き写し、それにスケールを
書き込みレポートに載せるなどを行うこと。
5:発振回路の動作原理は難しかった?