ディジタル回路 3. 組み合わせ回路 五島 正裕 DATE : 2015/10/1 ディジタル回路 今日の内容 1. 導入問題 2. 論理関数の標準形 3. カルノー図による簡単化 4. 今日のまとめ 2 ディジタル回路 導入問題 3 ディジタル回路 例題 Q. 3つの入力 x,y,z に対して, 以下のいずれかの条件が成立したとき 1, それ以外は 0 となる論理関数 F を求めよ. x と y がともに 1. x と z がともに 1. x と y が等しくなく,かつ,y と z が等しい. A. F = xy + xz + (x != y) · (y == z) ただし,· は省略,!= は XOR,== は XNOR 4 ディジタル回路 例題 A. (cont) F = xy + xz + (x != y) · (y == z) …………① = xy + xz + (xy’ + x’y) · (yz + y’z’) = xy + xz + xy’yz + xy’z’ + x’yz + x’yy’z (展開) = xy + xz + 0 + xy’z’ + x’yz + 0 ∵ x · x’ = 0 = xy + xz + xy’z’ + x’yz ∵x+0=x = xy (z + z’) + x (y + y’) z + xy’z’+ x’yz ∵ x (y + y’) = x · 1 = x = xyz + xyz’ + xyz + xy’z + xy’z’ + x’yz ∵x+x=x = xyz + x’yz + xyz’ + xy’z’ + xy’z …………② = xyz + x’yz + xyz’ + xy’z’ + xyz + xy’z ∵x+x=x = (x + x’) yz + x (y + y’) z’ + x (y + y’) z ∵ x (y + y’) = x · 1 = x = yz + xz’ + xz ∵ x (y + y’) = x · 1 = x = yz + x (z + z’) ∵ x (y + y’) = x · 1 = x = x + yz …………③ 5 ディジタル回路 例題 x y F x y z F z ① x y z F ② ③ 6 ディジタル回路 組み合わせ回路の簡単化 物理的な最終目標: 回路の遅延時間を短くする. 回路の面積を小さくする. 組み合わせ回路の簡単化の目標: 論理ゲートの段数を少なくする. 論理ゲートの個数を少なくする. 論理ゲートへの入力の数を少なくする. 工学的目標: その系統だった方法を見つける. 7 ディジタル回路 論理関数 の 標準形 8 ディジタル回路 用語の定義 定義: リテラル (literal): x に対して,x または x’ 積項 (product term)/和項 (sum term): リテラルの論理積/論理和 n 変数の論理関数の 最小項 (minterm)/最大項 (maxterm): n 種のリテラルからなる積項/和項 具体例:3変数 (x, y, z) の論理関数の場合: リテラル : x, x’, y, y’, z, z’ の6種 積 項 : xy, yz, zx, xyz, x’yz’, … の 種 和 項 : x + y, y’ + z, x + y + z, x’ + y + z’, … 最小項 : x’y’z’, x’y’z, x’yz’, x’yz, xy’z’, xy’z, xyz’, xyz の8種 最大項 : x’ + y’ + z’, x’ + y’ + z, … の8種 9 ディジタル回路 用語の定義 最小項 の 論理和 積和標準形 (canonical sum-of-products form) 加法標準形 (disjunctive canonical (normal) form) 最小項表現 (minterm expression) 最大項 の 論理積 和積標準形 (canonical product-of-sums form) 乗法標準形 (conjunctive canonical (normal) form) 最大項表現 (maxterm expression) 10 ディジタル回路 標準形 標準形 (canonical (normal) form) : 論理関数 F を一意に表現する論理式の「かたち」 F1 と F2 の標準形が同じ ⇔ F1 と F2 は同じ 11 ディジタル回路 例題 A. (cont) F = xy + xz + (x != y) · (y == z) …………① = xy + xz + (xy’ + x’y) · (yz + y’z’) = xy + xz + xy’yz + xy’z’ + x’yz + x’yy’z (展開) = xy + xz + 0 + xy’z’ + x’yz + 0 ∵ x · x’ = 0 = xy + xz + xy’z’ + x’yz ∵x+0=x = xy (z + z’) + x (y + y’) z + xy’z’+ x’yz ∵ x (y + y’) = x · 1 = x = xyz + xyz’ + xyz + xy’z + xy’z’ + x’yz ∵x+x=x = xyz + x’yz + xyz’ + xy’z’ + xy’z …………② 積和標準形 = xyz + x’yz + xyz’ + xy’z’ + xyz + xy’z ∵x+x=x = (x + x’) yz + x (y + y’) z’ + x (y + y’) z ∵ x (y + y’) = x · 1 = x = yz + xz’ + xz ∵ x (y + y’) = x · 1 = x = yz + x (z + z’) ∵ x (y + y’) = x · 1 = x = x + yz …………③ 12 ディジタル回路 例題 x y F x y z F z ① x y z F ③ ② 積和標準形 13 ディジタル回路 標準形 と 真理値表 m7 m6 m5 m4 m3 M2 M1 M0 x+y+z x + y + z’ x + y’+ z x’yz xy’z’ xy’z xyz’ xyz # x y z 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 0 0 2 0 1 0 1 1 0 0 0 0 0 0 0 3 0 1 1 1 1 1 1 0 0 0 0 1 4 1 0 0 1 1 1 0 1 0 0 0 1 5 1 0 1 1 1 1 0 0 1 0 0 1 6 1 1 0 1 1 1 0 0 0 1 0 1 7 1 1 1 1 1 1 0 0 0 0 1 1 F 積和標準形 F = x’yz + xy’z’ + xy’z + xyz’ + xyz = m3 + m4 + m5 + m6 + m7 = S (3, 4, 5, 6, 7) …ON-set 和積標準形 F = (x + y + z) (x + y + z’) (x + y’+ z) = M0 M1 M2 = P (0, 1, 2) … OFF-set 14 ディジタル回路 積和標準形 と 和積標準形 積和標準形 と 和積標準形 和積標準形の方が慣れている 数学的には「双対」 (dual) 説明は,積和標準形で 和積標準形に変換することは容易 AND ⇔ OR,0 ⇔ 1 に替えればよい 15 ディジタル回路 カルノー図 ディジタル回路 カルノー図 カルノー図(Karnaugh Map) 真理値表の一種 グレイ・コード: 00 → 01 → 11 → 10 zw xy 0 は省略してよい 00 01 11 10 00 y x 0 1 x yz 00 01 11 10 01 0 0 11 1 1 10 2入力 3入力 4入力 17 ディジタル回路 カルノー図の例 y x 0 1 0 1 1 y x F3(x, y) = xy 0 y 1 x 0 1 0 1 0 1 1 1 F23 (x, y) = xy + xy' 1 F2 (x, y) = xy' 18 ディジタル回路 カルノー図の例 y x 0 1 1 1 0 1 y x 0 F23 (x, y) = x 0 1 y 1 1 x 0 0 1 1 1 1 F02(x, y) = y' 1 1 F023 (x, y) = x + y' 19 ディジタル回路 カルノー図 による 簡単化 20 ディジタル回路 簡単化のキーポイント x y + x' y = y x y + x' y = (x + x') y = 1 · y = y x yz + x' yz = yz x yz + x' yz = (x + x') yz = 1 · yz = yz セレクタ x □ + x' □ = □ x 21 ディジタル回路 カルノー図だと 1/2 y x 0 1 0 1 1 y x 0 1 y x 0 1 F3 (x, y) = xy 0 1 0 1 y 1 1 1 1 x 0 0 1 1 F13 (x, y) = xy + x'y F13 (x, y) = y 1 F1 (x, y) = x'y 22 ディジタル回路 カルノー図だと 2/2 x yz 00 01 11 10 0 1 1 x F7 (x, y, z) = x yz yz x 0 00 01 11 10 1 yz 00 01 11 10 x yz 00 01 11 0 1 0 1 1 1 1 1 F37(x, y, z) = x yz + x' yz 10 F37(x, y, z) = yz 1 F3 (x, y, z) = x' yz 23 ディジタル回路 2次元超立方体による表現 S (1, 3) = m1 + m3 = x' y +x y = y # x y F 0 0 0 0 1 0 1 1 2 1 0 0 3 1 1 1 y O 0 1 0 0 1 1 0 1 x (0, 0) 1 (0, 1) 1 y 1 1 (1, 0) (1, 1) x 24 ディジタル回路 3次元超立方体による表現 F = x’yz + xy’z’ + xy’z + xyz’ + xyz = x + yz yz z x’yz 1 xz 1 xy’z xyz xy 1 0 1 y x 0 1 1 xyz’ xy’ O 1 主項 (prime implicant): x 0 1 xz’ xy’z’ これ以上大きくはできない積項 x と yz 25 ディジタル回路 4次元超立方体による表現 26 ディジタル回路 カルノー図 カルノー図(Karnaugh Map) 真理値表の1種 グレイ・コード zw xy ハミング距離が 1 のマス: 図上で隣接している! 00 01 11 10 00 y x 0 1 x yz 00 01 11 10 01 0 0 11 1 1 10 2入力 3入力 4入力 27 ディジタル回路 グレイ・コード # 3 2 1 0 0 0 0 性質: 隣接する符号語間では, 1桁のみ異なる. 1 1 0 2 1 1 3 0 0 4 0 1 2桁なら: 5 1 1 6 0 8 1 1 0 0 … … … 0 … 7 … 00 → 01 → 11 → 10 → 00 1 28 ディジタル回路 カルノー図の表現法 トーラス状に表した4入力のカルノー図 XY=11 XY=10 (10) (14) XY=00 (8) (2) XY=01 ZW=10 (6) (0) (4) ZW=00 (11) (15) (9) (3) (1) (5) (7) ZW=11 ZW=01 29 ディジタル回路 カルノー図による例題の簡単化 x y z F F = x’yz + xy’z’ + xy’z + xyz’ + xyz = x + yz M0 0 0 0 0 M1 0 0 1 0 M2 0 1 0 0 yz x m3 0 1 1 1 m4 1 0 0 1 m5 1 0 1 1 m6 1 1 0 1 m7 1 1 1 1 00 01 0 1 11 10 1 1 1 1 1 30 ディジタル回路 カルノー図による簡単化の手順 手順: 1. カルノー図の上で隣接した「1」を探し,主項を求める. 縦横ともに 2 のべき乗の大きさ. できる限り大きく. ● 重なってもよい. ● はみ出してはいけない. 2. 「1」をすべてカバーする,最小の主項の組み合わせを求める. 意味: ループを大きくする: AND ゲートの入力数を減らす ループを少なくする: AND ゲートの数を減らす OR ゲートの入力の数を減らす 31 ディジタル回路 カルノー図による簡単化の例(1) zw xy 00 00 01 11 1 1 10 zw xy 01 11 00 01 01 11 11 10 10 x’y’w 00 10 1 1 y’zw’ 32 ディジタル回路 カルノー図による簡単化の例(2) zw xy 00 01 11 10 zw xy 00 1 00 01 1 01 11 1 11 10 1 10 z’w 00 01 11 10 1 1 1 1 x’y 33 ディジタル回路 カルノー図による簡単化の例(3) zw xy 00 01 11 00 10 zw xy 00 01 11 10 00 01 1 1 01 1 1 1 1 11 1 1 11 1 1 1 1 10 10 yw y 34 ディジタル回路 カルノー図による簡単化の例(4) zw xy 00 01 00 1 01 1 11 1 10 1 11 10 zw xy 00 01 11 00 1 1 01 1 1 1 11 1 1 10 1 z’w + yzw 10 z’w + yw 35 ディジタル回路 5入力のカルノー図 zw xy 00 00 1 01 11 zw xy 00 01 11 10 00 01 11 10 01 1 10 11 1 10 v=0 v=1 v’x’y’z’w’ + xyzw 36 ディジタル回路 問題 の 例 以下の問いに答えよ.答えは、ブール代数の式と MIL 記法の回路図の両方で記せ. 1. 下記の3入力関数 1. S (0, 1, 5, 6, 7) 2. S (0, 1, 2, 3, 5, 7) 3. S (0, 1, 2, 4, 7) 2. 下記の4入力関数 1. S (0, 1, 5, 7, 8, 10, 14, 15) 2. S (1, 5, 6, 7, 10, 12, 13, 15) 3. S (0, 2, 8, 10, 14) 3. 0 以上 15 以下の整数を 4桁の二進数として入力し,それが以下の条件を満たすならば 1 を, 満たさないならば 0 を返す 1. 素数 2. フィボナッチ数 4. 3. で,入力が 1 以上 9 以下ならどうか. 37 ディジタル回路 カルノー図を用いた簡単化 カルノー図 メリット: 直感的 ディメリット: 入力が多いと難しい(6入力までならなんとか) 直感的 ⇒ 発見的 クワイン・マクラスキー法 (Quine-McCluskey) アルゴリズムとして定式化したもの 38 ディジタル回路 「簡単化」の限界 カルノー図 (QM 法) 「簡単化」であって,「最小化」ではない 最小の積和形(和積形)を与える 積和形,和積形が最小かどうかは分からない 積和形 と 和積形 のどちらが小さいか分からない XOR が扱えない CAD 等では使われていない BDD(Binary Decision Diagram:二分決定木) 39 ディジタル回路 例題 Q. 3つの入力 x,y,z に対して, 以下のいずれかの条件が成立したとき 1, それ以外は 0 となる論理関数 F を求めよ. x と y がともに 1. x と z がともに 1. x と y が等しくなく,かつ,y と z が等しい. A. F = xy + xz + (x != y) · (y == z) ただし,· は省略,!= は XOR,== は XNOR 40 ディジタル回路 例題 x yz 00 01 0 1 1 11 10 1 1 x 1 yz 00 x 00 01 11 11 1 1 0 1 1 1 1 10 x yz 00 01 11 0 1 xy x yz y == z 0 1 10 0 x != y yz 01 1 1 00 01 1 xz 10 1 1 (x != y)(y == z) 10 x yz 00 01 0 1 11 1 11 10 1 1 1 1 1 xy + xz + (x != y)(y == z) 41 ディジタル回路 例題 x yz 00 01 0 1 11 10 1 1 1 1 x yz 00 01 0 1 xy + xz + (x != y)(y == z) 1 11 10 1 1 1 1 1 x + yz 42 ディジタル回路 不完全指定 組み合わせ回路 43 ディジタル回路 Don’t Care Don’t Care 「気にしない」 出力は,0 でも 1 でもよい “ f ”,“ * ” などで表す 回路が簡単になるように 適当に決めてよい その入力は こない その出力は 使われない 組み合わせ回路 44 ディジタル回路 Don’t Care zw xy 00 01 00 f 1 11 10 zw xy 00 01 00 f 1 11 01 1 1 01 1 1 11 1 f 11 1 f 10 1 10 1 z’w + x’yw 10 z’w + yw 45 ディジタル回路 今日のまとめ 46 ディジタル回路 まとめ 標準形 入力パタン ⇔ 最小項,最大項 カルノー図 ルール: x □ + x' □ = □ 真理値表の1種で,ルールが適用できるマスは隣接している 47
© Copyright 2024 ExpyDoc