0 - 九州大学

Title
論理回路
九州大学 工学部
電気情報工学科
01/28
講義内容
第1回:アナログとディジタル
第2回:論理代数と論理関数
第3回:論理関数の表現
第4回:MOSトランジスタの機能とCMOS論理と基本論理ゲート
第5回:論理式の最小化
第6回:組み合わせ論理回路の設計
第7回:組み合わせ回路と順序回路
第8回:フリップフロップとメモリ
第9回:有限状態機械
第10回:有限状態機械の状態数の最小化
第11回:一般化した次状態関数・出力関数
第12回:同期式順序回路による有限状態機械の実現
第13回:同期式順序回路の設計
02/28
講義日程
•「論理回路」と「コンピュータアーキテクチャI」はペア
科目として,学期の前後半にそれぞれ週2コマずつ実施
「論理回路」再試験
「論理回路」本試験@教場
Title
論理回路
第13回
—同期式順序回路の設計—
九州大学 工学部
電気情報工学科
04/31
組み合わせ
論理回路
…
記憶
…
入力
…
2値符号順序回路の構成
出力
…
クロック
05/31
2値符号順序回路の構成
{ 0, 1 }q
f: { 0, 1 }p+r →{ 0, 1 }r
g: { 0, 1 }p+r →{ 0, 1 }q
…
{ 0, 1
}r
…
…
{ 0, 1 }p
…
クロック
05/31
同期式順序回路の設計手順
① 「問題」を理解し順序機械を定義する
② 状態数を最小化する
③ 入力,出力,状態に対して符号を割り当てる
④ 状態遷移関数と出力関数を構成する
⑤ 組み合わせ回路を設計し順序回路を構成する
⑥ クロック信号を設計する
06/31
【確認】「系列の検出器」
• 連続して入力される0と1の系列に対して,3個連続
する0または1を検出する順序回路を設計せよ
M = (I, O, S, δ, λ)
-I: {0, 1}
-O: {φ, 検出}
-S: {s0, s1, s2, s3, s4}
07/31
状態遷移表
0
1
初期状態
s0
s 1, φ
s 3, φ
0が1つ入力
s1
s 2, φ
s 3, φ
0が連続して2つ入力
s2 s0, 検出 s3, φ
1が1つ入力
s3
s 1, φ
s 4, φ
1が連続して2つ入力
s4
s1, φ s0, 検出
08/31
② 状態数の最小化
0
1
s0
s0
s 1, φ
s 3, φ
s1 ×
s1
s 2, φ
s 3, φ
s2 ×
×
s2
s 0, D
s 3, φ
s3 ×
×
×
s3
s 1, φ
s 4, φ
s4 ×
×
×
s4
s 1, φ
s 0, D
×
s0 s1 s2 s3 s4
09/31
③ 符号の割り当て
I
x
O
z
S y0 y1 y2
0
0
φ
0
s0 0
0
0
1
1
D
1
s1 0
0
1
s2 0
1
0
s3 1
0
1
s4 1
1
0
10/31
状態遷移表
入力x
状態
y 0y 1y 2
000
001
010
101
110
0
001, 0
010, 0
000, 1
001, 0
001, 0
次状態 Y0Y1Y2
1
101, 0
101, 0
101, 0
110, 0
000, 1
出力 z
11/31
④ 状態遷移関数 Y0 の構成
y 1y 2
xy0
00
01
11
10
00
0
0
*
0
01
*
0
*
0
11
*
1
*
0
10
1
1
*
1
Y0 = xy1’ + xy0’
12/31
④ 状態遷移関数 Y1 の構成
y 1y 2
xy0
00
01
11
10
00
0
1
*
0
01
*
0
*
0
11
*
1
*
0
10
0
0
*
0
Y1 = xy0y1’ + x’y0’y2
13/31
④ 状態遷移関数 Y2 の構成
y 1y 2
xy0
00
01
11
10
00
1
0
*
0
01
*
1
*
1
11
*
0
*
0
10
1
1
*
1
Y2 = x’y0 + xy0’ + y1’y2’
14/31
④ 出力関数 z の構成
y 1y 2
xy0
00
01
11
10
00
0
0
*
1
01
*
0
*
0
11
*
0
*
1
10
0
0
*
0
z = x’y0’y1 + xy0y1
15/31
⑤ 組み合わせ回路の構成
x
z = x’y0’y1 + xy0y1
Y0 = xy1’ + xy0’
Y1 = xy0y1’ + x’y0’y2
Y2 = x’y0 + xy0’ + y1’y2’
y 0y 1y 2
z
Y0Y1Y2
クロック
16/31
同期式順序回路の設計手順
① 「問題」を理解し順序機械を定義する
② 状態数を最小化する
③ 入力,出力,状態に対して符号を割り当てる
④ 状態遷移関数と出力関数を構成する
⑤ 組み合わせ回路を設計し順序回路を構成する
⑥ クロック信号を設計する
17/31
クロック(クロックパルス)
• クロック:論理値0と1とを一定周期で繰り返す信号
-同期式順序回路では,外部入力や内部状態はクロッ
クパルスに同期して一斉に変化する
-クロックパルスの周期は,組み合わせ回路部での計
算時間よりも長く,一周期以内に出力変数の値や次時
刻での状態変数の値が計算される
-時間の単位はクロックパルスの周期で規定される
18/31
クロック信号の生成
• リング発振回路:NOTゲートを奇数個接続する
入力
出力
1 → 0 → 1 → 0 → 1 → 0
0
0 → 1 → 0 → 1 → 0 → 1
1
1 → 0 → 1 → 0 → 1 → 0
0
0 → 1 → 0 → 1 → 0 → 1
1
-ゲートの個数を調整することでクロック周期を制御可能
クロック信号の導入
入力
組み合わせ
論理回路
出力
クロック
20/31
クロック信号の導入
入力
組み合わせ
論理回路
出力
Q D
クロック
20/31
⑥ クロック信号の設計
x
z = x’y0’y1 + xy0y1
Y0 = x
Y1 = xy0 + x’y0’y2 + x’y0’y1
Y2 = x’y0 + xy0’ + y1’y2’
z
QD
QD
y 0y 1y 2
Clock
QD
Y0Y1Y2
21/31
入出力のクロック制御
x
QD
z = x’y0’y1 + xy0y1
Y0 = x
Y1 = xy0 + x’y0’y2 + x’y0’y1
Y2 = x’y0 + xy0’ + y1’y2’
z
QD
QD
QD
y 0y 1y 2
Clock
QD
Y0Y1Y2
22/28
クロック信号の周期
• セットアップ時間:
-Clockが変化する前にdataが確定しているべき時間
• ホールド時間:
-Clockの変化後にdataが有効状態を維持すべき時間
data
setup hold
Clock
クロック周期 T > d1 + d2 + D(回路自体の遅延時間)
【確認】クロック周期の決定
2
x
• 遅延時間:
-インバータ→2ns
-2入力素子→3ns
-3入力素子→4ns
-FF@d1+d2→3ns
Clock
2
2
2
4
4
3
3
4
4
3
3
3
4
Q
Q D
z
4
3
Q
Q D
Y0
3 Y1
Y2
Q D
Q
3
24/31
クロック周期の制御
• 分周回路:クロック周期を整数倍(n 倍)に変換する
入力
s 0, 0
状 s 1, 1
態
…
sn-1, 0
0
s0
s1
…
sn-1
1
s1
s2
…
s0
-入力が0のときは停止,入力が1のときに分周
-状態がs1の場合に限り1を出力
→n クロックごとに1を出力(=クロック周期がn 倍)25/31
クロック T → 2T
入力
クロック2T
(出力)
クロックT
-クロックT の立ち上がりで入力1を「取り込み」
-クロックT の立ち下がりで入力を「保持」し1を出力
クロック T → 2T
入力
クロック2T
00
「カウンタ」→
(出力)
クロックT
01
10
11
-クロックT の立ち上がりで入力1を「取り込み」
-クロックT の立ち下がりで入力を「保持」し1を出力
【確認】クロック T → 3T
• 以下のとおり定義される3倍周期の分周回路に
ついて,組み合わせ論理回路を設計し,同期式
順序回路を構成せよ.
入力
M = (I, O, S, δ, λ)
-I: {0, 1}
-O: {0, 1}
-S: {s0, s1, s2}
-δ: S × I →O
-λ: S →O
状
態
0
1
s 0, 0
s0
s1
s 1, 1
s1
s2
s 2, 0
s2
s0
※ 第13回参照 27/31
符号割当済み状態遷移図
入力x
0
1
s0
00
00
01
状態 s1
01
01
10
y 0y 1 s 3
11
**
**
s2
10
10
00
次状態 Y0Y1
28/31
状態遷移関数の導出
x
y 0y 1
x
Y0
0
1
Y1
0
1
00
0
0
00
0
1
01
0
1
01
1
0
11
*
*
11
*
*
10
1
0
10
0
0
Y0 = x’y0 + xy1
y 0y 1
Y1 = x’y1 + xy0’y1’
分周回路(T → 3T )の構成
Y0 = x’y0 + xy1
Y1 = x’y1 + xy0’y1’
入力 x
クロック3T
(出力)
クロックT
y0
Y0
y1
Y1
30/31
次回予定
論理回路
第14回
—演習問題—
九州大学 工学部
電気情報工学科
31/31