東京電機大講義資料

論理回路および論理設計
2011年度 (第1回)
中島 克人
情報メディア学科
[email protected]
授業の概要

目的
 実世界の問題を論理の世界にマッピングし、論理回路とし

て設計するための基礎知識を学ぶ。
また、基本的・代表的な論理回路の幾つかについて理解す
る。
達成目標
 論理回路の基本的概念と設計手法の基礎知識の習得を目

指す。
教科書: 柴山潔著
「コンピュータサイエンスで学ぶ 論理回路とその設計」(近代科学社)


参考書:特になし
評価方法(目安)
 (期末試験) : (出席数等) = 8 : 2
2
授業の概要
どんな内容?
論理代数(論理式)
... (原則) 0 か 1 だけの数学
f(A, B)=A ・ B = C
g(A, B)=A ・ B + A ・ B = S
論理回路
論理変数 A, B, C, S は
0 か 1 だけの値を取る
... 論理式と(1対1に)対応(後述)
デジタル回路の設計

論理式で回路仕様を表現し,それを論理式の変形で最適化(簡略化)
して,理想的な(コンパクトな)論理回路を設計
論理式の変形や最適化


パズルのような操作!
記憶する事は少なく,とにかく 「慣れ」 だけ ... 練習あるのみ
「プロセッサと機械語」の知識は前提としない!
3
集合 と 論理代数
全世界
B
A
C=
A・B
A・B=C
A・B+A・B=S
A・B
集合(ベン図)
論理代数(論理式)
C は A かつ B である(等値)。
命題論理
4
集合 と 論理代数
A
B
全世界
命題論理
A ならば B である(含意)。
A・B=0
逆命題
B ならば A である。
B・A=0
逆(命題)は「真」ならず
対偶命題
B でないならば A でない。
B・A=0
対偶(命題)は常に「真」である
5
論理代数 と 論理回路
A
A・B=C
A・B+A・B=S
●
B
C
●
●
●
論理代数(論理式)
S
論理回路
6
論理代数 と 論理回路
 アナログ
vs デジタル=連続 vs 離散
 論理=2値(賛vs否、真vs偽、男vs女、左vs右)の世界
= 1 vs 0 (記号として使用)→ 論理値
 ビット=1つの論理(論理値)
 2進数(デジタル値を表現可能) ≠論理=非数値
=2冪の各桁の有り無しを論理で示す数表現
 論理代数=論理を扱う数学
 論理関数=論理の関係を表現する関数
 論理回路=論理関数の電気的実現手段
7
論理代数
 論理定数
.... 1 または 0 (論理値そのもの)
 論理変数 .... 1 または 0 を取り得る変数 公理1
 論理演算記号(論理演算子)
基本は否定(NOT)、論理積(AND)、論理和(OR)の3つ
論理変数
 例:
論理演算子
X OR ((NOT Y) AND Z)
単項論理演算
2項論理演算
論理式
 本講義(本テキスト)での表記(一般的)
X+(Y・Z)
8
基本論理演算
 定義1.1:否定(NOT)
... X
 定義1.2:論理積(AND) ... X・Y
 定義1.3:論理和(OR) ... X+Y
真理値表
真理値表
公理2
X
0
1
X
1
0
X
0
0
1
1
Y
0
1
0
1
公理3
公理4
X・Y
0
0
0
1
X+Y
0
1
1
1
9
基本論理演算の演算順位
 定義1.4
優先順位の高いものから順に、
否定(NOT) → 論理積(AND)→ 論理和(OR)
X + Y ・ Z = (X + ( ( Y ) ・ Z ))
3
2 1
1
2 3
10
論理式と論理関数
 論理式
論理の関係を表す数式
例: X + ( Y ・ Z )
n変数論理関数
n個の論理変数による関係で、値は 0 か 1
f(X1,X2, ... , Xn)={ 0, 1 }
論理式、真理値表などで論理関数を表す
11
双対
 定義1.5:
双対
ある論理式Lで
論理記号 ・ (AND) ⇔ + (OR) の入替え
論理定数 0 ⇔ 1 の入替え
によって得られる論理式Ldを双対と称する
 双対の例
L = ( 1・ Y )+( 0+( X ・ Z) ) とした時、
Ld = ( 0 + Y )・( 1・( X + Z) )
12
演算順位と双対
 演習:
次の論理式に演算順位を示す「( )」を追加し、優
先順位の数字(最優先=1)を付けよ
X・(Y+Z・W)+X・Y=
[解]
(X・(Y+((Z)・W)))+((X・Y))
4
3
2 1 1
2 34
4 3
3 4
 演習:
論理式 L=X・(Y+Z・W)+X・Y の双対Ld を求め
よ
[解] Ld=(X+(Y・(Z+W)))・(X+Y)
13
双対性
 双対性
ある論理式Lが成立している時、双対な論理
式Ldも成立することを「双対性がある」という
 定理1.1(双対性)
論理式P,QがP=Qならば、 Pd=Qdである
⇒ P=Qだけを証明すれば、 Pd=Qdの証明は省略できる
14
種々の基本定理 (1変数)
⇔:双対
 定理1.2
X・0=0 ⇔ X+1=1
 定理1.3(2値の存在)
X・1=X なるXが存在 ⇔ X+0=X なるXが存在
 定理1.4(同一則、ベキ等則)
X・X=X ⇔ X+X=X
X・X・・・X =X ⇔ X+X+‥‥+X =X (系1.5)
 定理1.6(相補則)
X・X=0 ⇔ X+X=1
 定理1.7(二重否定)
X=X
15
種々の基本定理(多変数)
⇔:双対
 定理1.8(交換則)
X・Y=Y・X
⇔
X+Y=Y+X
 定理1.9(結合則)
(X・Y)・Z=X・(Y・Z) ⇔ (X+Y)+Z=X+(Y+Z)
 定理1.10(分配則)
X・(Y+Z)=(X・Y)+(X・Z)
⇔ X+(Y・Z)=(X+Y)・(X+Z)
 定理1.11(吸収則)
X+(X・Y)=X
⇔ X・(X+Y)=X
X+(X・Y)=X+Y ⇔ X・(X+Y)=X・Y (系1.12)
16
種々の基本定理(ド・モルガンの定理)
 定理1.13(De
Morgan の定理)
X・Y=X+Y
⇔
⇔:双対
X+Y= X・Y
(X1・X2 ・・・ Xn)= X1+X2+・・・+Xn
⇔ (X1+X2+・・・+Xn)= X1・X2 ・・・ Xn (系1.14)
X・Y=X+Y
⇔
X+Y= X・Y (系1.15)
17
種々の基本定理(ド・モルガンと双対)
 定理1.16(拡張されたDe
Morganの定理)
L = f(X1, X1 , X2, X2 ,・・・Xn, Xn, ・ ,+)
= f(X1, X1 , X2, X2 ,・・・Xn, Xn,+, ・ )
 定義1.6(双対関数)
fd= f(X1, X1, X2, X2 ,・・・Xn, Xn, +, ・)
ド・モルガン
= f(X1, X1, X2, X2 ,・・・Xn, Xn, ・ ,+)
 定義1.7(自己双対関数)
f= fd ならば、f は自己双対関数という
18
種々の基本定理(展開定理)
 定理1.17(展開定理)
Xi・f(X1, ・・, Xi, ・・,Xn)=Xi・f(X1, ・・, 1, ・・,Xn)
Xi+f(X1, ・・, Xi, ・・,Xn)=Xi+f(X1, ・・, 0, ・・,Xn)
 定理1.18(シャノンの展開定理)
f(X1, ・・, Xi, ・・,Xn)
= Xi・f(X1, ・・, 1, ・・,Xn)+Xi・f(X1, ・・, 0, ・・,Xn)
展開形、肯定・否定分離形、Xi に関する積和形 等と呼ぶ
f(X1, ・・, Xi, ・・,Xn)
=(Xi+f(X1, ・・, 0, ・・,Xn))・(Xi+f(X1, ・・,
1, ・・,Xn ))
展開形、肯定・否定分離形、Xi に関する和積形 等と呼ぶ 19
種々の基本定理(展開定理)
 例題:
f(X, Y, Z)= X・Y+X・Z を Zで展開し、積和形に
[解]
f = X・Y + X・Z
= Z・( X・Y + X・1 ) + Z・( X・Y + X・0 )
= Z・( X・Y + X ) + Z・( X・Y + 0 )
吸収則(定理1.11)
= Z・X + Z・X・Y
20
種々の基本定理(展開定理)
 演習:
f(X, Y, Z)= X・Y+X・Z を Yで展開し、積和形に
[解]
f = X・Y + X・Z
= Y・( X・1 + X・Z ) + Y・( X・0 + X・Z )
= Y・( 0 + X・Z ) + Y・( X + X・Z )
= Y・( X・Z ) + Y・( X )
吸収則(定理1.11)
= Y・X・Z + Y・X
21
論理関数の表現(準備)
 同じ関数に対する異なる論理式
f(X, Y, Z)= X・Y+X・Z
= Z・X + Z・X・Y
= Y・X・Z + Y・X
= X・Y・Z + X・Y・Z + X・Y・Z
 同一性をどう判定する?
 最も簡単な(コンパクトな)表現は?
22
論理回路および論理設計
2011年度 (第2回)
中島 克人
情報メディア学科
[email protected]
論理関数の表現
 定義1.8:
リテラル(literal)
論理式を構成する論理変数、または、その否
定をリテラルと総称する。
Xのリテラルを X と表記することにする。
X = { X, X }
X0 = X,
X1 = X
⇒
Xl (l=0, 1)
 論理積項と論理和項
論理積項:複数のリテラルをANDだけで結んだ項
論理和項:複数のリテラルをORだけで結んだ項
24
論理関数の表現
 積和形(AND-OR形)
複数の論理積項がORで結ばれた論理式
双対
 和積形(OR-AND形)
複数の論理和項がANDで結ばれた論理式
 どんな論理式も積和形又は和積形に展開できる
← 全ての変数に定理1.18(展開定理)を適用
25
論理関数の表現
 最小項(極小項)
n変数論理式において
X1l1・ … ・Xili・ … ・Xnln
(li=0, 1)
を最小項あるいは極小項という
双対
 最大項(極大項)
n変数論理式において
l
l
l
i
1
X1 + … +Xi + … +Xn n
(li=0, 1)
を最大項あるいは極大項という
26
論理関数の表現
 最小項(極小項)
f(X, Y, Z)= X・Y+X・Z = Y・X・Z + Y・X
最小項
論理積項であるが、最小項ではない
27
論理関数の表現(標準積和形)

定義1.11(標準積和形)
f( l1, … , li, … , ln ) =1
となるリテラルの組による最小項
X1l1・ … ・Xili・ … ・Xnln
双対
の全てをORで結んだものを標準積和形という

定義1.12(標準和積形)
f( l1, … , li, … , ln ) =0
となるリテラルの組による最大項
( X1l1+ … +Xili+ … +Xnln )
の全てをANDで結んだものを標準和積形という
28
論理関数の表現(標準積和形)
 例:
標準積和形
…×
f(X, Y)= X・Y + X
= X・Y + X・Y + X・Y … ○
 標準積和形の作り方:
f(X, Y)= X・f(0, Y) + X・f(1, Y)
= X・Y・f(0, 0) +X・Y・f(0, 1)
+X・Y・f(1, 0)+ X・Y・f(1, 1)
= X・Y・1+X・Y・1+X・Y・0+X・Y・1
= X・Y +X・Y
+X・Y
4つの項から f(?, ?)=1 のものだけを残す
29
論理関数の表現(標準積和形)
 例:
標準積和形
…×
f(X, Y, Z)= X・Y・Z + X・Y
= X・Y・Z + X・Y・Z + X・Y・Z … ○
 標準積和形の作り方:
f(X, Y, Z)= X・f(0, Y, Z) + X・f(1, Y, Z)
= X・Y・f(0, 0, Z) + …. + X・Y・f(1, 1, Z)
= X・Y・Z・f(0, 0, 0) + …. + X・Y・Z・f(1, 1, 1)
8つの項から
f(?, ?, ?)=1 のものだけを残す
30
論理関数の表現(標準積和形)
 例題:
f(X, Y)= Y+X・Y を 標準積和形に
[解]
f = X・Y・f(0,0) + X・Y・f(0,1)
+ X・Y・f(1,0) + X・Y・f(1,1)
= X・Y・0 + X・Y・1 + X・Y・0 + X・Y・1
= X・Y+ X・Y
[別解]
f(0,1)= f(1,1)= 1 であるから、
f = X・Y+ X・Y
31
論理関数の表現(標準積和形)
 演習:
f(X, Y)= X+X・Y を 標準積和形に
[解]
f = X・Y・f(0,0) + X・Y・f(0,1)
+ X・Y・f(1,0) + X・Y・f(1,1)
= X・Y・0 + X・Y・1 + X・Y・1 + X・Y・1
= X・Y+ X・Y+ X・Y
[別解]
f(0,1)= f(1,0)= f(1,1)= 1 であるから、
f = X・Y+ X・Y+ X・Y
32
論理関数の表現(標準積和形)
 演習(P46,
問題1.4):
f(X, Y, Z)= X・Y・Z+X・Z+X・Y を 標準積和形に
[解]
f = X・Y・Z + X・Z・(Y+Y)+ X・Y・(Z+Z)
= X・Y・Z + X・Y・Z + X・Y・Z
+ X・Y・Z + X・Y・Z
33
論理関数の表現(真理値表)
真理値表
各論理変数の値に対する論理関数の値の一覧表
n=2変数関数の
真理値表の例
n
2 =2エントリ

演習:
f(X, Y)= X・Y+ X・Y
の真理値表を記せ
[解] 右表
X
0
0
1
1
Y
0
1
0
1
f=X・Y+X・Y+X・Y
0
1
1
1
X
0
0
1
1
Y
0
1
0
1
f=X・Y+X・Y
0
1
0
1
34
論理関数の表現(カルノー図)
カルノー図(Karnough
map)
各論理変数の値に対する論理関数の値の2次元格子図
座標ラベル
n=4変数関数の
カルノー図の例
全部で 2nエントリ
AB
CD
00
01
11
10
0 0
1
1
0
0
0 1
1
1
1
0
1 1
1
0
1
0
1 0
1
0
1
1
:隣接する座標ラベルは論理変数値が1つだけ異なる
(=ハミング(Hamming)距離が1になる)ように配置する
35
グレイコード

グレイコード(Gray code)
隣接コード(符号)間のハミング(Hamming)距離が1となる
コード列
2ビット: 00 → 01 → 11 → 10 (→ 00)
3ビット: 000 → 001 → 011 → 010 →
↑
100 ← 101 ← 111 ← 110 ←
4ビット:
5ビット:
36
論理関数の表現(カルノー図)

