第11週目

組み合わせ回路の最適化設計
I.組み合わせ回路の設計
ディジタル電子回路
任意の論理関数は標準積和形、標準和積形のいずれ
にも変換できるので、簡単にAND/OR回路が設計でき
る。
2015年度後期
1. 論理関数を定義している論理演算を論理ゲートに対
応させる
第10回
2. 演算順位の最も高い論理演算に対応するゲートから
低いほうへ入力側から出力側へ順に配置、配線
3. 最終出力が論理関数に対応する
例題 F = ABC + BCD + ACD + ABC + BCD + ABC
ABC
A
CD
AB
00
00
01
11
C
10
BC
01
1
11
1
1
10
1
1
1
1
1
4個セルは2つ
D 2個セルは3つ
ABC, BCD, ABD
主項は5つ
AC
必須主項は
特異最小項は4つ
F = BC + AC + ABC + BCD
= BC + AC + ABC + ABD
BC, AC
1
B
従って、最小積和形は
BC, AC, ABC の3つ
必須主項
CD
AB
00
00
01
11
10
BC
01
1
11
1
1
10
ABC
1
1
1
1
1
1
B
AC
a1 a0 b1 b0
演習
まず、真理値表を作成する
2ビットの加算回路の設計
2bit 上の桁 a1
2bit 下の桁 a0
c 桁上がり信号
f1 2bit 上の桁
f0 2bit 下の桁
2bit 上の桁 b1
2bit 下の桁 b0
例:(01)2 + (11)2 = ?
まず、真理値表を作成する
AND
OR
XOR
A
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
a1 a0 b1 b0
使用できる論理ゲート
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B 論理関数F
F = AB + AB
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
c f1 f 0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
c f1 f 0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
演習問題解答例
演習問題解答例
c について
f1 について
a1
a0
a1
1
1
f0について
1
1
b0
1
a0
1
a1
1
1
1
1
1
1
1
1
b1
a0
b0
b1
演習問題解答例
c = a 1b 1 + a 1a 0b 0 + a 0b 1b 0
1
1
1
1
1
1
1
1
b0
b1
2bit 加算回路の例(キャリー付)
f 1 = a 1a 0b 1b 0 + a 1a 0b 1b 0 + a 1a 0b 1 + a 1a 0b 1
+ a 1b 1b 0 + a 1b 1b 0
c
f 0 = a 0b 0 + a 0b 0
f 0 = a 0b 0 + a 0b 0 = a 0
b0
f1 = (a1b1+a1b1)a0b0 + (a1b1+a1b1)a0 + (a1b1+a1b1)b0
= (a1
b1)a0b0 + (a1
b1)a0 + (a1
= (a1
b1)a0b0 + (a1
b1)(a0 + b0)
= (a1
b1)(a0b0) + (a1
= (a1
b 1)
(a0b0)
b1)(a0b0)
a1
b1
f1
b1)b0
a0
b0
f0
2段論理最適化におけるドントケアの利用
1. ドントケア項は、その関数値を 0 か 1 のどち
らにしても構わない。
ドントケア(Don’t care) とは
n 変数論理関数あるいは n 入力論理回路において
n 個の変数値の組あるいは n 本の入力信号の組に
対して、論理関数値あるいは出力信号が定義されて
いないことをドントケア(Don’t care)、組み合わせ禁
止、不完全定義という。
2. 同じセルに 1 と d とが重複するならば、ドント
ケア d を優先する。
記号は、 d、φ、“-”で表わす
例題
例題
F = AC + ABD + ABC
F = AC + ABD + ABC
A
CD
AB
00
01
11
C
10
00
1
01
11
1
A
10
1
1
1
1
1
CD
D
AB
00
01
11
C
10
B
00
1
01
11
10
d
d
d
d
1
1
1
1
B
最小積和形
F = AC + ABC
D
多段論理最小化
ドントケアを用いる代表例
2進化10進符号 ( Binary Coded Decimal )
前回は、2段論理最小化
• 10進 1桁を 2進 4bit で表わす
• (10)10 ~(15)10 をドントケアとする
10進
0
1
2
:
9
BCD
0000
0001
0010
:
1001
10
11
:
15
1010
1011
:
1111
10進数に対応
1.論理式の変形による多段論理最小化
論理関数における空間最適化を図る方法の
ひとつにファクタリング(Factoring) がある。
ファクタリング:
論理式から分配則を用いて共通項をくくり出す操作
X・Y + X・Z = X・(Y+Z)
AND:2個、OR:1個
ドントケア
ファクタリングは、「論理積項や論理和項の項数
を減らす」操作に対応する。
論理ゲートへの入力信号線の数を減らす
一方で、
ファクタリングは次元を増やす操作であり、
時間最適化には逆行する。
AND:1個、OR:1個
例題
F(W,X,Y,Z) = WXZ + WXY + WXY + WXZ
AND: 4個、OR:1個
多項論理演算数 (ST) = 5
2項AND:8個、2項OR:3個
2項論理演算数 = 11
ファクタリングを行なうと…
F = WX(Z+Y) + WX(Y+Z)
論理回路が多段になることを許す前提で空間最適化
を図ることを多段論理最小化という。
= (Y+Z)(WX + WX)
ST = 5、2項論理演算数 = 5
ファクタリングの結果
元の回路
W
X
Z
W
W
X
Y
W
W
X
Y
W
X
Z
X
F
X
F
Y
Z
空間最適化はできているが、時間最適化とはならない。