460 likes | 963 Views
2. ブール代数 と 論理ゲート. 五島 正裕. 今日の内容. 本論 論理ゲート ブール 代数 論理 関数 論理関数 の完全性 「すべての論理回路は, AND , OR , NOT の組み合わせでできる」 今日のまとめ. 論理ゲート. 論理ゲート. NOT. AND. OR. (論理否定). (論理積). (論理和). MIL 記号 MIL symbol. a. a. z. z. a. z. b. b. 論理式 logic expression. z = a ∙ b. z = a’.
E N D
ディジタル回路 2. ブール代数 と 論理ゲート 五島 正裕
ディジタル回路 今日の内容 • 本論 • 論理ゲート • ブール代数 • 論理関数 • 論理関数の完全性 「すべての論理回路は,AND,OR,NOT の組み合わせでできる」 • 今日のまとめ
ディジタル回路 論理ゲート
ディジタル回路 論理ゲート NOT AND OR (論理否定) (論理積) (論理和) MIL記号 MIL symbol a a z z a z b b 論理式 logic expression z = a∙b z = a’ z = a + b z = a z = ¬ a 真理値表 truth table
論理ゲート buffer? NAND NOR MIL記号 MIL symbol a a z z a z b b 論理式 logic expression z = a z = (a∙b)’ z = (a + b)’ 真理値表 truth table ディジタル回路
論理ゲート XOR (EOR) XNOR (EQ) (排他的論理和) MIL記号 MIL symbol a a z z b b 論理式 logic expression b b z = a z = a 真理値表 truth table ディジタル回路
ディジタル回路 余談 1/2 • MIL 記号 • MIL : 米国軍用規格(Military Standard) • JIS の論理記号もある(が,誰も使わない)
ディジタル回路 余談 2/2 • OR と XOR • OR : (包含的)論理和 (inclusive-OR) • XOR : 排他的 論理和 (exclusive-OR) • 日常の「または」は,どっち? • 1年以下の懲役 または 100万円以下の罰金 • x = 0, 1 • 英語の Aand/orB
ディジタル回路 組み合わせ回路 (Combinational Circuit) a b z c d z = a∙b + c∙d
ディジタル回路 ブール代数
ディジタル回路 ブール代数 • ブール代数 (Boolean Algebra) • George Bool • 論理計算のために考案 • Claude Shannon • 論理回路に応用
ディジタル回路 ブール代数の公理 • 交換則 • 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
ディジタル回路 ブール代数の定理 • 対合則 • (x’)’= x • べき等則 • x∙x= x • x+x = x • 吸収則1 • x∙(x+y) = 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) • 双対とは,いわば,「対等」
ディジタル回路 論理関数
ディジタル回路 論理関数 • f : (i1, i2, …, in) → o (i1, i2, …, in, o : ブール変数) • 2入力論理関数:先ほどの AND,OR 等 • 1入力論理関数:NOT ,BUF 等 • 真理値表 (truth table) • 関数の定義
ディジタル回路 表による定義
ディジタル回路 n入力論理関数の数 • n入力の論理関数は 22nとおり • 入力は 2nとおり • そのそれぞれに,0 または 1 を指定できる 2n
ディジタル回路 すべての1,2入力論理関数 すべての1入力論理関数 21 = 2 すべての2入力論理関数 221= 4 22 = 4 222 = 16
ディジタル回路 すべての1,2入力論理関数 すべての1入力論理関数 21 = 2 すべての2入力論理関数 221= 4 XOR NOR 22 = 4 AND OR XNOR NAND
ディジタル回路 完全性
ディジタル回路 完全性(Completeness,完備性) • 完全集合 (Complete Set) • 論理関数の集合で,その要素の組み合わせによって,すべての論理関数を表現できる • 完全集合の例 • {AND, OR, NOT} • {AND, NOT} • {OR, NOT} • {NAND} • {NOR}
ディジタル回路 完全性の証明 {AND, OR, NOT} • 数学的帰納法: • 1入力の論理関数は {AND, OR, NOT} の組合せで表現できる • n入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して,(n + 1)入力の関数が表現できることをいう
ディジタル回路 完全性の証明 {AND, OR, NOT} • 1入力の論理関数はすべて,{AND, OR, NOT} の組合せで表現できる. o0 = 0 o1 = i1 o2 = i’1 o3 = 1 0 1
ディジタル回路 すべての1,2入力論理関数 すべての1入力論理関数 すべての2入力論理関数
ディジタル回路 完全性の証明 {AND, OR, NOT} • 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう f = i’2∙ f10 + i2∙ f11 0 f10 i1 f11 1 i2 = 0
ディジタル回路 完全性の証明 {AND, OR, NOT} • 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう f = i’2∙ f10 + i2∙ f11 0 f10 i1 f11 1 i2 = 1
ディジタル回路 たとえば AND すべての1入力論理関数 すべての2入力論理関数 AND
ディジタル回路 たとえば AND • 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう f = i’2∙ f10 + i2∙ f11 0 f10 i1 f11 1 i2 = 0
ディジタル回路 たとえば AND • 1 入力の関数が {AND, OR, NOT} の組合せで表現できたので,2 入力の関数が表現できることをいう f = i’2∙ f10 + i2∙ f11 0 f10 i1 f11 1 i2 = 1
ディジタル回路 完全性の証明 {AND, OR, NOT} • n 入力の関数を {AND, OR, NOT} の組合せで表現できたと仮定して,(n + 1) 入力の関数が表現できることをいう f = i’n+1∙ fn0 + in+1∙ fn1 fn0 i1 • … i2 • … in fn1 • … in+1
ディジタル回路 LUT による完全性の証明 1/3 • LUT : Look-Up Table • ハードウェアで,真理値表そのものを作る方法 • 1-bit×2n-word のメモリ • FPGA (Field-Programmable Gate Array) で多用される
ディジタル回路 i2i1i0: アドレス LUT による完全性の証明 2/3 o i0 i1 i2
ディジタル回路 LUT による完全性の証明 3/3 • … • … o • … • … i1 • … in in+1
ディジタル回路 完全性の証明 一般の場合 • {AND, OR, NOT} が作れることを言う • ex) {NAND} AND OR NOT
ディジタル回路 今日のまとめ
ディジタル回路 ブール代数 • 完全集合: • すべての論理関数が作れる • 完全集合の例: • {AND,OR,NOT} • {NAND} • 完全集合をディジタル回路で作ればよい! • 実際は,{NAND,NOR,NOT, XOR (XNOR)}