最小項と標準積和形
ひと枡が最小項に対応している
関数値が1の最小項をOR結合したものが標準積和形
最小項 ABCD
f の標準積和形
f(A,B,C,D)
=ABCD+ABCD
+ABCD+ABCD
AB
CD
00
01
11
10
0 0
1
1
0
0
0 1
0
0
0
0
1 1
0
0
1
0
1 0
0
0
1
0
37
論理関数の表現(カルノー図)

カルノー図による積和形の表現
隣接した2個のマス目 ⇒ (n-1)変数の論理積項
隣接した4個のマス目 ⇒ (n-2)変数の論理積項
‥‥
f の積和形
f(A,B,C,D)
=ACD
+ABC
論理積項 ACD
AB
CD
00
01
11
10
0 0
1
1
0
0
0 1
0
0
0
0
1 1
0
0
1
0
1 0
0
0
1
0
38
論理回路および論理設計
2011年度 (第3回)
中島 克人
情報メディア学科
[email protected]
論理関数の表現(カルノー図)

例題1.15(カルノー図の例)
f(X,Y,Z)= X・Y + Y・Z
= X・Y・(Z+Z)+(X+X)・Y・Z
X・Y・Z X・Y・Z X・Y・Z X・Y・Z
= X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z
0
1
1
0
1
0
1
0
0
0
00
01
11
10
0
1
1
0
1
1
0
1
0
0
0
0
XY
Z
40
論理関数の表現(カルノー図)

例題1.15(カルノー図の例)
f(X,Y,Z)= X・Y
0
1 -
+
Y・Z
- 0
0
= X・Y・(Z+Z)+(X+X)・Y・Z
X・Y・Z X・Y・Z X・Y・Z X・Y・Z
= X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z
XY
Z
00
01
11
10
0
1
1
0
1
1
0
1
0
0
41
論理関数の表現(カルノー図)

カルノー図の例:3変数論理関数での1変数の項の表現
X
Y
XY
Z
XY
00
01
11
10
0
0
0
1
1
1
0
0
1
1
Z
XY
00
01
11
10
0
0
1
1
0
1
0
1
1
0
X
Z
00
01
11
10
0
0
0
0
0
1
1
1
1
1
00
01
11
10
Y
XY
Z
Z
Z
XY
00
01
11
10
0
1
1
0
0
1
1
1
0
0
Z
XY
00
01
11
10
Z
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
42
論理関数の表現(カルノー図)
 演習
次の関数をカルノー図に表しなさい
ACD
f(A,B,C,D)= AB + ABCD + ACD
AB
 解答
左図
CD
00
01
11
10
0 0
0
0
1
0
0 1
0
1
1
0
1 1
0
0
1
0
1 0
1
1
1
0
43
論理関数の表現(カルノー図)
 演習
次のカルノー図に表された関数の標準積和形の論理式
を示しなさい。
ABCD
ABCD
ABCD
ABCD
ABCD
 解答
AB
CD
00
01
11
10
0 0
0
0
1
0
0 1
0
1
1
0
1 1
0
0
0
0
1 0
1
1
0
0
f(A,B,C,D)= ABCD + ABCD + ABCD
+ ABCD + ABCD
44
論理関数の表現(2分決定図)

有向グラフ(木/tree)
 節点(ノード/node)と節点を結ぶ枝(リンク/link)からな
り、枝に向きを持つもの
 節点と枝にはラベルをつける
枝
節点
0
Y
1
Z
X
ラベル
45
論理関数の表現(2分決定図)

2分決定図(BDD:Binary Decision Tree)
 非終端節点:論理変数名
 終端節点:論理関数値

0終端節点、1終端節点
 枝:論理変数値、その枝が出る節点(始点)の変数が取る値

0枝、1枝
節点
0枝
枝
0
0
X
論理変数値
変数名
0終端節点
1終端節点
1枝
1
論理関数値0
1
論理関数値1
46
論理関数の表現(完全2分決定図)

定義1.13(完全(順序付き)2分決定図)
 次の手順で作成した2分決定図
1. 最小項を構成する n個の変数の出現順序を任
意に固定する
2. その順序に従って、変数をラベルとする非終端
節点相互をその始点の変数値をラベルとする
枝で結んでいく
3. 最後は論理関数値をラベルとする終端節点に
至る
47
論理関数の表現(完全2分決定図)

完全(順序付き)2分決定図の例
X・Y・Z + X・Y・Z + X・Y・Z + X・Y・Z
X
0
1
Y
Y
0
1
Z
0
0
0
Z
1
0
0
1
1
Z
1
0
0
0
Z
1
0
1
1
1
1
48
論理関数の表現(完全2分決定図)

演習:
次の論理式に相当する完全(順序付き)2分決定図を変数の
出現順を Z→Y→X として示せ
X・Y・Z + X・Y・Z + X・Y・Z + X・Y・Z
Z
0
1
Y
Y
0
1
X
0
0
0
X
1
0
0
1
1
X
1
1
0
0
X
1
1
0
0
1
1
49
論理関数の表現(完全2分決定図)

既約順序付き2分決定図
 次の規則により簡約化した2分決定図
 変数出現順を固定するとこれに対応する積和形も一意
1. 部分木共有: 2分決定図の一部分(部分木)の形状や
ラベルが完全に同一の複数の部分木は共有できる
2. 節点除去: 0枝と1枝の行き先が共に同一の節点に至
る節点は除去できる
3. 節点共有: 0枝と1枝の行き先のそれぞれがどちらも同
じ節点に至り、かつ、同じラベル(変数名)の複数個の節
点は共有(1個に簡約)できる
50
論理関数の表現(完全2分決定図)

既約順序付き2分決定図の例
X・Y・Z + X・Y・Z + X・Y・Z + X・Y・Z + X・Y・Z
X
0
1
Y
部分木共有
Y
0
1
Z
0
Z
1
Z
X
0
Y
Y
1
0
Z
0
Z
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
X
1
X
Z
0
1
0
1
Z
0
0
1
Y
節点共有
0
1
0
1
1
0
1
1
1
0
1
0
Z
0
Z
1
0
1
Y
1
Z
0
0
1
Z
1
0
1
1
0
節点除去
51
論理関数の表現(n次元立方体)

定義1.14(n次元立方体)
 n次元座標で、2
n個の頂点を持ち、2個の頂点どうしを各頂
点から出る n本の辺で結んでできる幾何学図形
 nキューブ(n-cube)ともいう
 n次元立方体を総称して、超立方体またはハイパーキュー
ブ(hypercube)という
52
論理関数の表現(n次元立方体)

定義1.14(n次元立方体)
A
AB
AB
AB
AB
A
1次元
2次元
A BC
A BC
.... D
A BC
A BC
AB C
ABC
AB C
ABC
…. D
4次元
3次元
53
論理関数の表現(表現力比較)

論理式
⇒ 同一性判定が容易
 ただし、標準形でない論理式の同一性判定は難しい
 論理式の簡単化のような変形(後述)も難しい
 一意に定まる標準形に変形可能

真理値表
 変数値の組に対する関数値が一目で分かる
 変数の数が多いと表が大きい(n変数時、2

n行)
カルノー図
 「最も」簡単な積和形論理式が直感的に求まる
 変数の数が多いと描くのが難しくなり、非実用的(~6変数)

2分決定図
 論理式との対応は良いが、同一性判定も簡単化も難しい
54
論理代数 と 論理回路
A
A・B=C
A・B+A・B=S
●
B
C
●
●
●
論理代数(論理式)
S
論理回路
55
論理関数と論理回路(論理ゲート)

論理ゲート
 ハードウェアによる1ビット(1個)の論理演算機能

対象演算項
論理演算
演算結果
入力信号
論理ゲート
出力信号
基本論理ゲート
 NOT(単項),
AND(2項), OR(2項) の3種類
56
論理関数と論理回路(論理ゲート)
3つの基本論理ゲート
 定義2.1(NOTゲート):
X
X = Z なる論理ゲート
(
Z=X
 定義2.2(ANDゲート):
X
Z=X
)
X・Y = Z なる論理ゲート
X
Y
Z=X・Y
 定義2.3(ORゲート):
X+Y = Z なる論理ゲート
X

Y
Z= X+Y
57
論理回路(トランジスタでの実現)
 インバータ(否定)
X
Y= X
VCC +5V
 トランジスタ・インバータ
X
入力
RC
330Ω
Y
出力
RB
6.8KΩ
VDD
 CMOSインバータ
P
入力 X
(定常的には)どちらかのトランジスタが
OFFのため、消費電力が小さい
出力 Y
N
58
論理回路(トランジスタでの実現)
 (2入力)AND
 CMOS・(2入力)AND
X
Y
Z=X・Y
VDD
N
入力 X
N
入力 Y
出力 Z
 CMOS・(2入力)OR
VDD
P
N
P
出力 Z
入力 X
X
Y
N
Z=X+Y
入力 Y
P
P
59
論理回路および論理設計
2011年度 (第4回)
中島 克人
情報メディア学科
[email protected]
論理ゲートと論理回路

論理回路
 多数の論理ゲートを組合せて、ある一定の働きをするハー
ドウェア機構を論理回路という

定義2.4(組合せ回路)
 ある時刻の出力信号値がその時刻の入力値だけで決定す
る論理回路を組合せ回路という
【参考】

定義3.2(順序回路) … (教科書p.149)


ある時刻 t の出力が、その時刻 t の入力と状態(即ち、入力履歴)に依
存する論理回路を順序回路という … 状態を保持するメモリを持つ
定義3.3(同期(式順序)回路) … (教科書p.151)

回路動作が(同じ)クロックに同期する順序回路を同期(式順序)回路と
いう
61
組合せ回路/順序回路/同期回路

メモリ

組合せ回路 … 入力だけで出力の値が決まる
( メモリ (=flip-flopやlatchやregister)を含まない)
順序回路 … 内部状態を持つ
(メモリを含む)
同期(式順序)回路 … 1種類のクロックで内部状態の更新を行う
順序回路
組合せ回路
メモリ

順序回路
クロック(clock)
62
論理関数と論理回路
論理関数と論理回路の関係(その1)
 下図のように、入力を
m本、出力を 1本だけ持つ組合せ回
路 f は、次の論理関数と等価である
入力
X1
X2
Xm
・・・

組合せ
論理回路
Z 出力
f
等価
f(X1, X2,・・・ , Xm)= Z
63
論理関数と論理回路

論理関数と論理回路の関係(その2)
 論理関数は組合せ回路における入力と出力との論理関係
を示している
 論理関数は組合せ回路の機能を論理式で表している
 論理回路(組合せ回路)は
3種類の基本論理(NOT, AND,
OR)ゲートだけで作れる
 カルノー図や真理値表は論理回路(組合せ回路)における
入力と出力との関係を示す図表である
 組合せ回路の設計では、入出力信号の時間変化や時間遅
延は考えなくてもよい
 論理ゲートは最小規模の論理回路でもある
64
論理関数と論理回路

定義2.5(ドントケア/don’t care)
 n変数論理関数(あるいは
n入力論理回路)において、n個
の変数値の組(あるいは n本の入力信号の組)に対して、
論理関数値(あるいは出力信号)が定義されていないことを
ドントケア(don’t care)、組合せ禁止、不完全定義 などと
いう
後日説明予定
 ある入力の組合せを禁止する
 ある入力の組合せが生じない/冗長である/無効である
 ある入力の組合せがあろうとなかろうとどちらでも構わない
 ある入力の組合せに対応する出力が
0でも 1でもどちらでも構わない/未定義である
65
論理ゲートと組合せ回路
X
f(X)
f
f(X)
0
X
X
1
X f(X)
0
1
1
1
X= 0 X= 1
0
0
0
1
1
0
1
1
X f(X)
0
1
1
0
4通りの
論理関数
f0
f1
f2
f3
X f(X)
0
0
1
1
1変数論理関数と1入力論理ゲート
m
 4(= 2 )通りの論理関数
X f(X)
0
0
1
0

m
真理値表の行数=mの時、 2 通りの論理関数
66
論理ゲートと組合せ回路

1変数論理関数と1入力論理ゲート
 展開定理
f(X)=X・f(0)+X・f(1) で論理式が求まる
f0
f1
f2
f3
X= 0 X= 1
0
0
0
1
1
0
1
1
f(X)
0
X
X
1
 例: f2
f(X)=X・f(0)+X・f(1) =X・1+X・0=X
67
論理ゲートと組合せ回路

1変数論理関数と1入力論理ゲート
 1入力論理ゲート
