350 likes | 698 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 ③
組み合わせ回路の簡単化 • 物理的な最終目標: • 回路の遅延時間を短くする. • 回路の面積を小さくする. • 組み合わせ回路の簡単化の目標: • 論理ゲートの個数を少なくする. • 論理ゲートへの入力の数を少なくする. • 工学的目標: • その系統だった方法を見つける.
標準形 • 標準形 (canonical (normal) form) • 論理関数F を一意に表現する論理式 • F1と F2の標準形が同じ ⇔ F1と F2は同じ
用語の定義 • リテラル (literal) • xに対して,xまたは x’ • 積項 (product term)/和項 (sum term): • リテラルの論理積/論理和 • n変数の論理関数の最小項 (minterm)/最大項 (maxterm): • n 種のリテラルからなる積項/和項 • 例:3変数 (x, y, z) の論理関数の場合: • リテラル: x, x’, y, y’, z, z’ • 積 項 : 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 • 最大項 : x + y + z, x’ + y + z’, …
用語の定義 • 積和標準形(canonical sum-of-products form) • 加法標準形 (disjunctive canonical (normal) form) • 最小項表現 (minterm expression) • 最小項の論理和 • 和積標準形 (canonical product-of-sums form) • 乗法標準形 (conjunctive canonical (normal) form) • 最大項表現 (maxterm expression) • 最大項の論理積
例題 • 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 x + y + z x + y + z’ x + y’+ z x’yz xy’z’ xy’z xyz’ xyz
加法標準形 と 乗法標準形 • 加法標準形 と 乗法標準形 • 人間には,加法標準形の方が分かりやすい • 数学的には「双対」 (dual) • 説明は,加法標準形で • 乗法標準形に変換することは容易 • AND ⇔ OR,0 ⇔ 1 に替えればよい
簡単化 ~カルノー図~
簡単化のキーポイント • xy + xy’ = x • xy + xy’ = x (y + y’) = x· 1 = x
2次元超立方体による表現 F = S (2, 3) = m2 + m3 = xy +xy’ = x (y + y’) = x ·1 = x y xy (0, 1) (1, 1) 1 0 1 x (0, 0) (1, 0) x 0 1 O 1 xy’ ハミング距離が 1 のノード間にエッジ
2次元超立方体による表現 F = S (2, 3) = m2 + m3 = xy +xy’ = x (y + y’) = x ·1 = x y (0, 1) (1, 1) 1 0 1 (0, 0) (1, 0) 0 1 x O 1
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’ • 主項 (prime implicant) • これ以上大きくはできない積項 • xと yz xy’ 1 x 0 xz’ O 1 xy’z’
カルノー図 • カルノー図(Karnaugh Map) • 真理値表の1種 • ハミング距離が 1 のノード:図上で隣接している! 2入力 3入力 4入力
カルノー図 F = x’yz+ xy’z’ + xy’z + xyz’ + xyz = x + yz
カルノー図の表現法 • トーラス状に表した4入力のカルノー図
カルノー図による簡単化 • カルノー図の上で隣接した「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 ビットの 2 進数として入力し,それが以下の条件を満たすならば 1 を,満たさないならば 0 を返す回路を書け. • 素数 • フィボナッチ数 • 3. で,入力が 1 以上 9 以下ならどうか.
カルノー図を用いた簡単化 • カルノー図 • 真理値表 • ハミング距離が 1 の積項は,図上でも隣接する. • メリット • 直感的 • ディメリット • 入力が多いと描きにくい(5入力まで?) • 直感的,発見的 • クワイン・マクラスキー法 (Quine-McCluskey) • アルゴリズムとして定式化したもの
Don’t Care • Don’t Care 「気にしない」 • 出力は,0でも 1でもよい • “ f ”,“ * ” などで表す • 回路が簡単になるように 適当に決めてよい その入力は こない その出力は 使われない 組み合わせ回路
Don’t Care z’w + x’yw z’w+ yw