ディジタル回路 2. ブール代数 と 論理ゲート 五島 正裕 DATE : ディジタル回路 今日の内容 1. 本論 1. 論理ゲート 2. ブール代数 3. 論理関数 4. 論理関数の完全性 「すべての論理回路は,AND,OR,NOT の組み合わせでできる」 2. 今日のまとめ 2 ディジタル回路 論理ゲート 3 ディジタル回路 論理ゲート AND (論理積) MIL記号 MIL symbol a b a z b 論理式 logic expression 真理値表 truth table z = a∙b NOT (論理否定) OR (論理和) z a z=a+b a b z a b z 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 1 1 z z = a’ z=a z=¬a a z 0 1 1 0 論理ゲート NAND MIL記号 MIL symbol 論理式 logic expression 真理値表 truth table a b buffer? NOR a z b z = (a∙b)’ z a z = (a + b)’ z z=a a b z a b z 0 0 1 0 0 1 a z 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 1 1 1 0 1 1 0 ディジタル回路 論理ゲート XOR (EOR) (排他的論理和) MIL記号 MIL symbol 論理式 logic expression 真理値表 truth table a b XNOR (EQ) a z b b z=a z b z=a a b z a b z 0 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 ディジタル回路 ディジタル回路 余談 1/2 MIL 記号 MIL : 米国軍用規格(Military Standard) JIS の論理記号もある(が,誰も使わない) 7 ディジタル回路 余談 2/2 OR と XOR OR : XOR : (包含的)論理和 (inclusive-OR) 排他的 論理和 (exclusive-OR) 日常の「または」は,どっち? 1年以下の懲役 または 100万円以下の罰金 x = 0, 1 英語の A and/or B 8 ディジタル回路 組み合わせ回路 (Combinational Circuit) a b c d z z = a∙b + c∙d 9 ディジタル回路 ブール代数 10 ディジタル回路 ブール代数 ブール代数 (Boolean Algebra) George Bool 論理計算のために考案 Claude Shannon 論理回路に応用 11 ディジタル回路 ブール代数の公理 交換則 x ∙ y = y ∙ x x + y = y + x 結合則 (x ∙ y) ∙ z = x ∙ (y ∙ z) (x + y) + z = x + (y + z) 分配則 x ∙ (y + z) = x ∙ y + x ∙ z x + y ∙ z = (x + y) ∙ (x + z) 単位元 1 が存在する ∀x, x∙1 = x 零元 0 が存在する ∀x, x + 0 = x 補元 x’ が存在する ∀x, x∙x’ = 0 ∀x, x + x’ = 1 ディジタル回路 ブール代数の例 ― 論理演算 論理演算 単位元 : 1 零 元 :0 論理積 : 0・0 = 0, 0・1 = 0, 1・0 = 0, 1・1 = 1 論理和 : 0+0 = 0, 0+1 = 1, 1+0 = 1, 1+1 = 1 補 元 : 0’ = 1, 1’ = 0 14 ディジタル回路 ブール代数の定理 吸収則1 x ∙ (x + y) = x 対合則 (x’)’ = x べき等則 x ∙ x = x x + x = x x + (x ∙ y) = x 吸収則2 x ∙ (x’ + y) = x ∙ y x + (x’ ∙ y) = x + y ド・モルガンの定理 (x∙y)’ = x’ + y’ (x + y)’ = (x’)∙(y’) ド・モルガンの法則 (x∙y)’ = x’ + y’ (x + y)’ = (x’)∙(y’) ベン図 ディジタル回路 ディジタル回路 双対性 (Duality) ブール代数の公理は「ペア」 “∙” (AND) ⇔ “+” (OR), “0” ⇔ “1” を入れ替えると入れ替わる 分配則:“+” も分配する x ∙ (y + z) = (x ∙ y) + (x ∙ z) x + (y ∙ z) = (x + y) ∙ (x + z) 双対とは,いわば,「対等」 17 ディジタル回路 論理関数 18 ディジタル回路 論理関数 f : (i1, i2, …, in) → o (i1, i2, …, in, o : ブール変数) 2入力論理関数:先ほどの AND,OR 等 1入力論理関数:NOT ,BUF 等 真理値表 (truth table) o 0 0 … 0 0/1 0 0 … 1 0/1 1 1 … 1 … … … … … 関数の定義 i1 i2 … in 0/1 19 ディジタル回路 表による定義 式 普通の 関数 f(x) = x 表 定義 x f(x) 0 0 1 1 f(x) = x 定義 … … 論理 関数 定義ではない x f(x) 0 0 1 1 定義 20 ディジタル回路 n入力論理関数の数 n n入力の論理関数は 2 とおり 2 n 入力は 2 とおり そのそれぞれに,0 または 1 を指定できる o 0 0 … 0 0/1 0 0 … 1 0/1 1 1 … 1 … … … … … 2 n i1 i2 … in 0/1 21 ディジタル回路 すべての1,2入力論理関数 1 2 =2 i1 o0 o1 o2 o3 0 0 0 1 1 1 0 1 0 1 すべての1入力論理関数 すべての2入力論理関数 1 22 = 4 i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15 0 0 0 0 0 0 0 0 0 1 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 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2 2 =4 1 22 2 = 16 ディジタル回路 すべての1,2入力論理関数 1 2 =2 i1 o0 o1 o2 o3 0 0 0 1 1 1 0 1 0 1 すべての1入力論理関数 すべての2入力論理関数 1 22 = 4 i2 XOR NOR i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15 0 0 0 0 0 0 0 0 0 1 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 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 2 2 =4 1 AND OR XNOR NAND ディジタル回路 完全性 24 ディジタル回路 完全性(Completeness,完備性) 完全集合 (Complete Set) 論理関数の集合で, その要素の組み合わせによって,すべての論理関数を表現できる 完全集合の例 {AND, OR, NOT} {AND, NOT} {OR, NOT} {NAND} {NOR} 25 ディジタル回路 完全性の証明 {AND, OR, NOT} 数学的帰納法: 1. 1入力の論理関数は {AND, OR, NOT} の組合せで表現できる 2. n 入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して, (n + 1) 入力の関数が表現できることをいう 26 ディジタル回路 完全性の証明 {AND, OR, NOT} 1. 1入力の論理関数はすべて,{AND, OR, NOT} の組合せで表現できる. o0 = 0 0 i1 o0 o1 o2 o3 0 0 0 1 1 1 0 1 0 1 o1 = i1 o2 = i’1 o3 = 1 1 27 ディジタル回路 すべての1,2入力論理関数 i1 o0 o1 o2 o3 0 0 0 1 1 1 0 1 0 1 すべての1入力論理関数 すべての2入力論理関数 i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15 0 0 0 0 0 0 0 0 0 1 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 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ディジタル回路 完全性の証明 {AND, OR, NOT} 1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので, 2 入力の関数が表現できることをいう f = i’2∙ f10 + i2 ∙ f11 0 f10 i1 f11 1 i2 = 0 29 ディジタル回路 完全性の証明 {AND, OR, NOT} 1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので, 2 入力の関数が表現できることをいう f = i’2∙ f10 + i2 ∙ f11 0 f10 i1 f11 1 i2 = 1 30 ディジタル回路 たとえば AND i1 o0 o1 o2 o3 0 0 0 1 1 1 0 1 0 1 すべての1入力論理関数 すべての2入力論理関数 i2 i1 o0 o1 o2 o3 o4 o5 o6 o7 o8 o9 o10 o11 o12 o13 o14 o15 0 0 0 0 0 0 0 0 0 1 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 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 AND ディジタル回路 たとえば AND 1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので, 2 入力の関数が表現できることをいう f = i’2∙ f10 + i2 ∙ f11 0 f10 i1 f11 1 i2 = 0 32 ディジタル回路 たとえば AND 1. 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので, 2 入力の関数が表現できることをいう f = i’2∙ f10 + i2 ∙ f11 0f10 i1 f11 1 i2 = 1 33 ディジタル回路 完全性の証明 {AND, OR, NOT} 1. n 入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して, (n + 1) 入力の関数が表現できることをいう in+1 in … i2 0 0 … 0 1 1 0 … 0 0 0 … 0 1 … … … 1 … 1 1 fn0 fn1 … … 1 in … … … … … 1 i1 i2 … 0 o … … … 1 0 … 0 i1 f = i’n+1∙ fn0 + in+1∙ fn1 in+1 34 ディジタル回路 LUT による完全性の証明 1/3 LUT : Look-Up Table ハードウェアで,真理値表そのものを作る方法 n 1-bit × 2 -word のメモリ FPGA (Field-Programmable Gate Array) で多用される 35 ディジタル回路 LUT による完全性の証明 2/3 i2i1i0 : アドレス i2 i1 i0 o 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 o i0 i1 i2 ディジタル回路 LUT による完全性の証明 3/3 in in−1 … i0 o 0 0 … 0 0 0 … 1 … … … 0 1 1 … 1 1 0 … 0 1 0 … 1 … … … 0 1 1 … 1 … … … 1 o … … 1 … … 1 … … 1 … i1 … in in+1 ディジタル回路 完全性の証明 一般の場合 {AND, OR, NOT} が作れることを言う ex) {NAND} AND OR NOT 38 ディジタル回路 今日のまとめ 42 ディジタル回路 ブール代数 完全集合: すべての論理関数が作れる 完全集合の例: {AND,OR,NOT} {NAND} 完全集合をディジタル回路で作ればよい! 実際は,{NAND,NOR,NOT, XOR (XNOR)} 43
© Copyright 2024 ExpyDoc