f0
f1
f2
f3
X= 0 X= 1
0
0
0
1
1
0
1
1
f(X)
0
X
X
1
X
X
f(X)
f
0
f
X
f
X
f
X
1
f
68
論理ゲートと組合せ回路
2変数論理関数と2入力論理ゲート
m
=4)通りの論理関数
 16(= 2
16通りの
論理関数
X Y g(X)
0
00
0
01
0
10
0
11

X,Y= 0 0
g0
0
g1
0
g2
0
:
:
g15
1
01
0
0
0
:
1
10
0
0
1
:
1
X
Y
11
0
1
0
:
1
g(X,Y)
g
g(X,Y)
0
X・Y
X・Y
:
1
m
真理値表の行数=mの時、2 通りの論理関数
n変数論理関数の種類数は、
真理値表の行数= =2n なので、
22n通りの論理関数
m
69
論理ゲートと組合せ回路

2変数論理関数と2入力論理ゲート
やはり展開定理で論理式が求まる
g(X,Y)= X・Y・g(0,0) + X・Y・g(0,1)
+ X・Y・g(1,0) + X・Y・g(1,1)

演習: 下記に示す2変数論理関数の論理式を求めよ
(1) p.60 表2.2 の g6
解答: g(X,Y)= X・Y・0+X・Y・1+X・Y・1+X・Y・0
=X・Y+X・Y
70
論理ゲートと組合せ回路

演習: 下記に示す2変数論理関数の論理式を求めよ
(2) p.60 表2.2 の g11
解答: g(X,Y)=X・Y・1+X・Y・0+X・Y・1+X・Y・1
=X・Y+X・Y+X・Y=X・Y+X・Y+X・Y+X・Y
=(X+X)・Y+X・(Y+Y)=X+Y

演習: 下記に示す2変数論理関数の論理回路を求めよ
(1) p.60 表2.2 の g6
解答: g(X,Y)= X・Y+X・Y であるので、下図
X
Y
X・Y+X・Y
71
論理ゲートと組合せ回路(多入力論理ゲート)

定義2.6(n入力ANDゲート)
f(X1, X2, ・・, Xn)=X1・X2・ ‥‥ ・Xn
を実現する n入力1出力のANDゲート(下図)を
n入力ANDゲートという
n本
:
X1・X2・X3=(X1・X2)・X3=X1・(X2・X3) なので、
X1
X2
X3
X1
= X2
X3
X1
= X2
X3
72
論理ゲートと組合せ回路(多入力論理ゲート)

定義2.7(n入力ORゲート)
f(X1, X2, ・・, Xn)=X1+X2+ ‥‥ +Xn
を実現する n入力1出力のORゲート(下図)を
n入力ORゲートという
n本
:
73
論理ゲートと組合せ回路
(その他の論理ゲート)

定義2.8(排他的論理和, EXOR(Exclusive ORゲート)
0、異なるとき 1 を演算結果とす
る 2項論理演算を排他的論理和あるいはEXOR(あるいは
XOR)という
 2個の演算項が等しいとき
 本講義では演算記号として、
○
+ を使う
 2個の論理値が等しいかを調べる「比較演算」の意味がある
 論理式は

g6 = X ○
+ Y = X・Y+X・Y
定義2.9(EXORゲート)
 定義2.8のEXOR演算を実現する2入力
論理ゲートをEXORゲートという
 回路図では右図の記号を用いる
74
論理ゲートと組合せ回路
(その他の論理ゲート)

定理2.1(EXORと結合則)
 EXORについては次のように結合則が成立する
(X ○
+ Y) ○
+Z=X○
+ (Y ○
+ Z)

演習: 定理2.1を証明せよ
解答:
(左辺)=X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z=(右辺)

演習: 上記論理式にはもはや「比較演算」としての意味はない
が、どのような意味があるか考察せよ
解答:
X,Y,Zの内、論理値=1 のものが奇数個のとき 1となる
75
論理ゲートと組合せ回路
(その他の論理ゲート)

定義2.10(否定論理積, NAND(Not AND)
AND を取り、その結果に NOT を施し、最
終の演算結果とする 2項論理演算を否定論理積あるいは
NAND という
 2個の演算項の
 演算記号には
| をあてる
 NANDを「シェファー(Sheffer)の縦棒演算」ともいう
 論理式は
定義2.11(NANDゲート)
 定義2.10のNAND演算を実現する2入
力論理ゲートをNANDゲートという
 回路図では右図の記号を用いる
=

X|Y = (X・Y) = X + Y = g14
76
論理ゲートと組合せ回路
(その他の論理ゲート)

定義2.12(否定論理和, NOR(Not OR)
OR を取り、その結果に NOT を施し、最終
の演算結果とする 2項論理演算を否定論理和あるいは
NOR という
 2個の演算項の
 演算記号には
↓ をあてる
 NORを「ピアース(Pierce)演算」ともいう
 論理式は
定義2.13(NORゲート)
 定義2.10のNOR演算を実現する2入力
論理ゲートをNORゲートという
 回路図では右図の記号を用いる
=

X↓Y = (X+Y) = X・Y = g8
77
論理ゲートと組合せ回路
(その他の論理ゲート)

定理2.2(NANDと結合則)
 NANDについては次のように結合則が成立しない
(X|Y)|Z ≠ X|(Y|Z)
 証明:
(左辺)=(X|Y)|Z=X・Y ・Z=X・Y+Z
(右辺)=X|(Y|Z)=X・ Y・Z=X+Y・Z

定理2.3(NORと結合則)
 NORについては次のように結合則が成立しない
(X↓Y)↓Z ≠ X↓(Y↓Z)
 証明:
(左辺)=(X↓Y)↓Z=X+Y+Z=X・Z+Y・Z
(右辺)=X↓(Y↓Z)=X+Y+Z=X・Y+X・Z
78
論理ゲートと組合せ回路

定義2.14(双対回路)
 ある論理関数
(その他の論理ゲート)
f に対応する論理回路 F が存在する.
従って、 f と双対な論理関数 fd に対応する論理回路 Fd
は論理回路として F と双対である.
F

と Fd を双対回路あるいは「双対な論理回路」という
演習: L =(X+Y)+X・Z に対応する論理回路、
双対な論理式、および双対な論理回路を示せ

X
Y
解答:
対応する論理回路
双対な論理式
双対な論理回路
Ld =(X・Y)・(X+Z)
Z
X
Y
Z
79
万能論理関数集合と論理回路

定義2.15(万能論理関数集合)

その要素を組合せると、任意の論理関数が表現できる論理関
数の集合を万能論理関数集合という

本講義では、万能論理関数集合を Ui (i=0, …)と表記する

Ui の要素を「万能論理関数」あるいは「万能性がある論理関
数」という

どんな論理式も標準形に変換し、NOT, AND, OR だけで表
せるので、
U0 ={ NOT, AND, OR }
80
万能論理関数集合と論理回路
定義2.16(AND/OR形式)

U0 によって表した論理関数(論理式)をAND/OR形式という
ド・モルガンの定理およびANDとORの双対性により、
U1 ={ NOT, AND }
U2 ={ NOT, OR }

定理1.13(De Morganの定理)
X・Y=X+Y
X・Y=X+Y
⇔
⇔
X+Y= X・Y
X+Y= X・Y (系1.15)
AND/OR形式の中の全てのORにこれを適用するとAND(とNOT)だけになる
AND/OR形式の中の全てのANDにこれを適用するとOR(とNOT)だけになる
81
万能論理関数集合と論理回路
論理回路上でのド・モルガンの定理

定理1.13(De Morganの定理)
X・Y=X+Y
(1)
(1) X
Y
(2)
⇔
双対
X+Y= X・Y
(3)
(4)
(3)
Z
(2)
X
Y
Z
X
Y
(4)
Z
X
Y
Z
X
Y
Z
82
万能論理関数集合と論理回路
論理回路上でのド・モルガンの定理

定理1.13(De Morganの定理)
X・Y=X+Y
(1)
(2)
⇔
双対
X+Y= X・Y (系1.15)
(3)
(4)
演習:点線の中を埋めよ
(1)
(2)
X
Y
X
Y
(3)
Z
(4)
Z
X
Y
Z
X
Y
Z
83
万能論理関数集合と論理回路
定義2.17(NOT-AND形式)

U1 によって表した論理関数(論理式)を NOT-AND形式 ある
いは単に AND形式 という
定義2.18(NOT-OR形式)

U2 によって表した論理関数(論理式)を NOT-OR形式 ある
いは単に OR形式 という
84
万能論理関数集合と論理回路
定理2.4(NANDの万能性)

任意の論理関数は NAND だけで表せる.従って、次の U3 も
万能論理関数集合である、
U3 ={ NAND }
証明: NAND演算(“|”)によって NOT,AND,OR が表せればよい
→ 教科書 p.68 l.6
別証明: NAND演算(“|”)によって NOT,ANDが表せればよい
定義2.19(NAND形式)

U3 によって表した論理関数(論理式)を NAND形式 という
85
万能論理関数集合と論理回路
定理2.5(NORの万能性)

任意の論理関数は NOR だけで表せる.従って、次の U4 も万
能論理関数集合である、
U4 ={ NOR }
定義2.20(NOR形式)

U4 によって表した論理関数(論理式)を NOR形式 という
NAND形式やNOR形式は

論理式表現としては分かりにくい

NANDゲート、もしくは、 NORゲートだけで全ての論理回路を
実現できることを意味する
86
Gate Array(ゲートアレイ) LSI

セミカスタムLSIの一種
 NANDゲートあるいはNORゲートのいずれかになり得る基本ハード
ウェア部品をICの中に規則正しく敷き詰めたもの
 未配線のゲートアレイを予め大量生産しておき(=安価)、配線情報
は回路設計者が後で指定する(=開発納期短縮)
チップ
IOパッド
セル領域
配線領域
チャネル型Gate Array
チャネルレス型Gate Array
87
万能論理関数集合と論理回路

NANDゲートによる基本ゲートの実現
 NOT:
X=Z → X・X=X=Z
 AND:
X・Y=Z→ (X・Y)・(X・Y)=X・Y=X・Y=Z
 OR:
X
X
X+Y=Z → (X・X)・(Y・Y)=X・Y=X+Y=Z
X
Y
Z
Z
X
Y
X
Y
Z
Z
X
Z
NORゲートによる基本ゲートの実現も同様
Z
Y
88
万能論理関数集合と論理回路
定義2.21(AND/OR回路)

NOT, AND, OR の3種類の基本論理ゲートだけで構成する論
理回路を AND/OR回路 という

AND/OR形式の(U0による)論理関数に対応する論理回路で
ある

AND-OR回路: 積和型論理式に対応する回路
(NOT-AND-OR回路とも言える)
→ 教科書 p.71 図2.21 のような回路

OR-AND回路: 和積型論理式に対応する回路
(NOT-OR-AND回路とも言える)
→ 教科書 p.71 図2.22 のような回路
89
万能論理関数集合と論理回路
定義2.22(AND回路)

NOT, AND の2種類の基本論理ゲートだけで構成する論理回
路を AND回路 という

AND形式 の(U1による)論理関数に対応する論理回路である
定義2.23(OR回路)

NOT, OR の2種類の基本論理ゲートだけで構成する論理回路
を OR回路 という

OR形式 の(U2による)論理関数に対応する論理回路である
90
万能論理関数集合と論理回路
定義2.24(NAND回路)

NANDゲートだけで構成する論理回路を NAND回路 という

NAND形式の(U3による)論理関数に対応する論理回路である
定義2.25(NOR回路)

NORゲートだけで構成する論理回路を NOR回路 という

NOR形式の(U4による)論理関数に対応する論理回路である
91
万能論理関数集合と論理回路

万能論理関数集合
U0 ={ NOT, AND, OR }
 AND/OR形式:
U0 によって表した論理関数(論理式)
 AND/OR回路:AND/OR形式の論理関数に対応する論
理回路
 AND-OR回路:
積和形論理式に対応する回路
 OR-AND回路:
和積形論理式に対応する回路
U1 ={ NOT, AND } ... AND形式、AND回路
U2 ={ NOT, OR } ... OR形式、OR回路
U3 ={ NAND } ... NAND形式、NAND回路
U4 ={ NOR } ... NOR形式、NOR回路
92
組合せ回路の最適化設計
定義2.26(論理回路の解析)

論理回路図が与えられて、それを元にその論理回路を表現す
る論理関数を求めることを、「論理回路の解析」という

「論理回路の解析」 は 「論理回路⇒論理関数変換」 である
定義2.27(論理回路の設計)

解析とは逆に、論理関数が与えられて、それを元にその論理関
数を実現する論理回路を求めることを、「論理回路の設計ある
いは合成」という

「論理回路の設計(合成)」 は 「論理関数⇒論理回路変換」 で
ある
93
組合せ回路の最適化設計
組合せ回路の解析
AND/OR回路の解析手順
1. 各論理ゲート(NOT,AND,OR)の出力を入力による論理式で
表す
2. 1の操作を最前段の入力端子(=論理変数)から最後段の出
力端子(=論理関数値)に向かって順に行う
3. 途中結果のNOTは適宜ド・モルガンの定理により、リテラルに
展開する
例題2.3
例題2.4
AND/OR回路の解析 (教科書 p.76)参照
NAND回路の解析 (教科書 p.77)参照
94
組合せ回路の最適化設計

例題:
下記の回路を解析し、積和形(AND-OR形)論理式で表現しな
さい
X
f (X,Y)

解答:
α
Y
α=X・Y
f =X+α=X+X・Y =X・(X・Y)=X・(X・Y)=X・Y

例題:
上記の回路を変形して、回答を求めて見よう
X
X
X
Y
Y
Y
X
Y
95
組合せ回路の最適化設計

演習:
下記の回路を解析し、積和形(AND-OR形)論理式で表現しな
さい
X
Y
Z

解答:
α
f (X,Y,Z)
γ
β
α=X+Y、 β=X・Z、 γ=α+β
f =Y・γ=Y・((X+Y)+X・Z)=Y・((X+Y)+X・Z)
=Y+(X+Y+X・Z)=Y+(X・Y・(X・Z))
=Y+(X・Y・X・Z)=Y+X・Y・Z=Y+X・Z
96
組合せ回路の最適化設計

演習: f =Y+X・Y・Z=Y+X・Z
吸収則は回路変形では見つけにくい
回路を AND-OR回路に変形して、解を求めてみよう
X
Y
Z
X
Y
Z
X
Y
Z
X
Y
Z
X
Y
X
Y
Z
Z
97
組合せ回路の最適化設計


演習: f (X,Y,Z)=Y+X・Z の標準積和形論理式を求めよ
解答: f (X,Y,Z)=Y+X・Z
=(X・Z+X・Z+X・Z+X・Z)・Y+(Y+Y)・X・Z
=X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z
010
011
110
111
001
011

=X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z+X・Y・Z
演習: 上記の標準積和形論理式に対応する論理回路を求めよ

解答:
X
Y
Z
98
組合せ回路の最適化設計

演習: f (X,Y,Z)=Y+X・Z に対応する論理回路を求めよ

解答:
X
Y
Z
99
論理回路および論理設計
2011年度 (第5回)
中島 克人
情報メディア学科
[email protected]
組合せ回路の最適化設計

最適化の目的

論理ゲートの個数が減り、配線が簡単になる
⇒論理回路の実装コストが安くなる
⇒空間的に小さくできる
⇒高速に動作する
⇒故障し難くなる

論理関数の簡単化 vs. 論理回路の最適化

論理演算の個数を減らす ⇒ 論理ゲートの個数を減らす
論理関数の簡単化
⇒
論理回路の最適化
論理関数の最小化
⇒
論理回路の最適化
101
組合せ回路の最適化設計

最適化設計の具体的目的
A. 空間サイズの削減
B. 時間サイズの削減

両立するのか?
定義2.28(段数)

論理回路の入力端子から出力端子に至るまでに通過する
論理ゲート数を段数という

入力端子に近い方を前段、それから遠い方を後段という
特に断りがない場合には、多入力論理(ANDとOR)ゲートも
「1個」、「1段」と数え、NOTゲートは数えなくともよい
 断り書きの例:

『4入力までのANDゲートまたはORゲートは「1段」と数えてよい』
102
組合せ回路の最適化設計

最適化設計の評価指標
A. 空間最適化
「論理回路を構成するのに必要な論理ゲートの総数」を最
小にする
B. 時間最適化
「論理回路の入力端子から出力端子に至るまでに通過する
論理ゲートの段数」を最小にする
即ち、
入力端子から出力端子に至るまでの経路(パス(path))は
普通複数あるが、最も多い段数(最長)の経路(=クリティカ
ルパス(critical path))の段数を最小にする
103
組合せ回路の最適化設計

演習:
下記の3つの回路のそれぞれのクリティカルパスを求めなさい

解答: 左記
X
Y
Z
3段
X
X
Y
Y
Z
Z
2段
2段
104
組合せ回路の最適化設計

多入力論理ゲートと2入力論理ゲート
n入力ANDゲートは(n-1)個の2入力ANDゲートで実現で
きる
 その時の段数は、 log2(n) ( log2(n)を最も近い整数に
CEILING(=切り上げ))

入力数
n=7
=
ゲート段数 log2(7)

n入力ORゲートも同様
105
組合せ回路の最適化設計

n入力NANDゲートやn入力NORゲートではどうか?
⇒結合則が成り立たないため、上記は不成立
⇒n入力NANDゲートは、n入力ANDゲートと1個のNOT
ゲートからなり、n入力ANDゲートの部分は上記が成り立
つ
入力数
n=7
=
ゲート段数 log2(7)
⇒n入力NORゲートも同様
106
組合せ回路の最適化設計

論理回路の段数を論理関数に適用したのが次元

定義2.29(次元)
論理関数の論理積(AND)項と論理和(OR)項を、多項演
算も許して、1つずつ括弧でくくると、括弧の重なり(ネスト
(nest))ができる.多重の括弧のそれぞれは、最内側を最
優先とし、外側へ向かって低くなる演算順位を示す
 最内側から外側に向かって、1, 2, … と演算順位を付けたと
き、これを次元あるいはレベル(level)という


その論理式における最大次元を単に次元ということがある
(なお、次元は、実際には冗長で省略できる括弧も数える)

例: ((X・Y・Z)・(Y+(Z・X))) は 3次元

演習: (((X+Y)+ Z・X )・(Y+Z・X)) の次元は 3次元
107
組合せ回路の最適化設計

演習: ((X+ Y・Z )・Z)+(Y+Z・X) の次元は

解答:(((X+(Y・Z))・Z)+(Y+Z・X)) なので 4次元

演習: ((X+ Y・Z )・Z)+(Y+Z・X) を忠実に実現す
る論理回路を示し、クリティカルパスの段数を求めよ

解答:
X
Y
Z
クリティカルパス
4段
108
論理関数と論理回路の最小化

論理関数の最小化とそれに連動する論理回路の最小化
を併せて論理最小化という

論理最小化された論理関数や論理回路を最小形あるい
は最簡形という

定義2.30(包含)


ある論理積項Qの値を“1”にする変数値の組合せ全てに対
して、別の論理積項Pが“1”になるとき、「PはQを包含する」
あるいは「QはPに包含される」という
例: P=X・Z は Q=X・Y・Z を包含する

PがQを包含するとき、Pに現れるリテラルは必ずQにも現れ
る

Pを表すリテラル数の方がQを表すリテラル数よりも少ない
109
論理関数と論理回路の最小化

カルノー図による積和形の表現(復習)
隣接した2個のマス目 ⇒ (n-1)変数の論理積項
隣接した4個のマス目 ⇒ (n-2)変数の論理積項
‥‥

例: P=X・Z は Q=X・Y・Z を包含する
論理積項 Q=XYZ
論理積項 P=XZ
XY
ZW
00
01
11
10
0 0
0
0
1
1
0 1
0
0
1
1
1 1
0
1
1
0
1 0
0
0
1
0
110
論理関数と論理回路の最小化

演習
1. 次の関数をカルノー図に表しなさい
f(A,B,C,D)= AB + ACD + BCD + ABCD + ABC
2. この関数の論理積項の内、包含関係にあるものを列挙し
なさい

解答
1. 右図
2. ABCはABに、また、
ABCDはACDに
包含される
AB
CD
00
01
11
10
0 0
0
0
1
0
0 1
0
1
1
0
1 1
0
0
1
0
1 0
1
1
1
0
111
論理回路および論理設計
2011年度 (第6回)
中島 克人
情報メディア学科
[email protected]
論理関数と論理回路の最小化

定義2.31(主項)

任意の論理関数 f において、相異なる変数によって構成する
論理積項を ti とする.
 ti=1
となる論理積項 ti の全て(n個)を論理和(OR)で結んだ
積和形によって f を表すと下記となる.
f = t1 + t2 + ‥‥ + tn ( i=1, ‥ , n )

即ち、ti =1 の時、f =1 である. この時、ある論理積項 ti がそ
れ以外の論理積項 tj ( j≠i )のいずれにも包含されない時、こ
の ti を主項という

主項 ti を構成する変数の内から任意の1個を取り除いて出来
る論理積項で、 ti’ =1 となるものは存在しない
113
論理関数と論理回路の最小化

積和形論理式において、主項でない論理積項は主項に吸収され
るので、任意の論理関数 f は主項だけの論理和で表現できる

定理1.11(吸収則)
X+ X・Y =X
⇔ X・(X+Y)=X
X+ X・Y =X+Y ⇔ X・(X+Y)=X・Y (系1.12)

主項の例:
f = X・Z+X・Y+X・Y・Z
において、X・Z と X・Y が主項
(X・Y・Z は X・Z に包含される)
 即ち、 f = X・Z+X・Y+X・Y・Z = X・Z+X・Y
主項
主項
主項ではない
主項
主項
114
論理関数と論理回路の最小化

定義2.32(最小積和形)


主項だけで構成する積和形の内、主項(論理積項)の総数
が最小のものを最小積和形という
例: f = X・Y+X・Z+X・Y・Z+Y・Z
主項
Y・Z 主項
Z\X Y 0 0
0
0
1
0
01
1
0
11
1
1
X・Z
10
0
1
X・Y
X・Y・Z
X・Zに包含される
ため、主項ではない
主項
f = X・Y+X・Z+X・Y・Z+Y・Z ...... 主項以外を含む
...... 主項のみを含む
= X・Y+X・Z+Y・Z
= X・Z+Y・Z ...... 主項の数が最小 ⇒ 最小積和形
115
論理関数と論理回路の最小化


定義2.33(必須主項と特異最小項)

任意の論理式において、ある主項 P だけが、標準積和形を
構成する最小項(論理積項)m を包含する時、P を必須主
項(あるいは必須項)という

また、m を特異最小項という
例: f = X・Y+X・Z+X・Y・Z+Y・Z
必須主項 必須主項
Z\X Y 0 0
0
0
1
0
01
1
0
特異最小項
11
1
1
10
0
1
特異最小項
必須ではない主項
116
論理関数と論理回路の最小化

最小積和形を求める手順

ポイント:



最小積和形に現れる論理積項は必ず主項である
必須主項は最小積和形を構成する主項として必須である
手順:
1. 論理関数を展開して標準積和形にする
2. 主項の決定: 全ての主項を見つける
3. 必須主項の決定: 2で求めた主項の中から全ての必須主項を見つ
ける
4. 主項の選択: 3で求めた必須主項が包含しない最小項を包含する
主項を、2で求めた主項の中から選択する. ただし、必要な主項数
が最小になるように選択する
5. 3の必須主項と 4で選択した主項とを OR で結んだものが最小積
和形である
117
論理関数と論理回路の最小化

例:1. 標準積和形
⇒ 代わりにカルノー図を作成にする
2. 主項の決定: 全ての主項を見つける ⇒ 出来るだけ大きく囲う
3. 必須主項の決定: 2で求めた主項の中から全ての
必須主項を見つける
⇒ 最小項を単独で囲う主項
4. 主項の選択: 3で求めた必須主項が包含しない最
小項を包含する主項を、2で求めた主項の中から選
択する. ただし、必要な主項数が最小になるように
選択する
⇒ 最小項を複数の主項で囲う場
合に、そのどれか一つを選ぶ
5. 3の必須主項と 4で選択した主項とを OR で結んだ
ものが最小積和形である ⇒ 選ばれた主項のORが解
Z\X Y 0 0
0
1
1
0
01
1
1
11
0
1
10
0
1
118
論理関数と論理回路の最小化

演習: 下記のカルノー図において、特異最小項、必須主
項を論理積項で示せ
CD\AB 0 0
00
0
01
1
11
1
10
0
01
1
0
0
1
11
0
0
0
1
10
1
1
1
1
:特異最小項
必須主項

解答: 特異最小項は A・B・C・D、A・B・C・D、A・B・C・D、A・B・C・D
必須主項は A・B、 B・D、 A・B・D

演習: 上記のカルノー図の最小積和形の論理式を求めよ

解答: f = A・B+B・D+A・B・D+A・C・D
119
論理関数と論理回路の最小化

論理回路の2段論理最小化

最小積和形は、積和形を空間最適化した論理式であるから、
それに対応する論理回路は空間最適化された、AND-OR
回路である. 従って、時間サイズは 2段である

最小積和形は空間最適化した2段論理回路の表現法といえ
る
120
論理関数と論理回路の最小化

カルノー図による2段論理最小化(=最小積和形を求める)
1. 任意の積和形をカルノー図として表現する
2. 1 のカルノー図によって2段論理最小化を行う
3. 2のカルノー図から最小積和形を読み取る

演習: 下記のカルノー図の2段論理最小化を行い、
最小積和形の論理式を求めよ
CD\AB 0 0
00
1
01
0
11
0
10
1

01
1
1
1
1
11
1
1
1
1
10
1
0
1
0
:特異最小項
解答: f = B+C・D+A・C・D+A・D
121
論理関数と論理回路の最小化

演習: 次の関数の2段論理最小化を行い、最小積和形
の論理式を求めよ
f = A・B・C+A・B・C+A・B・C+A・B・C+A・B・C+A・B・C

解答: カルノー図は下記となる
C\AB 0 0
0
0
1
1
01
1
1
11
1
1
10
1
0
カルノー図で主項を求めると上記3つとなり、これらは全て必
須主項である。また、他に選択すべき主項はない。
故に、
f = B+A・C+A・C
122
論理関数と論理回路の最小化

演習: f = A・B・C・D+A・C+A・B・D+A・B・D+A・C・D
のカルノー図を示せ

解答: 左図
CD\AB 0 0
1
00
0
01
0
11
1
10
01
0
1
1
1
11
1
1
0
0
10
1
1
0
1
:特異最小項
演習: 特異最小項に
印を付け、必須主項を挙げよ
 解答: 特異最小項は上図の
印
必須主項は B・D、 A・C
 演習: 上記の論理式の最小積和形の論理式を求めよ
 解答: f = B・D+A・C+A・B・D+A・B・C


演習:上記も含め、計何種類の解答があるか?

解答:3種類
123
論理関数と論理回路の最小化
 復習:カルノー図による
論理関数の最小化
1. 標準積和形を求める
2. 全ての主項を見つける
Z\X Y 0 0
0
1
1
0
01
1
1
11
0
1
10
0
1
⇒ カルノー図を作成にする
⇒ 出来るだけ大きく囲う
3. 2で求めた主項の中から全ての必須主項を見つける
⇒ 最小項を単独で囲う主項
4. 3で求めた必須主項が包含しない最小項を包含する
主項を、2で求めた主項の中から選択する. ただし、必
要な主項数が最小になるように選択する
⇒ 最小項を複数の主項で囲う場
合に、そのどれか一つを選ぶ
5. 3の必須主項と 4で選択した主項とを OR で結んだも
のが最小積和形である
⇒ 選ばれた主項のORが解
124
論理関数と論理回路

定義2.5(ドントケア/don’t care)
 n変数論理関数(あるいは
n入力論理回路)において、n個
の変数値の組(あるいは n本の入力信号の組)に対して、
論理関数値(あるいは出力信号)が定義されていないことを
ドントケア(don’t care)、組合せ禁止、不完全定義 などと
いう
 ある入力の組合せを禁止する
 ある入力の組合せが生じない/冗長である/無効である
 ある入力の組合せがあろうとなかろうとどちらでも構わない
 ある入力の組合せに対応する出力が
0でも 1でもどちらでも構わない/未定義である
125
論理関数と論理回路の最小化
2段論理最小化におけるドントケアの利用

関数値がドントケアを含む場合、論理最小化に有効であるな
らば、ドントケアを “1” と見なす
カルノー図による最小化の時のドントケアの利用例
カルノー図上の「-(ドントケア)」は、
(“1”のます目を)より大きく囲むために有効であれば、“1”と見なす
あるいは、(“1”のます目を)囲む個数をより少なく出来るならば
“1”と見
なす
\ AB
CD\ 0 0 0 1 1 1 1 0
00
01
11
10
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
B・D
が
don’t
care
\ AB
CD\ 0 0 0 1 1 1 1 0
00
01
11
10
0
0
0
0
1
-
-
1
1
-
-
1
0
1
1
0
126
論理関数と論理回路の最小化
演習:
ドントケアを利用したカルノー図による論理最小化

(1) f =A・C+A・B・D+A・B・C ( ドントケアなし )

(2) f =A・C+A・B・D+A・B・C ( A・B・Cはドントケア )
 解答(1)
 解答(2)
\ AB
CD\ 0 0 0 1 1 1 1 0
\ AB
CD\ 0 0 0 1 1 1 1 0
00
01
11
10
00
01
11
10
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
-
-
1
1
(1) f =A・C+A・B・D+A・B・C
(2) f =A・C+A・D+B・C
127
論理関数と論理回路の最小化
演習:
ドントケアを利用したカルノー図による論理最小化

(3) f =A・C+A・B・D+A・B・C ( C・Dはドントケア )

(4) f =A・C+A・B・D+A・B・C ( Cはドントケア )
 解答(3)
 解答(4)
\ AB
CD\ 0 0 0 1 1 1 1 0
\ AB
CD\ 0 0 0 1 1 1 1 0
00
01
11
10
00
01
11
10
1
-
0
0
0
-
0
0
0
-
1
1
0
-
1
1
-
-
0
0
-
-
0
0
-
-
1
1
-
-
1
1
(3) f =A・C+A・B・C
(4) f =A
128
練習問題

カルノー図で主項を求める(出来るだけ大きく 1 を囲う)のを間違うと以降
の設問に正しく答えられないので,主項を正しく求める事は最重要!!

問題:以下のカルノー図の主項を全て求めよ
(他の人と答え合わせをして見よう!)
XY
Z
0
1
AB
00
0
1
AB
CD
00
0 0
0
0 1
0
1 1
1
1 0
1
01
0
0
01
0
0
1
0
11
0
1
11
0
1
1
1
10
1
1
10
1
0
1
1
C
0
1
00
1
1
01
0
1
11
1
0
10
1
1
XY
ZW
0 0
0 1
1 1
1 0
00
1
0
0
1
01
0
0
1
0
11
1
10
1
1
0
-
-
1
1
129
論理回路および論理設計
2011年度 (第7回)
中島 克人
情報メディア学科
[email protected]
論理関数と論理回路の最小化

カルノー図による2段論理最小化の特徴
長所:


手順が直感的で分かり易い
必要な主項の選択が容易にできる
短所:


5変数以上になると隣接関係が分かり難くなるため、
上記長所はなくなる
教科書 p.94 図2.38 参照
変数が多い場合
⇒ クワイン-マクラスキ法(Q-M法)による2段論理最小化
131
論理関数と論理回路の最小化
 クワイン-マクラスキ法(Q-M法)
最小項表(真理値表の「関数値が1の行」だけのもの)から
出発する
真理値表
X Y Z
f
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
最小項表
X Y Z
f
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
最小項
X・Y・Z
X・Y・Z
X・Y・Z
X・Y・Z
X・Y・Z
 各行(最初は最小項を表す)の併合を、リテラル消去表と
主項-最小項表を作成しながら行い、最小積和形を求める
132
論理関数と論理回路の最小化
 Q-M法の準備
最小項表の例
(教科書 p.96表2.3)
X Y Z
f
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
最小項
X・Y・Z
X・Y・Z
X・Y・Z
X・Y・Z
X・Y・Z
併合の例 (教科書 p.96表2.4)
併合
X Y Z 最小項
1 1 1 X・Y・Z
1 1 0 X・Y・Z
積項
1 1 - X・Y
XYZ
ドントケア
( don’t care )
併合
X Y Z 最小項
1 1 1 X・Y・Z
1 1 0 X・Y・Z
0 1 0 X・Y・Z
積項
1 1 - X・Y
- 1 0 Y・Z
XYZ
ドントケア
( don’t care )
133
論理関数と論理回路の最小化
 Q-M法による
2段論理最小化の手順
1. 主項の決定
(a) 最小項表を元に、初期表を構成する
(b) 初期表を行の併合によって更新する
(更新後の表を「リテラル消去表」という)
(c) 併合できる行がなくなるまで、リテラル消去表の更新を繰り返す
(d) 1(c)を繰り返して最後に残った各行が主項にあたる
2. 必須主項の決定と主項の選択
(a) 主項と最小項との対応表(「主項-最小項表」という)を作成する
(b) 主項-最小項表によって必須主項の決定と必要な主項の選択
を行う
3. 必須主項を含む選択した主項全てを OR で結んだものが
最小積和形である
134
Q-M法による 2段論理最小化の手順
1. 主項の決定
ラベル
1
(a) 初期表の構成
4
最小項表の左にラベル欄、
8
右に主項欄を設ける
3
6
9
10
11
14
 関数値の列は不要

B
0
1
0
0
1
0
0
0
1
C
0
0
0
1
1
0
1
1
1
D 主項
1
0
0
1
0
1
0
1
0
行グループ
1が1つ
1が2つ
1が3つ
ラベルは任意


A
0
0
1
0
0
1
1
1
1
ここでは変数値の組を10進数読み
「行グループ」分けすることにより、併合の相手が見つけやすい

併合相手の候補行は隣接グループ(ハミング距離1)の中に!
135
Q-M法による 2段論理最小化の手順
1. 主項の決定
(b) 行の併合
初期表/リテラル消去表(1)
ラベル
1
4
8
3
6
9
10
11
14
A
0
0
1
0
0
1
1
1
1
B
0
1
0
0
1
0
0
0
1
C
0
0
0
1
1
0
1
1
1
D 主項
1
0
0
1
0
1
0
1
0
リテラル消去表(2)
ラベル
1,3(2)
1,9(8)
4,6(2)
8,9(1)
8,10(2)
3,11(8)
6,14(8)
9,11(2)
10,11(1)
10,14(4)
A B C D 主項
0 0 - 1
- 0 0 1
0 1 - 0
1 0 0 -
1 0 - 0
- 0 1 1
- 1 1 0
1 0 - 1
1 0 1 -
1 - 1 0

併合した行を新しいリテラル消去表に転記し、主項欄に
を入れる

隣接した「行グループ」の各行どうしの全ての組合せを吟味する
136
Q-M法による 2段論理最小化の手順
1. 主項の決定
(c) 併合が出来なくなるまで、リテラル消去表の更新を続ける
リテラル消去表(2)
ラベル
1,3(2)
1,9(8)
4,6(2)
8,9(1)
8,10(2)
3,11(8)
6,14(8)
9,11(2)
10,11(1)
10,14(4)
A B C D
0 0 - 1
- 0 0 1
0 1 - 0
1 0 0 -
1 0 - 0
- 0 1 1
- 1 1 0
1 0 - 1
1 0 1 -
1 - 1 0
主項
主項
リテラル消去表(3)
*p
ラベル
主項
1,3,9,11(2,8) - 0 - 1 *s
8,9,10,11(1,2) 1 0 - - *t
A B C D
*q
主項
*r
(d) 併合されなかった行は主項
主項
137
Q-M法による 2段論理最小化(演習)

演習: f=A・B・C+B・C・D+A・C・D+A・B・C+B・C・D
のQ-M法のための初期表からリテラル消去表を用いて
リテラル消去表(2)
主項を求めよ

解答:
初期表/リテラル消去表(1)
ラベル
2
4
3
5
10
11
13
15
A
0
0
0
0
1
1
1
1
B
0
1
0
1
0
0
1
1
C
1
0
1
0
1
1
0
1
D 主項
0
0
1
1
0
1
1
1
ラベル
A B C D 主項
2,3(1)
2,10(8)
4,5(1)
3,11(8)
5,13(8)
10,11(1)
11,15(4)
13,15(2)
0
-
0
-
-
1
1
1
ラベル
0
0
1
0
1
0
-
1
1 -
1 0
0 -
1 1
0 1
1 -
1 1
- 1
*p
*q
主項
*r
*s
A B C D 主項
2,3,10,11(1,8) - 0 1 - *t
138
Q-M法による 2段論理最小化の手順
2. 必須主項の決定と主項の選択
(a) 「主項-最小項表」を作成する
(「どの最小項を元にして、その主項を構成したか」を示す表)
主項-最小項表
(b)-1 必須主項の決定

特異最小項を含む
主項が必須主項
必須主項
選択した
主項
最小項(ラベル)
主項(ラベル) 1 3 4 6 8 9 10 11 14
4,6 p
◎
○ ○
6,14 q
○
○
10,14 r
○
○
1,3,9,11 s ◎
○ ◎
○
○
○
8,9,10,11 t
◎
○ ○ ○ ○
(b)-2 必要な主項の選択を行う

◎ : 特異最小項
必須主項に含まれない最小項(残り)を含む主項を選択する
残りの最小項を多く含む主項を優先する
○の多い(ラベルが長い=リテラル数が少ない)主項を優先する
139
Q-M法による 2段論理最小化の手順
3. 最小積和形を求める
必須主項を含む選択した主項全てを OR で結んだものが最小積和形で
ある
主項-最小項表
必須主項
選択した
主項
最小項(ラベル)
主項(ラベル) 1 3 4 6 8 9 10 11 14
4,6 p
◎
○ ○
6,14 q
○
○
10,14 r
○
○
1,3,9,11 s ◎
○ ◎
○
○
○
8,9,10,11 t
◎
○ ○ ○ ○
A
0
-
1
-
1
B C D
1 - 0
1 1 0
- 1 0
0 - 1
0 --
論理積項
A・B・D
B・C・D
A・C・D
B・D
A・B
◎ : 特異最小項
 最小積和形は、
f(A,B,C,D)=A・B・D + B・C・D + B・D + A・B
 または、
f(A,B,C,D)=A・B・D + A・C・D + B・D + A・B
140
Q-M法による 2段論理最小化(演習)

演習: f=A・B・C+B・C・D+A・C・D+A・B・C+B・C・D
のQ-M法により求めた主項から主項-最小項表を作成
して必須主項を求め、最後に最小積和形を求めよ

解答:
必須主項
選択した
主項
主項-最小項表
主項(ラベル)
4,5 p
5,13 q
11,15 r
13,15 s
2,3,10,11 t
最小項(ラベル)
2 3 4 5 10 11 13 15
◎ ○
○
○
○
○
○
○ ○
◎
◎
○ ◎
○
○ ○
A B
0 1
- 1
1 -
1 1
- 0
C D
0 -
0 1
1 1
- 1
1 -
論理積項
A・B・C
B・C・D
A・C・D
A・B・D
B・C
◎ : 特異最小項
 最小積和形は、
f(A,B,C,D)=A・B・C + A・B・D + B・C
141
Q-M法による 2段論理最小化(演習)

演習: f=A・C+A・B・C・D+A・B・C・D+A・B・C
のQ-M法のための初期表からリテラル消去表を用いて
リテラル消去表(2)
主項を求めよ

ラベル
解答:
初期表/リテラル消去表(1)
ラベル
0
1
10
11
13
14
15
A
0
0
1
1
1
1
1
B
0
0
0
0
1
1
1
C
0
0
1
1
0
1
1
D 主項
0
1
0
1
1
0
1
A B C D 主項
0 0 0 - *p
0,1(1)
10,11(1) 1 0 1 -
10,14(4) 1 - 1 0
11,15(4) 1 - 1 1
13,15(2) 1 1 - 1 *q
14,15(1) 1 1 1 -
ラベル
主項
A B C D 主項
10,11,14,15(1,4) 1 - 1 -
故に、主項は A・C、A・B・D、A・B・C の3つ
*r
142
Q-M法による 2段論理最小化(演習)

演習: f=A・C+A・B・C・D+A・B・C・D+A・B・C
のQ-M法により求めた主項から主項-最小項表を作成
して必須主項を求め、最後に最小積和形を求めよ

解答:
必須主項
主項-最小項表
主項(ラベル)
0,1 p
13,15 q
10,11,14,15 r
最小項(ラベル)
0 1 10 11 13 14 15
◎ ◎
○
○
◎
○
○
◎
◎
○ ◎
○
○ ○
A
0
1
1
B
0
1
-
C D 論理積項
0 - A・B・C
- 1 A・B・D
1 -
A・C
◎ : 特異最小項
 最小積和形は、
f(A,B,C,D)=A・B・C + A・B・D + A・C
143
Q-M法による 2段論理最小化(演習)

演習: f=A・B・C+B・C・D+A・C・D+A・B・C+B・C・D
のQ-M法により求めた主項から主項-最小項表を作成
して必須主項を求め、最後に最小積和形を求めよ

解答:
必須主項
選択した
主項
主項-最小項表
主項(ラベル)
4,5 p
5,13 q
11,15 r
13,15 s
2,3,10,11 t
最小項(ラベル)
2 3 4 5 10 11 13 15
◎ ○
○
○
○
○
○
○ ○
◎
◎
○ ◎
○
○ ○
A B
0 1
- 1
1 -
1 1
- 0
C D
0 -
0 1
1 1
- 1
1 -
論理積項
A・B・C
B・C・D
A・C・D
A・B・D
B・C
◎ : 特異最小項
 最小積和形は、
f(A,B,C,D)=A・B・C + A・B・D + B・C
144
論理関数と論理回路の最小化
 Q-M法による
2段論理最小化の特徴
長所:


数値化が簡単で、コンピュータ処理に向く
即ち、多変数論理関数にも適用可
短所:


手順が少々面倒(特に主項の選択操作が手間)
カルノー図に比し、人間が行う最適化としては直感性で
劣る
145
論理回路および論理設計
2011年度 (第8回)
中島 克人
情報メディア学科
[email protected]
論理関数と論理回路の最小化
多段論理最小化
ファクタリング(factoring)
 定理1.10(分配則)を用いて、論理式から共通項をくくり出す
操作
 2項論理演算数SB(ANDとORの総数)は減り、場合によって
は多項論理演算数 ST も減る

例1: ((X・Y)+(X・Z))=(X・(Y+Z))
SB=3, ST=3

SB=2, ST=2
例2: ((X・Y)+(X・Z)+(X・W))=(X・(Y+Z+W))
SB=5, ST=4

SB=3, ST=2
ファクタリングは次元を増やす操作であり、時間最適化とは逆
行する
147
論理関数と論理回路の最小化
 2項論理演算数SB
と多項論理演算数 ST およびゲート数の関係
例2: ((X・Y)+(X・Z)+(X・W))=(X・(Y+Z+W))
SB=5, ST=4
SB=3, ST=2
f1 =((X・Y)+(X・Z)+(X・W))
f2 =(X・(Y+Z+W))
X
Y
Z
W
X
Y
Z
W
f1
ST=4ゲート
X
Y
Z
W
f1
SB=5ゲート
X
Y
Z
W
f2
ST=2ゲート
f2
SB=3ゲート
148
論理関数と論理回路の最小化
定義2.34(多段論理最小化)


「論理回路が多段になる(時間サイズが増大する)ことを許
す」という前提で論理回路の空間最適化を図ることを多段論
理最小化という

論理式に対しては「次元が増えることを犠牲にして、多項論理
演算数ST あるいは 2項論理演算数SBを減らす操作」 に相当
例:
f(W,X,Y,Z)=W・X・Z+W・X・Y+W・X・Y+W・X・Z
SB=11
ST=5
=((W・X・(Y+Z))+(W・X・(Y+Z)))
=(((W・X)+(W・X))・(Y+Z))

SB=5
ST=5
ST は 5で変わらないが、SB は 6だけ減少し、次元は 2 から 3
に増えている
149
論理関数と論理回路の最小化
演習(多段論理最小化)

次の論理式の多項論理演算数ST および 2項論理演算数SB
はそれぞれ幾つか?
f =X・Y・Z+Y・Z・Q+X・Y・Z+Y・Z・W+X・Y・W
解答: SB=14, ST=6

上記論理式をファクタリングした論理式を求め、その ST およ
び SB をそれぞれ求めよ。
解答: 論理式は下記で、SB= 8 , ST= 5
f =X・Y・(Z+W)+Y・Z・(X+W+Q)
150
論理関数と論理回路の最小化
 ファクタリングは「共通項のくくり出し」という明確な操作である
 それ以外の式変形操作を用いて、任意の論理式に対して空間最
適化あるいは時間最適化を行うのは難しい
 理由は、

最適化の限界が分かりにくい

適用する変形操作を見つける一定の規則がない

変形過程が異なると最適化結果が異なる場合がある
 例:
F=X・W+Y・W+Z・W+Z・V+X・Y・Z
SB= 10
ST= 6
=(X+Y+Z)・W+(V+X・Y)・Z
SB= 7
ST= 6
=(X+Y)・W+(W+V+X・Y)・Z
SB= 7
ST= 6
151
中間試験
試験日時:
11月18日(金)
18:30~19:30
持込み可:
教科書、講義プリント、ノート
持込み不可:
試験用紙:
あらゆる電子機器(PC, 電卓, 携帯...)、
問題用紙,解答用紙共に回収します
コツ!:出来る問題から慎重かつ素早く解く
152
中間試験の注意
最初に20分程度講義をしてから中間試験
試験時の使用座席(自由席)
試験時間
で
18:30~19:30
教壇
持込み可:
教科書、講義プリント、ノート
持込み不可:
あらゆる電子機器(PC, 電卓, 携帯...)
試験用紙:
問題用紙B4 1枚
… 学籍番号・氏名記入、試験後回収
解答用紙A4 1枚
… 学籍番号・氏名記入、試験後回収
153
組合せ回路設計の実際
AND/OR回路の時間最適化設計
 時間最適化設計、即ち
2段論理最小化した AND/OR回路
は、積和形を AND-OR回路にテクノロジマッピングして得る

最小積和形からテクノロジマッピングするのが普通

同様に、OR-AND回路は(最小)和積形から得る
154
論理回路および論理設計
2011年度 (第9回)
中島 克人
情報メディア学科
[email protected]
中間試験の解答
問1.次の関数の双対な論理式を示せ(展開などは不要である。定数もそのまま記せ。)。(7点)
f(X,Y,Z)= ( Z・X + 0 + Y )・( 1・Y + X )
解
答
fd=((Z+X)・1・Y))+((0+Y)・X)
問2.下記の論理式の両辺が等しいものには○、
等しくないものには×を付けよ。(各7点)
(1)
A・B + A ○
+ C + C・A = A・( B + C ) + C
(2)
( X + Y + Z ) + Y・Z = ( X + Y )・( Y + Z )
解答
(1)
○
(2)
○
問3.次の関数 f(A,B,C) の関し、次の設問に解答せよ。
f(A,B,C)= A・( B + C ) + B・C
(a) この論理式を忠実に表す
AND/OR回路を示せ。(7点)
(b) 標準積和形論理式を示せ。(7点)
解答 (b) 標準積和形論理式
f=ABC+ABC+ABC+ABC+ABC
解答 (a) 回路図
A
B
f
C
156
中間試験の解答
問4.下図のAND/OR回路に関し、次の設問に解答せよ。
(a) この回路を忠実に表す論理式を示せ。(7点)
(b) この回路のクリティカルパスの段数を答えよ。(7点)
A
B
解答 (a) 論理式
●
F
C
●
F=( A・( B・C ))+( A + C )
(b) 解答(段数)
3 段
157
中間試験の解答
解答 (a) 真理値表
問5.次の関数 f(X,Y,Z) の最小積和形をカルノー図を
用いて求めたい。
f(X,Y,Z)= X・Y・Z + X・Y + X・Y・Z + X・Y
(a) まず、真理値表を示せ。(7点)
(b) 次に、カルノー図を示せ。(7点)
(c) 主項は幾つあるか答えよ。(7点)
(d) 必須主項を全て挙げよ。(7点)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
F
1
0
1
1
1
1
0
0
(e) 最小積和形論理式を示せ。(7点)
(b) 解答(カルノー図)
\ XY
Z\
00
0
1
1
0
01
1
1
11
0
0
(c) 解答(主項の数)
10
1
1
4
(d) 解答(必須主項)
X・Y , X・Y
(e) 解答(最小積和形論理式)
f= X・Y + X・Y + X・Z
または
X・Y + X・Y + Y・Z
158
中間試験の解答
問6.次の関数 f(A,B,C,D) の最小積和形を
カルノー図を用いて求めたい。
f(A,B,C,D)= B・C・D + A・C・D
+A・B・C・D + B・C・D + A・C・D
( ただし、 B・C・D はドントケア )
(a) まず、カルノー図を示せ。(8点)
(b) 最小積和形論理式を示せ。(8点)
解答 (a) カルノー図
\ AB
CD\
00
01
11
10
00
0
1
1
0
01
0
0
1
11
0
0
1
10
1
1
1
0
解答 (b) 最小積和形論理式
f=B・C+B・D+A・B・C
159
中間試験の結果(1/2)
中間試験得点分布
人
平均66.9点
14
12
10
8
6
4
2
0
<30
30
40
単位取得への道は
険しいです。
今から心を入れ
替えてやり直しです。
50
60
70
理解できていない
部分や計算ミスが
多いです。
復習が必要です。
80
90
100
点
よく出来ました。
これからも頑張って
ついて来て下さい。
160
組合せ回路設計の実際
テクノロジマッピング

論理関数を指定された形式の論理回路として設計(合成)す
ることをテクノロジマッピングという

与えられた論理関数を対応する形式の論理式に変換すれば、
それから直ちに指定された形式の回路を得ることが出来る

論理式(論理関数形式)と対応する論理回路の関係は下表
論理関数形式
論理回路形式
使用論理ゲート
(1) AND/OR形式
(a) 積和形
(b) 和積形
AND/OR回路
AND-OR回路
OR-AND回路
NOT, AND, OR
(2) AND形式
(3) OR形式
AND回路
OR回路
NOT, AND
NOT, OR
(4) NAND形式
(5) NOR形式
NAND回路
NOR回路
NAND
NOR
161
組合せ回路設計の実際
AND/OR回路の空間最適化設計
 多段を許して空間最適化(多段論理最小化)した
AND/OR
回路は、ファクタリングやカルノー図を用いて多段論理最小化
した論理式を求めた後、次の手順の操作で得ることができる
1. 演算順序が最高の演算(=最内側)から、より低い演算(=
外側)へ順に次元番号をふる
2. 各演算を 多入力ANDゲート か 多入力ORゲートに合成し、1
で付けた次元番号に従って、入力側(最小次元)→出力側(最
大次元)の順にそれらを結線していく。
その際、変数の否定(リテラル)がある場合には、(それが演
算順位が一番高いので)入力(端子)の直後に NOTゲートを
挿入する
162
組合せ回路設計の実際
例題:
次の論理式に対応した AND/OR回路を合成せよ
f =(A・B+A・B)・(C+D)
解答:
演算順序を明示するため、次元番号をカッコ右下に付与すると
次のようになる
f =( ((A・B)1+(A・B)1)2・(C+D)2)3
故に、
論理回路は右図となる
A
B
1
2
C
D
1
3
2
f
163
組合せ回路設計の実際
多出力組合せ回路の最適化設計(空間最適化)

2本以上(n本)の出力 Oi (i=1, ... , n) を持つ組合せ回路

対応する論理関数は fi(I1, ・・, Im)=Oi (i=1, ... , n)
論理最小化
I1
I1
Im
:
:
Im
:
f1
m入力
:
n出力
I1論理回路
Im
:
fn
O1
それぞれを論理最小化
することによって、
全体の最小化
をできるであろうか?
:論理最小化
On
164
組合せ回路設計の実際
 多出力組合せ回路の2段論理最小化設計(空間最適化)の手順
1. まず、各出力 Oi に対応する論理関数 fi の2段論理最小化
を行い、n個の最小積和形を得る
2. テクノロジマッピングによって、各々を AND/OR回路にする。
その際、論理関数(最小積和形)表現で同一の演算(NOT,
AND, OR)項は同一の論理ゲートを当てる(出力を共有する)
例: f1 = X・Y+Z・X
f2 = X・Y+Z・X
X
Y
Z
f1
f2
165
組合せ回路設計の実際
 多出力組合せ回路の多段論理最小化設計(空間最適化)も同様
1. まず、各出力 Oi に対応する論理関数 fi の多段論理最小化
を行い、n個の最小形を得る
2. テクノロジマッピングによって、各々を AND/OR回路にする。
その際、論理関数(最小積和形)表現で同一の演算(NOT,
AND, OR)項は同一の論理ゲートを当てる(出力を共有する)

ただし、最小の保証はない ... 何故か?
166
組合せ回路設計の実際
 多出力組合せ回路の多段論理最小化設計が困難な例
f1 =X・Z + X・W=X・(Z+W)
f2 =X・Y + X・Z + Y・Z + X・W + Y・W
=X・(Y+Z+W)+Y・(Z+W) ... (1)
=X・(Z+W)+Y・(X+Z+W) ... (2)
f2 を(1)にファクタリングすれば、(Z+W)を f1 と共有できるが、
(2)にファクタリングすれば共有項(共有ゲート)がない
167
組合せ回路設計の実際
NAND回路の設計
AND-OR回路からNAND回路に変換する
1. 最後段の ORゲートを等価な NANDゲートに変換する
2. 1の操作の際、変換した NANDゲートの入力に付けた NOT
は、前段の ANDゲートの出力位置に移動すればそれが
NANDゲートになる。
3. 最前段に必要な(入力の否定に対応する)NOTゲートは等価
な NANDゲートで置き換える
X
X
Y
Y
f
f

X
Y
f
X
Y
f
168
組合せ回路設計の実際
NAND回路の設計
AND/OR回路からNAND回路に変換する
1. 最後段の ゲートを等価な NANDゲートに変換する
2. 1の操作の際、変換した NANDゲートの入力に付けた NOT
は、前段の ゲートの出力位置に移動した上で、それを等価な
NANDゲートに変換する。
3. 2の操作を最前段の ゲートまで繰り返し行う。

169
組合せ回路設計の実際
演習:
解答:
下図のAND/OR回路を NAND回路に変換せよ
X
Y
f
Z
W
f
Z
W
X
Y
Z
W
X
Y
X
Y
f
f
Z
W
170
組合せ回路設計の実際
多出力NAND回路の設計

AND/OR回路からNAND回路に変換する際、変換した
NANDゲートの入力に付けた NOTは、前段の ゲートの出力
位置に移動するが、その主力が共有されている場合、その
NOTは共有先にも配置しなくてはならない
例:
NOR回路の設計

OR-AND回路からNOR回路に変換する操作は、
AND-OR回路からNAND回路に変換する操作と双対

AND/OR回路からNOR回路に変換する操作も、上記の
NAND回路への変換と同様
171
組合せ回路設計の実例
マルチプレクサ(multiplexer)
selector ともいう
 通常 2k-to-1マルチプレクサ

例:
4/
2-to-1マルチプレクサ
(2-to-1 MUX)
A1
S
束線表示
B1 A2
●
●
A4
B2
●
●
●
●
A1~4
B4
4/
●
●
S
●
●
=
B1~4
4/
S 2-to-1 MUX
●
4/
Z1
Z2
Z4
Z1~4
172
組合せ回路設計の実例
例:
4-to-1マルチプレクサ
(4-to-1 MUX)
 演習:
真理値表
ではない!
機能定義表
S1 S0 Z
0 0 A
0 1 B
1 0 C
1 1 D
右表の機能を持つ
4-to-1マルチプレクサ(1ビット)
のAND/OR回路を設計せよ
 解答: 論理関数は、
Z = S1・S0・A+S1・S0・B+S1・S0・C+S1・S0・D
故に、右図となる
A
B C
D
S1
●
●
●
●
●
S0
●
これでもOK
A
B C
D
S1 ●
●
S0
●
●
●
●
Z
173
組合せ回路設計の実例
 2k-to-1
マルチプレクサ(nビット)
2k
n/
k
/
S
●
●
●
n/
2k-to-1 MUX
n/
174
組合せ回路設計の実例

演習: 4-to-1マルチプレクサ(1ビット) 2個と 2-to-1マルチプレ
クサ(1ビット)1個使って 8-to-1マルチプレクサ(1ビット)を設計
せよ。(データ入力:A~H, 選択制御信号を S0, S1, S2 とする)

解答:
S0
S1
S2
A B C D
E F G H
S0
S1 4-to-1 MUX
S0
S1 4-to-1 MUX
●
●
S
2-to-1 MUX
8-to-1 MUX
175
組合せ回路設計の実例
デコーダ(decoder)
デマルチプレクサ
n本の信号を2進数列の
コードと見なし、それに対応
する単一出力(2n本のデー
タ出力のうち1本だけ「1」と
し、他を「0」とする)を生成
するものを n×m(=2n)デ
コーダという
2×4デコーダの機能定義表
D1 D0
0 0
0 1
1 0
1 1
Q3
0
0
0
1
Q2
0
0
1
0
Q1
0
1
0
0
Q0
1
0
0
0
(demultiplexer)
n本の選択制御線によって、
2n本のデータ出力のうちから
対応する1本を選んで、それだ
けに1本の入力データを分配
(接続)するものを 1×m(=
2n)デマルチプレクサという
1×4デマルチプレクサの機能定義表
S1 S0
0 0
0 1
1 0
1 1
Q3
0
0
0
D
Q2 Q 1
0 0
0 D
D 0
0 0
Q0
D
0
0
0
176
組合せ回路設計の実例
演習:

演習:
前頁の機能定義表に対応
する 2×4デコーダを設計
せよ

前頁の機能定義表に対応
する 1×4デマルチプレクサ
を設計せよ
解答:
解答:
D
D1
D0
●
●
●
●
●
●
Q0
Q1
Q2
●
S1
S0
Q3
●
●
●
Q3
●
●
●
●
●
Q0
Q1
Q2
177
組合せ回路設計の実例
エンコーダ(encoder)
プライオリティエンコーダ
(priority encoder)
m本の信号の内、1つだけ
「1」となり、「1」となった入
力に対応する「n本の出力
の組(コード)」を生成する
m(=2n)×nエンコーダと
いう
4×2エンコーダの機能定義表
D3 D2 D1 D0
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
(上記以外)
Q1
0
0
1
1
-
Q0
0
1
0
1
-
m本の信号の内、優先度の高
い信号の「1」に対応する「n本
の出力の組(コード)」を生成
する
 優先度付きエンコーダともいう

4×2優先度付きエンコーダの機能定義表
D3 D2 D1 D0
0 0 0 1
0 0 1 -
0 1 - -
1 - --
0 0 0 0
Q1
0
0
1
1
-
Q0
0
1
0
1
-
178
組合せ回路設計の実例
演習:
Q1
前頁の機能定義表に対応する
4×2優先度付きエンコーダを
設計せよ
解答:カルノー図は右図となる
ので、論理関数は、
Q1 = D3+D2
Q0 = D3+D2 ・D1
故に、論理回路は下図

D1
●
D3
Q0
●
D2
D3D2
D1D0
00
00
01
11
10
-
0
0
0
01
1
1
1
1
11
1
1
1
1
10
1
1
1
1
11
1
1
1
1
10
1
1
1
1
Q0
D3D2
D1D0
00
00
01
11
10
-
0
1
1
01
0
0
0
0
Q1
179
(用語解説)
 fan-in
 1ゲートへの入力
信号数
 通常、ゲートごと
に上限あり
例: fan-in = 4
 fan-out
1ゲートからの出力
信号数
やはり、ゲートごとに
上限あり
例:
●
●
●
fan-out = 4
180
組合せ回路設計の実例
演習:

下図の
4×1マルチプレクサを
fan-out ≦2, fan-in≦2
のAND/OR回路に変
更せよ
S1
S0
●
A
B
●
C
解答:
A
S1
S0
B
●
C
D
●
●
●
●
●
D
●
●
●
●
Z
Z
181
論理回路および論理設計
2011年度 (第10回)
中島 克人
情報メディア学科
[email protected]
組合せ回路設計の実例

半加算器(HA: Half Adder)
A
0
0
1
1

B
0
1
0
1
S
0
1
1
0
C
0
0
0
1
A
2進数1ビット
の加算
A
+ B
CS
B
HA
C S
S : 和(Sum)
C : 桁上げ
(Carry)
全加算器(FA: Full Adder)
A
0
0
1
1
B
0
1
0
1
Ci S
0 0
0 1
0 1
0 0
Co
0
0
0
1
A
0
0
1
1
B
0
1
0
1
Ci S
1 1
1 0
1 0
1 1
Co
0
1
1
1
2進数1ビット
(途中桁)
の加算
‥ Ai
+ ‥ Bi
Co Ci
‥ Si
Ai-1
Bi-1
‥
‥
Ci : Carry-in
S : 和(Sum)
Co : Carry-out
A
B Ci
FA
Co S
183
組合せ回路設計の実例
演習:


演習:
半加算器の論理回路を
AND/OR回路で設計
せよ
解答:
A

B
●
半加算器の論理回路を
AND, OR, NOT, XOR
ゲートで設計せよ A B
●
S
0
0
1
1
解答:
A
●
●
C

B
0
1
0
1
S
0
1
1
0
C
0
0
0
1
●
●
C
S
184
組合せ回路設計の実例
演習:


演習:
全加算器の論理回路を
AND/OR回路で設計
せよ
解答:
A

B
Ci
●
●
●
Co

●
●
●
●
解答:
A
●
●
●
全加算器の論理回路を
AND, OR, NOT, XOR
ゲートで設計せよ
●
S
B
Ci
●
●
●
Co
●
●
S
185
組合せ回路設計の実例

全加算器(1ビット)をカスケード(=縦つなぎ)
接続して構成した n ビット加算器
An-1
Bn-1
A1
B1
A0
B0 Ci
・・・
A
B Ci
FA
Co S
Co
A
・・・
Sn-1
nビット加算器

B Ci
FA
Co S
Co
S1
A
B Ci
FA
Co S
S0
2ビット加算器
空間サイズは良いが、時間サイズはビット数に比例して悪くなる
⇒ 桁上げ予見回路の付加(コンピュータアーキテクチャ)
186
組合せ回路設計の実例
多数決回路
n入力の内の過半数が1の場合に出力を1とする回路
C
0
1
0
1
0
1
0
1
M
0
0
0
1
0
1
1
1
解答: カルノー図から求めた関数は下記
C\AB 0 0
0
0
1
0
01
0
1
11
1
1
10
0
1
M = A・B+A・C+B・C
従って、AND/OR回路は下記
A
B
M
C
●
B
0
0
1
1
0
0
1
1

●
A
0
0
0
0
1
1
1
1
演習: AND/OR回路を設計せよ
●
多数決関数(3入力)

187
組合せ回路設計の実例
重み付き多数決回路
入力によって重みが異なる多数決回路
重み付き多数決回路の例


4入力の内、Aは 4票、Bは 3票、
Cは 2票、Dは 1票を持つ
延べ10票の内、5票以上が
賛成(=1)の場合、
出力Mを賛成(=1)とする
 演習:
真理値表を示せ
 解答:
右図
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D M
0 0
1 0
0 0
1 0
0 0
1 0
0 1
1 1
0 0
1 1
0 1
1 1
0 1
1 1
0 1
1 1
188
組合せ回路設計の実例
演習:
例題2.26の重み付き多数決関数に対し、
カルノー図によってその関数を求め、
ファクタリングによって多段論理最小化を行い、
その結果に対応するAND/OR回路を設計せよ
⇒ 教科書p.142~p.144を自習せよ
189
同期式順序回路とその設計
組合せ回路
 入力値のみで出力値が決まる
順序回路
 順序回路とは組合せ回路に
状態保存のためのメモリ
(memory)を付加した論理
回路である
 クロックで状態を遷移させる
(変更する)
 同一クロックで一斉に状態遷
移させる回路が同期式順序
回路(cf. 非同期式)
入力
:
入力
:
組合せ回路
組合せ回路
:
:
出力
:
出力
:
:
メモリ
:
クロック
190
同期式順序回路とその設計
定義3.1(状態)
論理回路の入力が時間経過と共に変化しても構わないとき、
その入力(変化)の履歴を状態という
定義3.2(順序回路)
ある時刻(タイミング(timing))
t の出力がその時刻 t の入力
と状態(=入力履歴)に依存する論理回路を順序回路という
ビットタイム(bit
time)
今扱っているのはデジタル情報であるので、一定周期(時間間
隔)の時刻ごとに出力と状態(の変化)を考えればよい
この一定周期をビットタイムという
(前) (現) (次)
時間
‥‥ t-1
ビットタイム
t t+1 t+2 ‥‥
時刻
191
同期式順序回路とその設計
クロック(clock)
入力
ビットタイムを刻むタイミ
ング信号をクロックという
(クロックによりビットタイ
ムが経過)
:
:
組合せ回路
:
出力
:
:
メモリ
:
クロック
時間
ビットタイム ‥ t-1
t
t+1 t+2 ‥‥
定義3.3(同期式順序回路)
回路動作がクロックに同期する順序回路
同期式順序回路では、クロックごとにメモリに保存している状
態が変わり得る(状態遷移し得る)。
以降、単に順序回路というと、同期式順序回路の事をいうこと
にする
192
同期式順序回路とその設計
状態遷移

連続する2つのビットタイムにおける状態の変化
同期
クロックは、入力と出力と状態遷移のそれぞれをチェックする
タイミング合わせの信号であるが、このタイミング合わせの事
を同期という
定義3.3(同期式順序回路)
回路動作がクロックに同期する
順序回路
同期式順序回路では、クロックごとにメモリに保存している
状態 が変わり得る(状態遷移し得る)。
以降、単に順序回路というと、同期式順序回路の事をいうこと
にする
193
同期式順序回路とその設計
順序回路の論理関数表現(準備)
以降の表記法
 ある時刻(ビットタイム)
t の状態(現状態) Q(t)を Q と
表すとき、次の時刻(ビットタイム) t+1 の状態(次状態)
Q(t+1)を Q+ と表記する
 入力(の組)は I、出力(の組)は O と表す
定義3.4(状態遷移関数)
Q+は入力(の組) I と現状態 Qに
よって決定する。即ち、次状態は、入力と現状態を変数とする
論理関数の値(関数値)として、
Q+=f(Q, I)
と表せる。この論理関数 f を状態遷移関数という
順序回路において、次状態
194
同期式順序回路とその設計
定義3.5(順序回路の出力関数)
順序回路において、出力(の組)
O も入力(の組) I と現状
態 Q によって決定する
即ち、順序回路の出力は、入力と現状態を変数とする論理
関数の値(関数値)として、
O=g(Q, I)
と表せる。この論理関数 g を出力関数という
組合せ回路では「状態」がなく、出力関数は
O=h(I) である
195
同期式順序回路とその設計
順序回路の論理関数表現
順序回路では、
状態遷移関数 Q+=f(Q, I)、出力関数 O=g(Q, I)
の両方を対にして論理関数表現される
入力
I
組合せ回路
:
:
g
:
出力
O
:
f
組合せ回路
:
:
g
:
:
f
Q+
:
メモリ Q
:
ビットタイム t
1ビットタイム後
:
メモリ Q+
:
ビットタイム t+1
196
同期式順序回路とその設計
順序回路の一般形
m本の入力、lビットのメモリ、n本の出力を持つ順序回路は
状態遷移関数 fk(Q1, ... ,Ql, I1, ... ,Im)=Q+k (k=1, ... ,l)
出力関数
gj(Q1, ... ,Ql, I1, ... ,Im)=Oj (j=1, ... ,n)
で表される
I1
入力 m本
Ii
Im
:
:
lビットのメモリ
Qk→Q+k
Q+k=fk(Q, I)
(k=1, ... ,l)
:
:
O1
Oj
出力 n本
On
なお、Qk→Q+k
は Qk の状態遷移を表す
また、lビットのメモリであるので、2l個の状態を表現できる
197
同期式順序回路とその設計
ミーリマシン(Mealy
machine)
現状態と入力とで出力が決まる順序回路で、
出力関数
入力
I
O=g(Q, I)
組合せ回路
:
:
g
:
出力
O
:
f
Q+
:
メモリ Q
:
以後、特に断りがなければ、ミーリマシンを扱う
198
同期式順序回路とその設計
ムーアマシン(Moore
machine)
現状態だけで出力が決まり、入力は出力には無関係である
る順序回路で、
出力関数 O=g(Q)
組合せ回路
:
入力
I
:
g
出力
O
組合せ回路
:
●
:
:
f
●
Q+
:
メモリ Q
:
199
同期式順序回路とその設計
順序回路の数学モデル
有限個の状態を持ち、その上で状態遷移規則を定義した計
算機構を有限状態機械という
有限状態機械は、「有限個の状態と状態遷移(状態遷移関
数)を扱う模式的な機械、即ち、数学モデル」といえる
200
同期式順序回路とその設計
定義3.6(有限オートマトン)
有限個の状態、有限個の入力、状態遷移関数、初期状態、
最終状態の5項によって定義する計算機械(数学モデル)を
有限オートマトンという
入力
入力
I
組合せ回路
:
:
:
f
Q+
状態遷移関数
:
メモリ Q
初期状態
=メモリの初期内容
:
最終状態
=状態遷移後の内容
状態=メモリ
201
同期式順序回路とその設計
定義3.7(順序機械)
有限オートマトンを定義する5項の内、最終状態を出力に置
き換え、新たに出力関数を加えた6項で定義する計算機械
(数学モデル)を順序機械という
入力
入力
I
出力関数
状態遷移関数
組合せ回路
:
:
g
:
出力
O
:
f
出力
Q+
:
メモリ Q
初期状態
=メモリの初期内容
:
状態=メモリ
202
同期式順序回路とその設計
フリップフロップ(Flip-flop:FF)(1ビットのメモリ)の仕組み
S
双安定(2状態)
... 状態変化(入力)がない
R
●
NOTをNORに
●
Q

Q
●
2個のNOTによるループ
●

Q
NOR型SR-FF
S=R=0 のとき双安定(2状態)
S=0→1→0 とすると
Q=?→1→1 となる(Set)
R=0→1→0 とすると
Q=?→0→0 となる(Reset)
203
同期式順序回路とその設計

SRフリップフロップ(SR-FF)
最も簡単なフリップフロップ回路
 セット(S)とリセット(R)の機能を持つ

SRフリップフロップの
回路図記号
S
R
Q
Q
SRフリップフロップの
特性表
Qの次状態
S R
Q+
0
0
1
1
Q
0
1
-
0
1
0
1
不変
リセット
セット
(ドントケア=不定)
204
同期式順序回路とその設計
(クロック入力無し)SR-FF
S
R
●
AND/OR回路構成
Q
●

Q
SR-FFの特性表
R
●
S
●
NOR型 SR-FF
NAND型SR-FF
Q
Q
S R
Q+
0
0
1
1
Q
0
1
-
0
1
0
1
不変
リセット
セット
(ドントケア=不定)
演習
S, R, Q に 0, 1 の値を当て
はめて、左記回路の動作を確
認せよ

205
同期式順序回路とその設計
クロック入力付きSR-FF
同期式順序回路ではクロックで
(1)入力の取り込み、(2)状態遷移、(3)出力の決定
の3つを行う
そのためには、クロック信号が“1”の時だけ(1)を行い、“0”の
時は現状態を保持するようにすれば良い
⇒入力にクロックとのANDゲートを挿入する
AND/OR回路構成
●
Q
●
S
(クロック入力付き)
SRフリップフロップ
Q
S
R
CK
●
R
クロック
CK
Q
Q
206
同期式順序回路とその設計

Dフリップフロップ(D-FF)
現状態が何であっても D入力を次状態とする
 データ信号(D入力)の取り込み・保存(ラッチ(latch))を
行うため、Dラッチ、もしくは、単に ラッチ とも言う
 コンピュータの最も基本的な部品である
特性表
D
Q
CK
Q
D
0
1
Q+
0
1
D
●
●
CK
●
回路図記号
Q
●

Q
SR-FF
207
同期式順序回路とその設計

T フリップフロップ(T-FF)
T入力が “0” の時、現状態は不変である
 T入力が “1” の時、現状態の否定(NOT)を次状態とする
 現状態の否定が次状態になることを反転あるいはトグル
(toggle)という

回路図記号
T
CK
特性表
Q
T
Q+
Q
0
1
Q
Q
208
同期式順序回路とその設計

(クロック入力無し/入力付き)JK フリップフロップ(JK-FF)
 J、K入力共 “0” の時、現状態は不変である
 J入力が “0”、K入力が “1” の時、リセットされる
 J入力が “1”、K入力が “0” の時、セットされる
 J、K入力共 “1” の時、現状態を反転(トグル)する
回路図記号
J
Q
K
Q
J
Q
K
CK
JKフリップフロップの
特性表
Q
J K
Q+
0
0
1
1
Q
0
1
Q
0
1
0
1
SRフリップフロップ
と同じ
不変
Tフリップフロッ
リセット
プの機能
セット
反転(トグル)
209
同期式順序回路とその設計

定義3.9(入力要求)

フリップフロップの現状態 Q がある状態 Q+ へ遷移するため
に、入力をどのように設定すればよいかを示すことを入力要
求という

入力要求を論理関数(論理式)として表現したものを
入力条件式、入力方程式、あるいは、励起関数という

入力要求を真理値表として表現するものを
入力要求表、逆真理値表、あるいは、励起表という
SRフリップフロップの
入力要求表
Q → Q+ S R
0
0
0 -
0
1
1 0
1
0
0 1
1
1 - 0
不変 または リセット
セット
リセット
不変 または セット
210
同期式順序回路とその設計

FFの特性表(~真理値表)と入力要求表(=逆真理値表)

SRフリップフロップでの比較
入力要求
入力
特性表
S
0
0
1
1
R
0
1
0
1
Q+
Q
0
1
-
結果
不変
リセット
セット
(不定)
結果
入力要求表
Q → Q+
0
0
0
1
1
0
1
1
S R
0 -
1 0
0 1
- 0
211
同期式順序回路とその設計

演習:下記のTフリップフロップの特性表から入力要求
表を作成せよ
特性表
T
0
1
Q+
Q
Q

解答:特性表が分かり難い場合は、
展開特性表を作成してから入力要
求表を作成すると良い
展開特性表
T
0
0
1
1
Q
0
1
0
1
Q+
0
1
1
0
不変
不変
反転
反転
入力要求表
Q → Q+
0
0
0
1
1
0
1
1
T
0
1
1
0
212
期末試験の注意
試験日時:
12月16日(金) 6限(年内最後の授業日)
持込み可:
教科書、講義プリント、ノート
持込み不可:
試験用紙:
あらゆる電子機器(PC, 電卓, 携帯...)、
問題用紙、解答用紙を配布
コツ!:中間試験と同様問題が多めに出題される
持込み可であるが、その場で調べながらやっても
絶対に時間不足になる
(1)事前に練習、(2)出来る問題から解く
213
論理回路および論理設計
2011年度 (第11回(最終回))
中島 克人
情報メディア学科
[email protected]
期末試験
試験日時:
12月16日(金) (年内最後の授業日)
18:20~19:40
持込み可:
教科書、講義プリント、ノート
持込み不可:
試験用紙:
あらゆる電子機器(PC, 電卓, 携帯...)、
問題用紙,解答用紙共に回収します
コツ!:出来る問題から慎重かつ素早く解く
215
同期式順序回路とその設計
タイミングチャート
時間経過と共に(入力、出力を含む)各信号の論理値の遷移を
図示する方法
横軸: 時間(1目盛=1ビットタイム)
縦軸: 論理値(ここでは上位=“1”, 下位=“0”)
nビットシフトレジスタのタイミングチャート例
Dはこの場合、
「クロックCKに非同期」
という
D
Q1
Q2
CK
1ビットタイム
時間
216
同期式順序回路とその設計
状態遷移図
順序回路のクロックごとの動作を定める入力、状態(遷移)、
出力を図に表したもの
ミーリマシンの場合
状態
ムーアマシンの場合
状態
出力
入力/出力
入力
状態
状態
出力
例:D-FFの(ミーリマシンとして表現した)状態遷移図
D=1/Q+=1
0/0
Q=0
0/0
Q=1
1/1
217
同期式順序回路とその設計
演習:
次の機能を持つ順序回路を設計したい
a. 40円の商品(1種類)を販売する自動販売機である
b. 10円玉と50円玉のみを受付る
c. 40円以上になると即座に商品とお釣りを出し,0円状態に戻る
40円以上
上記の回路の状態遷移図を(ミーリマシンとして)示せ
解答:
(1) 状態遷移図は左図
10
50
10円
10
20円
10
50
X
20
= 10円玉
= 商品
= 50円玉
= 釣銭X円
50
30
0円
30円
50
50
10
40
10
10
218
同期式順序回路とその設計
演習:T-FFの(ミーリマシンとして表現した)状態遷移図を示せ
解答:下図の通り
T= 1/Q+= 1
0/0
Q=0
Q=1
0/1
1/0
219
同期式順序回路とその設計
演習:初期状態から入力値に「1」が合計3回入ると「1」を
出力し、初期状態に戻る順序回路の状態遷移図を示せ
解答:下図の通り
0/0
1/0
Q=00
1/1
Q=01
Q=10
0/0
1/0
0/0
220
同期式順序回路とその設計
 演習:入力Aの論理値が反転する時に出力Mが「1」を出力する
「ビット反転検出回路」の状態遷移図を示せ
解答:状態遷移図
1/1
0/0
Q=0
0/1
Q=1
1/0
 演習:この回路への入力Aがタイミングチャート上で下記である時
の出力Mのチャートを示せ
解答:タイミングチャート
入力A
0
0
1
1
0
1
0
出力M
0
0
1
0
1
1
1
CK
221
ソフトウェアによる論理設計
コンピュータハードウェア設計の流れ
(1)方式設計
コンピュータのハードウェア構成の概略(機能ブロック)を決定
ハードウェア機構とソフトウェア機能との機能分担方式(=コン
ピュータアーキテクチャ)を設計することに当たる
(2) 論理設計
(1)で決めたハードウェア機構を論理回路として合成
(3) 実装設計
(2)で合成した論理回路の実装部品へのテクノロジマッピング
機能・構成
決定
機能ブロック
分割
(1)方式設計
論理関数
標準形
論理式
(2)論理設計
論理
最小化
テクノロジ
マッピング
(3)実装設計
222
ソフトウェアによる論理設計
コンピュータによるハードウェア設計支援
CAD(Computer
Aided Design)
 論理回路の合成や最小化
 論理ゲート/ブロック間の配線経路探索
 設計した回路の検証のためのシミュレーション(ソフトウエアによる模
擬)やテストパターン生成
機能・構成
決定
機能ブロック
分割
(1)方式設計
論理関数
標準形
論理式
(2)論理設計
論理
最小化
テクノロジ
テスト
マッピング
(3)実装設計
 方式設計をプログラミングのように行えれば、方式設計の能率も向
上するし、論理設計以降の下流にスムーズに繋げられる
223
ソフトウェアによる論理設計
ハードウェア記述言語
論理回路やハードウェアの動作をプログラムとして記述す
るプログラミング言語をハードウェア記述言語(HDL:
Hardware Description Language)という
具体的には、論理回路やハードウェアの動作を回路図で
はなく、方式設計した後のプログラムとして与えると、CAD
システムが自動的にそれを最適化し、論理回路を合成して
くれる機能である
回路動作をビヘイビア(behavior)というので、HDLの事を
ビヘイビア記述言語とも言う
224
ソフトウェアによる論理設計
HDLでの記述例(半加算器)
VHDL
library ieee;
use ieee.std_logic_1164.all;
entity half_adder is
port (
a, b: in std_logic;
s, co: out std_logic);
end half_adder;
VerilogHDL
module half_adder (s, co, a, b);
input a, b;
output s, co;
wire w0, w1, w2;
assign w0 = a & b,
w1 = w0,
w2 = a | b,
architecture arch of half_addrer is
s = w1 & w2,
signal w0, w1, w2: std_logic;
co = w0;
begin
endmodule
w0 <= a and b;
...........
225
HDL
HDLの生い立ち
VHDL



設計仕様のドキュメント言語として米国国防省(DoD:
Department of Defense)のプロジェクトで‘81に提案
‘83年から標準化作業 ⇒ IEEE-1076(‘87), IEEE-1164(‘92)
あいまいさを排除した厳格な言語(ADA言語ベース)
Verilog-HDL



Gateway社の Verilog-XLシミュレータ専用言語として‘83に
開発
‘89にGateway社を買収した Cadence社が言語仕様を公開
し、やがて IEEE-1364 として標準化
LSI設計における記述性を重視した言語(C言語ベース)
226
VHDL
下図の回路をテキスト(言語)で記述したい
この回路に名前をつける(entity)
a
b
c
x
入出力の信号の名前と、属性や
取り得る値を宣言する(port)
回路の中の構成を記述する(architecture)
上図の回路を部品として用いた回路を記述したい
a
b
●
k
s
部品(component)として呼び出す
x
z
c
p
●
g
a
b
c
x
部品内外の信号線の対応を
記述する(port map)
227
VHDL
構文
entity ... 1つの設計単位を表し、回路名と外部インタ
フェースを定義する
別途 architecture 宣言で内部を定義する
entity エンティティ名 is
< generic (ジェネリック宣言)>
< port (ポート宣言)>
end <エンティティ名>
port ... 外部インタフェース
の宣言
(generic .. 省略)
port
入出力を
宣言する
entity
回路ブロックに
名前をつける
エンティティ名
1つの設計単位=回路ブロック
228
VHDL
port ... ポート宣言
port (
< ポート名: モード ポートタイプ
{ ; ポート名: モード ポートタイプ } >
);
port の種類
in ... entity への入力, out ... entity からの出力
buffer ... entity からの出力( entity内部でも使用 )
inout ... entity との双方向
entity内部
in
●
inout
●
●
buffer
out
229
VHDL
構文
entity
architecture 1
... 動作レベル記述
architecture 2
... RTLレベル記述
architecture 3
... ゲートレベル記述
architecture ... entity内部の回路構成や動作を定義
記述レベルごとにアーキテクチャ名を
付して、複数定義可能
architecture アーキテクチャ名 of エンティティ名 is
{ アーキテクチャ宣言部
:= 信号宣言、定数宣言、コポーネント宣言、
データタイプ宣言、サブプログラム }
begin
{ 同時処理文
:= 信号代入文、プロセス文、コンポーネント呼出、
並行プロシージャ、等 }
end <アーキテクチャ名>
230
VHDL
記述例:HA(半加算器)
A
B
B
HA
S
Co
S
Co
入力ポート
A
●
必ず宣言
A
S
●
出力ポート
library ieee;
Co
use ieee.std_logic_1164.all;
B
entity HA is
port ( A, B : in std_logic;
S, Co : out std_logic );
外部インタフェースを記述
end HA;
architecture RTL of HA is
begin
S <= A xor B;
Co <= A and B;
end;
データタイプに相当
内部の論理を記述
231
VHDL
 記述例:FA(全加算器)
library ieee;
use ieee.std_logic_1164.all;
entity FA is
port ( A, B, Ci : in std_logic;
S, Co : out std_logic );
end FA;
architecture RTL of FA is
component HA
port ( A, B : in std_logic;
S, Co : out std_logic );
end component;
signal S0, S1, Co1, Co0 : std_logic;
begin
HA0: HA port map ( A, B, S0, Co0 );
HA1: HA port map ( S0, Ci, S1, Co1 );
S <= S1;
Co <= Co0 or Co1;
end;
A
B
Ci
A
B FA S
Co
Ci
A
A
B
B
A
Ci
B
HA
S
Co
S
Co
HA
S
Co
S
Co
HAを部品として呼び出す
(使う)ための宣言
HAの呼び出し
( )内は外側に接続する信号名
232
VHDL
Din
4
/
D
Q
4
/
Qout
D-FF
例:4ビットレジスタ
となる時に reset = 1
であると,Dinの値に関わらず
内容Q が 0 にリセットされる
タイプ
 CLK=1
CLK
>C
R
reset
reset機能付
0/1 の1ビット線
entity REG4 is
降順の4ビット線
port ( reset : in std_logic ;
CLK : in std_logic ;
Din : in std_logic_vector(3 downto 0);
Qout : out std_logic_vector(3 downto 0) );
end REG4;
233
VHDL
例:4ビットレジスタ(続)
Register Transfer Level
(RTL)の記述
architecture RTL of REG4 is
もし CLK が変化し、
begin
かつその値が 1 ならば
REG: process(CLK)
= CLK の立ち上がり時
begin
if CLK’event and CLK=‘1’ then
クロック同期の
if reset = ‘1’ then Qout <= 0;
reset
else
Qout <= Din;
(通常の)
end if;
データセット
end if;
end process;
end RTL;
234
本講義の最後に
 3年次(前期)
「コンピュータアーキテクチャ」(選択)
(担当:尾崎(非常勤))
にて、論理回路の知識を前提に,コンピュータの内部の
「様々な仕組み・巧妙な作り」を学べます
 4年次(前期)
「デジタルシステム設計・実装論」(選択)
(担当:竜田)
にて、論理設計に必要な実際的な技術を学べます
235
(終わり)
授業評価をお願いします
236
論理回路および論理設計
2011年度 (期末試験)
中島 克人
情報メディア学科
[email protected]
期末試験
試験日時:
12月16日(金)
18:20~19:40
持込み可:
教科書、講義プリント、ノート
持込み不可:
試験用紙:
あらゆる電子機器(PC, 電卓, 携帯...)、
問題用紙,解答用紙共に回収します
コツ!:出来る問題から慎重かつ素早く解く
238
論理関数と論理回路の最小化
 Q-M法による
2段論理最小化の特徴
長所:


数値化が簡単で、コンピュータ処理に向く
即ち、多変数論理関数にも適用可
短所:


手順が少々面倒(特に主項の選択操作が手間)
カルノー図に比し、人間が行う最適化としては直感性で
劣る
主項の選択を正確に行いたい
必須主項の決定と主項の選択」に代えて、論
理数学を用いた方法を適用する
 Q-M法の「2.
239
論理関数と論理回路の最小化
論理数学の活用
 道具・材料を持ち寄りで,グループでバーベキューに行きたい
 メンバごとに持ち寄れるものが異なる
 アイテム(道具・材料)が全部揃うには誰と誰が参加すべきか?
S4= p+q
S9= q+r
メンバ別
バーベキュー道具・材料
持ち寄り可能
アイテム
1 m21 m
32 m
43 m
54 m
6 5 m76 m
87 m98 m9
メンバ p
○ ○
メンバ q
○
○
メンバ r
○
○
メンバ s ○ ○
○
○
メンバ t
○ ○ ○ ○
m1 : 鉄板
m2 : 網
m3 : コンロ
m4 : 燃料
::::
m9 : 肉
m8 : 油
Si :アイテムi が揃うために参加すべきメンバ
アイテムが全部揃うための条件 U = S1・S2・ … ・S9
= s・s・p・(p+q)・ … ・(q+r)
240
論理関数と論理回路の最小化
定理2.6(ある最小項の包含条件)

n個の最小項からなる最小積和形の論理関数 fm において、
ある最小項 mi (i=1, ... , n)を包含する主項全ての論理和を
Si とすると、 fm のある論理積項が最小項 mi を包含する条
件 Ui は Si= 1 である

証明: Si は、最小項 mi を包含する主項(論理積項)全ての論
理和であるから、Si= 1 ならば、それらの主項のいずれかが
mi を包含する
例: n=9個の最小項から
なる論理関数の
主項-最小項表
S4= p+q
S6= s+t
最小項(ラベル)
m1 m2 m3 m4 m5 m6 m7 m8 m9
主項(ラベル) 1 3 4 6 8 9 10 11 14
4,6 p
○ ○
6,14 q
○
○
10,14 r
○
○
1,3,9,11 s ○ ○
○
○
8,9,10,11 t
○ ○ ○ ○
主項-
最小項表
241
論理関数と論理回路の最小化
定理2.7(全ての最小項の包含条件)

最小積和形 fm の論理積項が n個の最小項を全て包含する
条件は、 U = S1・S2・ ‥ ・Si・ ‥ ・Sn = 1 である

証明: 定理2.6より、最小項 mi (i=1, ... , n)を包含する条件
は Si= 1 であり、それらが同時に成り立つ条件(U)は
S1・S2・ ‥ ・Si・ ‥ ・Sn = 1 である
最小積和形 fm
の正確な求め方
1. 条件 U を展開して、積和形とする
2. 1のうちから主項数が最小の論理積項を選択する
3. 2を構成する主項を OR で結ぶ
(この方法では「必須主項の決定」や「主項の選択」が必要ない)
242
論理関数と論理回路の最小化
 条件
U を展開して主項を選択する例
最小項(ラベル)
m1 m2 m3 m4 m5 m6 m7 m8 m9
主項(ラベル) 1 3 4 6 8 9 10 11 14
4,6 p
○ ○
6,14 q
○
○
10,14 r
○
○
1,3,9,11 s ○ ○
○
○
8,9,10,11 t
○ ○ ○ ○
主項-
最小項表
S4= p+q
S6= s+t
A
0
-
1
-
1
B C D
1 - 0
1 1 0
- 1 0
0 - 1
0 --
U = S1・S2・ ‥‥ ・S9
= s・s・p・(p+q)・t・(s+t)・(r+t)・(s+t)・(q+r)
= s・p・t・(q+r)= p・q・s・t + p・r・s・t
従って、最小積和形 fm は、
fm=A・B・D + B・C・D + B・D + A・B
または、 fm=A・B・D + A・C・D + B・D + A・B
論理積項
A・B・D
B・C・D
A・C・D
B・D
A・B
243