sum of products: or로 연결된 하나 또는 그 이상의 product terms
sum term: or로 연결된 하나 또는 그 이상의 literals
maxterm: 모든 변수가 포함된 sum term
product of sum: and로 연결된 하나 또는 그 이상의 sum terms
standard form
sum of product
product of sum
canonical form --> 진리표에 대한 표준 algebraic expression(여러개의 표현 중 가장 기본이 되는 식)
sum of minterms(Σ)
product of maxterms(𝝿)
standard form이 canonical form을 포함함
standard form 중 특정 조건을 만족하는 것이 canonical form임
2. levels of logic
levels of logic --> 그 function에서 거치는 가장 많은 게이트의 갯수
not 게이트는 포함x --> 입력 변수를 컴플리먼트 하거나 게이트에 not을 붙여 제거 할 수 있음
3. xor & xnor
xor
입력에서 1의 갯수가 홀수이면 1 출력, 짝수이면 0 출력 --> 인풋의 갯수가 많을 때에도 마찬가지
인풋이 여러개 인 경우 0은 몇개가 들어오던 xor게이트를 지나면 결국은 0이 남음, 1의 경우는 홀수이면 1이 하나가 남아서 결과값이 1이 되고 짝수이면 결과값이 0이 됨!
xnor
입력에서 0의 갯수가 짝수이면 1 출력, 홀수이면 0출력
인풋이 여러개 인 경우 1에 대해서는 몇개가 있던 xnor게이트를 통과하면 모두 1임 --> 그렇기에 0의 갯수가 짝수이면 본인들끼리 xnor게이트를 통해 모두 1이 되고, 홀수이면 0이 남게 되어서 결과값이 1이 됨!(xnor게이트는 교환법칙이 성립하기 때문에 가능, 식을 그려보면 이해감)
xor, xnor는 인풋 변수가 두개씩 밖에 안됨 --> 인풋 변수가 여러개 인 경우는 xor, xnor게이트를 여러번 사용하기!
xor <-> xnor 변환
f'=(a⊕b⊕c⊕d⊕e)'= a⊙b⊕c⊕d⊕e = a⊕b⊕c⊙d⊕e --> 어느 곳이든 이들 중 하나만 xnor로 변경하면 됨
a, (b⊕c⊕d⊕e)를 두개의 항으로 보고 연산을 진행
f'=(a⊙b⊙c⊙d⊙e)'= a⊕b⊙c⊙d⊙e = a⊙b⊙c⊕d⊙e
n(인풋 개수) 짝수 --> f'=g (a⊕b⊕c⊕d⊕e)' = a⊙b⊙c⊙d⊙e
n 홀수 --> f=g a⊕b⊕c⊕d⊕e = = a⊙b⊙c⊙d⊙e
4. 카르노맵
boolean expression을 간단하게 하기 위해 사용 --> sum of minterms의 형식으로 나태내어 지는 것이 아님, 식을 간단히 하기 위해 사용
규칙
인접한 셀은 하나의 변수만이 차이가 나야함
묶을 때는 2의 n승 개수 만큼 묶어야 함(1개도 포함), 묶을 수 있는 한 가장 크게 묶어야 함, 가장 적은 수의 그룹으로
사이드끼리 묶을 수 있음
유의사항
변수가 4개인 경우 각 셀에 대한 순서를 유의!([0132][4576] [12,13,15,14][89,11,10])
변수 5개인 경우 --> 복잡하기 때문에 변수 4개 이상의 카르노맵은 잘 사용하지 않음!
a=0, a=1 경우 나누어서 생각
두개의 카르노맵이 수직으로 포개져 있다고 생각
hazard
circuit을 지날 때 발생하는 propagation 딜레이로 인해 발생 --> 변수 값이 변화 될 때 ouput값이 바뀌면 안되는 곳에서 값이 바뀌는 현상