470 likes | 789 Views
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 )
E N D
ディジタル回路 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 ディジタル回路 例題
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…………③ ディジタル回路 例題
ディジタル回路 例題 x x y y z F F z ① x F y ② z ③
物理的な最終目標: • 回路の遅延時間を短くする. • 回路の面積を小さくする. • 組み合わせ回路の簡単化の目標: • 論理ゲートの段数を少なくする. • 論理ゲートの個数を少なくする. • 論理ゲートへの入力の数を少なくする. • 工学的目標: • その系統だった方法を見つける. ディジタル回路 組み合わせ回路の簡単化
ディジタル回路 論理関数 の 標準形
定義: • リテラル (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種 ディジタル回路 用語の定義
最小項 の 論理和 • 積和標準形 (canonical sum-of-products form) • 加法標準形 (disjunctive canonical (normal) form) • 最小項表現 (minterm expression) • 最大項 の 論理積 • 和積標準形 (canonical product-of-sums form) • 乗法標準形 (conjunctive canonical (normal) form) • 最大項表現 (maxterm expression) ディジタル回路 用語の定義
標準形 (canonical (normal) form) : • 論理関数F を一意に表現する論理式の「かたち」 • F1と F2の標準形が同じ ⇔ F1と F2は同じ ディジタル回路 標準形
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…………③ ディジタル回路 例題
ディジタル回路 例題 x x y y z F F z ① x F y ② 積和標準形 z ③
ディジタル回路 標準形 と 真理値表 • 積和標準形 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)= M0M1M2= P(0, 1, 2)…OFF-set
積和標準形 と 和積標準形 • 和積標準形の方が慣れている • 数学的には「双対」 (dual) • 説明は,積和標準形で • 和積標準形に変換することは容易 • AND ⇔ OR,0 ⇔ 1 に替えればよい ディジタル回路 積和標準形 と 和積標準形
ディジタル回路 カルノー図
ディジタル回路 カルノー図 • カルノー図(Karnaugh Map) • 真理値表の一種 • グレイ・コード: 00 → 01 → 11 → 10 • 0 は省略してよい 2入力 3入力 4入力
ディジタル回路 カルノー図の例 F3(x, y) = xy F23(x, y) = xy + xy' F2(x, y) = xy'
ディジタル回路 カルノー図の例 F23(x, y) = x F023(x, y) = x + y' F02(x, y) = y'
ディジタル回路 カルノー図 による 簡単化
ディジタル回路 簡単化のキーポイント • 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
ディジタル回路 カルノー図だと 1/2 F3(x, y) = xy F13(x, y) = y F13(x, y) = xy + x'y F1(x, y) = x'y
ディジタル回路 カルノー図だと 2/2 F7(x, y, z)= x yz F37(x, y, z) = x yz + x' yz F37(x, y, z) = yz F3(x, y, z) = x' yz
ディジタル回路 2次元超立方体による表現 S (1, 3) = m1+ m3 = x' y +x y= y 1 O (0, 0) (0, 1) 1 y 1 1 (1, 0) (1, 1) x
主項 (prime implicant): これ以上大きくはできない積項 xと yz ディジタル回路 3次元超立方体による表現 F = x’yz+ xy’z’ + xy’z + xyz’ + xyz = x + yz yz xz z x’yz 1 1 xyz xy’z xy 1 1 0 y x 1 0 1 xyz’ xy’ 1 x 0 xz’ O 1 xy’z’
ディジタル回路 4次元超立方体による表現
ディジタル回路 カルノー図 • カルノー図(Karnaugh Map) • 真理値表の1種 • グレイ・コード • ハミング距離が 1 のマス:図上で隣接している! 2入力 3入力 4入力
ディジタル回路 グレイ・コード • 性質: • 隣接する符号語間では,1桁のみ異なる. • 2桁なら: • 00→ 01 → 11 → 10 → 00
ディジタル回路 カルノー図の表現法 • トーラス状に表した4入力のカルノー図
ディジタル回路 カルノー図による例題の簡単化 F = x’yz+ xy’z’ + xy’z + xyz’ + xyz = x + yz
手順: • カルノー図の上で隣接した「1」を探し,主項を求める. • 縦横ともに 2 のべき乗の大きさ. • できる限り大きく. • 重なってもよい. • はみ出してはいけない. • 「1」をすべてカバーする,最小の主項の組み合わせを求める. • 意味: • ループを大きくする: • AND ゲートの入力数を減らす • ループを少なくする: • AND ゲートの数を減らす • OR ゲートの入力の数を減らす ディジタル回路 カルノー図による簡単化の手順
ディジタル回路 カルノー図による簡単化の例(1) x’y’w y’zw’
ディジタル回路 カルノー図による簡単化の例(2) z’w x’y
ディジタル回路 カルノー図による簡単化の例(3) yw y
ディジタル回路 カルノー図による簡単化の例(4) z’w + yzw z’w+ yw
ディジタル回路 5入力のカルノー図 v = 0 v = 1 v’x’y’z’w’ + xyzw
以下の問いに答えよ.答えは、ブール代数の式と MIL 記法の回路図の両方で記せ. • 下記の3入力関数 • S (0, 1, 5, 6, 7) • S (0, 1, 2, 3, 5, 7) • S (0, 1, 2, 4, 7) • 下記の4入力関数 • S (0, 1, 5, 7, 8, 10, 14, 15) • S (1, 5, 6, 7, 10, 12, 13, 15) • S (0, 2, 8, 10, 14) • 0 以上 15 以下の整数を 4桁の二進数として入力し,それが以下の条件を満たすならば 1 を,満たさないならば 0 を返す • 素数 • フィボナッチ数 • 3. で,入力が 1 以上 9 以下ならどうか. ディジタル回路 問題 の 例
カルノー図 • メリット: • 直感的 • ディメリット: • 入力が多いと難しい(6入力までならなんとか) • 直感的 ⇒ 発見的 • クワイン・マクラスキー法 (Quine-McCluskey) • アルゴリズムとして定式化したもの ディジタル回路 カルノー図を用いた簡単化
カルノー図 (QM 法) • 「簡単化」であって,「最小化」ではない • 最小の積和形(和積形)を与える • 積和形,和積形が最小かどうかは分からない • 積和形 と 和積形 のどちらが小さいか分からない • XOR が扱えない • CAD 等では使われていない • BDD(Binary Decision Diagram:二分決定木) ディジタル回路 「簡単化」の限界
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 ディジタル回路 例題
ディジタル回路 例題 x != y y == z (x!=y)(y == z) xy xz xy + xz + (x!=y)(y == z)
ディジタル回路 例題 xy + xz + (x!=y)(y == z) x + yz
ディジタル回路 不完全指定 組み合わせ回路
ディジタル回路 Don’t Care • Don’t Care「気にしない」 • 出力は,0でも 1でもよい • “ f ”,“ * ” などで表す • 回路が簡単になるように 適当に決めてよい その入力は こない その出力は 使われない 組み合わせ回路
ディジタル回路 Don’t Care z’w + x’yw z’w+ yw
ディジタル回路 今日のまとめ
標準形 • 入力パタン ⇔ 最小項,最大項 • カルノー図 • ルール: • x □ + x'□ = □ • 真理値表の1種で,ルールが適用できるマスは隣接している ディジタル回路 まとめ