View
1.501
Download
13
Category
Preview:
DESCRIPTION
Citation preview
제제 44 강강 . . 디지털 논리디지털 논리제제 44 강강 . . 디지털 논리디지털 논리
1
PerelmanPerelman
2
http://englishrussia.com/index.php/2007/06/15/perelman-in-a-subway/
0. 0. 개요개요
3
HIGH
LOWLOW
HIGH
+5
+3.5
+0.8
0
전압 [V]
+2.5
+1.5
출력신호 입력신호
1. 1. 부울 대수의 개념부울 대수의 개념
부울 대수와 명제 논리 집합 이론
• 수학적 대상을 원소로 하는 집합• 집합의 원소에 대해 정의된 연산 (operation) 의 집합• 집합의 여러가지 법칙
명제이론 - 논리
• 참과 거짓• 다양한 연산자 이용 :
• 참과 거짓만 갖은 여러가지 법칙
[ 참고 ]• 부울 대수는 1854 년 영국의 수학자 부울 (George Boole: 1815~1864) 에 의해 수학적 논리 형태로 소개되어 , 논리회로의 설계를 비롯한 중요한 컴퓨터 분야에 응용되고 있음• 집합 B 의 원소인 1 과 0 은 명제와 논리에서 각각 T( 참 ; true) 와 F( 거짓 ; false) 에 대응하며 , 집합 O 의 원소는 집합의 연산과 논리의 연산을 포괄하는 개념임
[ 참고 ]• 부울 대수는 1854 년 영국의 수학자 부울 (George Boole: 1815~1864) 에 의해 수학적 논리 형태로 소개되어 , 논리회로의 설계를 비롯한 중요한 컴퓨터 분야에 응용되고 있음• 집합 B 의 원소인 1 과 0 은 명제와 논리에서 각각 T( 참 ; true) 와 F( 거짓 ; false) 에 대응하며 , 집합 O 의 원소는 집합의 연산과 논리의 연산을 포괄하는 개념임
1. 1. 부울 대수의 개념부울 대수의 개념
부울 대수 (Boolean Algebra) 란 ? 대수계 (Algebraic system) 의 구성요소
• 수학적 대상을 원소로 하는 집합• 집합의 원소에 대해 정의된 연산 (operation) 의 집합• 연산이 만족하는 기본적인 법칙으로 구성된 공리 (axiom) 의 집합
부울 대수의 정의 : (B, O, A)= (B,+, ,’, 0,1)
• B 는 2 진수를 표현하는 단위 숫자의 집합 {0, 1}
• O 는 B 에 적용되는 연산의 집합 ( 예 : {+( 부울합 ), ( 부울곱 ), ’( 보수 )})
• Commutative laws: a + b = b + a, a C b=b a• Distributive laws: a +(b c)=(a+b) (a+c), a (b+c)=ab+ac• Identity laws: a +0=a, a1=a
• Complement laws: a+ a’=1, aa’=0
1. 1. 부울 대수의 개념부울 대수의 개념
부울 연산자 (Boolean Operators) 부울합 (Boolean sum)
• 부울합은 + ( 또는 ∨ , OR) 로 표기하며 , 이항 연산 (binary operation) 임
• 연산 규칙 x + y
0
1
1
x y
0 0
0 1
1 0
1 1 1
부울곱 (Boolean product)
• 부울곱은 ( 또는 ∧ , AND) 로 표기하며 , 이항 연산임
• 연산 규칙 x y
0
0
0
x y
0 0
0 1
1 0
1 1 1
1. 1. 부울 대수의 개념부울 대수의 개념
부울 연산자 ( 계속 )
보수 (Complementation)
• 보수는 ’ ( 또는 ~, NOT) 로 표기하며 , 단항 연산 (unary operation) 임
• 연산 규칙x x’
0 1
1 0
연산자 우선순위 (Precedence)
• 괄호 ≫ NOT(’) ≫ AND() ≫ OR(+)• 예제
① x + y z = x + (y z)
≠ (x + y) z
② x y’ = x (y’)
≠ (x y)’
= x + yz
[ 참고 ] 특별히 혼돈이 없는 경우에 AND() 기호는 생략이 가능함
[ 참고 ] 특별히 혼돈이 없는 경우에 AND() 기호는 생략이 가능함
예제 – 다음 부울 연산의 결과는 ?
• 1 + 1 = 1
• 1’ + 0 = 0 + 0 = 0
• 0 + 0’ = 0 + 1 = 1
• 1 1’ = 1 0 = 0
• (1 1)’ = 1’ = 0
• 0 + 1’ 1 = 0 + (0 1) = 0 + 0 = 0
2. 2. 부울 대수의 법칙부울 대수의 법칙
부울 대수 법칙 (Laws of Boolean Algebra)
종류 기본법칙 비고 교환법칙
(commutative laws) 1) x + y = y + x 2) xy = yx
멱등법칙(idempotent laws)
9) x + x = x10) xx = x
분배법칙(distributive laws)
3) x(y + z) = xy + xz 4) x + yz = (x + y)(x + z)
4) 는 일반 수식에서는 성립하지 않음
항등법칙(identity laws)
5) x + 0 = x 6) x 1 = x
+ 에 대한 항등원 0 이 존재하며 , 에 대한 항등원 1 이 존재함
보법칙(complement laws)
7) x + x’ = 1 8) xx’ = 0
[ 참고 ] 멱등법칙 9) 의 증명 x + x = (x + x) 1 항등법칙 6) 에 의해서
= (x + x)(x + x’) 보법칙 7) 에 의해서 = x + xx’ 분배법칙 4) 에 의해서 = x + 0 보법칙 8) 에 의해서 = x 항등법칙 5) 에 의해서
[ 참고 ] 멱등법칙 9) 의 증명 x + x = (x + x) 1 항등법칙 6) 에 의해서
= (x + x)(x + x’) 보법칙 7) 에 의해서 = x + xx’ 분배법칙 4) 에 의해서 = x + 0 보법칙 8) 에 의해서 = x 항등법칙 5) 에 의해서
2. 2. 부울 대수의 법칙부울 대수의 법칙
부울 대수 법칙 ( 계속 )
종류 기본법칙 비고
지배법칙(dominance laws)
11) x + 1 = 112) x 0 = 0
[ 증명 ] 11) x + 1 = 1x + 1 = 1 (x + 1) 항등법칙 6)
= (x + x’)(x + 1) 보법칙 7)= x + x’ 1 분배법칙 4)= x + x’ 항등법칙 6)= 1 보법칙 7)
이중보수법칙(double complement laws)
13) (x’)’ = x
결합법칙(associative laws)
14) x + (y + z) = (x + y) + z15) x(yz) = (xy)z
드모르강법칙(De Morgan’s laws)
16) (x + y)’ = x’y’17) (xy)’ = x’ + y’
(x1 + x2 + … + xn)’ = x1’ x2’ … xn’(x1 x2 … xn)’ = x1’ + x2’ + … + xn’
흡수법칙(absorption laws)
18) x + xy = x19) x(x + y) = x
[ 증명 ] 18) x + xy = xx + xy = x 1 + xy 항등법칙 6)
= x(1 + y) 분배법칙 3)= x(y + 1) 교환법칙 1)= x 1 지배법칙 11)= x 항등법칙 6)
x’ + xy’
1
1
1
0
부울 함수 (Boolean Function) 정의
3. 3. 부울 함수와 부울식부울 함수와 부울식
• 집합 B = {0, 1} 일 때 , 부울 함수 (Boolean function) f : Bn → B 는 Bn 내의 임의의 n- 튜플 {(x1, x2, …, xn) | xi ∈ B, 1≤i≤n} 에서 B 로 사상되는 함수임
부울 변수 (Boolean variable) 인 xi 는 0 또는 1 의 값을 가지므로 비트 (bit; binary digit) 라고도 함
정의역은 곱집합 (Cartesian product) 인 Bn = {0, 1}1 x {0, 1}2 x … x {0, 1}n 이고 , 치역은 B = {0, 1} 임
진리표 (truth table)
• 부울 함수의 n 개의 부울 변수는 2n 개의 0 과 1 의 조합을 가질 수 있으므로 2n 개의 열 (column) 을 갖는 진리표를 구성하여 함수 값을 표현할 수 있음
• 예제 – 부울 함수 f(x, y) = x’ + xy’ 에 대한 진리표를 나타내면 ?
x y
0 0
0 1
1 0
1 1
x’
1
1
0
0
y’
1
0
1
0
xy’
0
0
1
0
부울 함수 ( 계속 )
3. 3. 부울 함수와 부울식부울 함수와 부울식
동치 함수 (Equal function)
• n 개의 변수로 구성된 부울 함수 f 와 g 의 모든 변수값 b1, b2, …, bn 에 대해 f(b1, b2, …, bn) = g(b1, b2, …, bn) 이면 , f 와 g 는 동치 (equal) 라고 하고 f = g 로 표현함
• 예제 – 부울 함수 f(x, y, z) = (x + y + z)’ 와 g(x, y, z) = x’ y’ z’ 에 대해서 f 와 g 가 동치 ( 즉 , f = g) 임을 진리표를 사용하여 보이면 ?
x y
0 0
0 0
0 1
0 1
z
0
1
0
1
1 0
1 0
1 1
1 1
0
1
0
1
x + y
0
0
1
1
1
1
1
1
x + y + z
0
1
1
1
1
1
1
1
(x + y + z)’
1
0
0
0
0
0
0
0
x’ y’
1 1
1 1
1 0
1 0
z’
1
0
1
0
0 1
0 1
0 0
0 0
1
0
1
0
x’ y’
1
1
0
0
0
0
0
0
x’ y’ z’
1
0
0
0
0
0
0
0
f = g
부울 함수 ( 계속 )
3. 3. 부울 함수와 부울식부울 함수와 부울식
보함수 (Complementary function)
• 부울 함수 f 의 모든 변수값 b1, b2, …, bn 에 대해 항상 그 결과가 보수의 값을 갖는 함수 f’ 를 f 의 보함수 (complementary function) 라고 함 즉 , f’(b1, b2, …, bn) = (f(b1, b2, …, bn))’ 가 성립함
• 예제 – 부울 함수 f(x, y, z) = x’ + yz 의 보함수는 f’(x, y, z) = xy’ + xz’ 임을 진리표를 사용하여 보이면 ?
x y
0 0
0 0
0 1
0 1
z
0
1
0
1
1 0
1 0
1 1
1 1
0
1
0
1
x’
1
1
1
1
0
0
0
0
yz
0
0
0
1
0
0
0
1
x’ + yz
1
1
1
1
0
0
0
1
y’
1
1
0
0
1
1
0
0
z’
1
0
1
0
1
0
1
0
xy’ + xz’
0
0
0
0
1
1
1
0
xy’
0
0
0
0
1
1
0
0
xz’
0
0
0
0
1
0
1
0
f’(x, y, z) = (f(x, y, z))’
부울식이 아님 (2 는 집합 B 의 원소가 아님 )
3. 3. 부울 함수와 부울식부울 함수와 부울식
부울식 (Boolean Expression) 정의
• 부울 대수 (B, O, A) 에서 부울 변수 x1, x2, …, xn 에 대한 부울식은 다음과같이 재귀적으로 정의됨
0, 1, x1, x2, …, xn 은 각각 부울식임
E1 과 E2 가 부울식이면 , (E1), E1’, E1 + E2, E1 E2 도 각각 부울식임
• 부울 함수를 구성하는 수식을 부울식 (Boolean expression) 이라고 함
예제
• 다음 중 부울 변수 x1, x2, x3 에 대한 부울식을 고르면 ?
0 1 + x1 + (x2 x3’)
(x1’ + 1)’ (x1 + 0)
(0 + 2) x1
x1 + x2 + x3
(1 – 0) + (x1 + x2)’
부울식임
부울식임
부울식임
부울식이 아님 (– 는 부울 연산자가 아님 )
3. 3. 부울 함수와 부울식부울 함수와 부울식
쌍대성 원리 (Principles of Duality) 정의
• 집합 ( 제 2 강 참고 ) 과 마찬가지로 부울 대수에서도 다음 규칙을 적용하여쌍대 (dual) 가 되는 부울식을 구성할 수 있음
부울식에서 부울곱 () 은 부울합 (+) 으로 , 부울합은 부울곱으로 변경 부울식에서 0 은 1 로 , 1 은 0 으로 변경• 부울 대수의 유효한 법칙에 대해서 그 쌍대가 되는 법칙도 항상 유효함
예제
• 다음 각 부울식의 쌍대를 구하면 ?
1 + xy 0 (x + y)
(xy)’ + x (x + y)’ x
0 + (x + yz) 1 (x (y + z))
x + xy = x x(x + y) = x
(x’ + z)(xy’ + z) = z x’z + (x + y’)z = z
4. 4. 최소항최소항 //최대항최대항
표현 가능한 부울 함수의 개수 문제
• n 개의 부울 변수로 만들 수 있는 부울 함수는 몇 개나 되는가 ?( 단 , 동치인 함수는 하나로 카운트함 )
22n 개
이유
• n 개의 부울 변수가 가질 수 있는 값의 조합 c = 2n 가지임• c 가지의 경우에 대해 진리표에서 표현할 수 있는 결과의 개수는
2c (= 22n) 개임
예제
• 2 개의 부울 변수 x, y 로 만들 수 있는 부울 함수의 개수는 ?
222 = 24 = 16
( 개 )• 가능한 부울 함수를 모두 나타내면 ?
( 뒷장에 계속 )
표현 가능한 부울 함수의 개수 ( 계속 )
예제 ( 계속 )
x
0
0
1
1
y
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f10
1
0
1
0
f11
1
0
1
1
f12
1
1
0
0
f13
1
1
0
1
f14
1
1
1
0
f15
1
1
1
1
f0(x, y) = 0
f1(x, y) = xy
f2(x, y) = xy’
f3(x, y) = xy’ + xy
f4(x, y) = x’y
f5(x, y) = x’y + xy
f6(x, y) = x’y + xy’
f7(x, y) = x’y + xy’ + xy
f8(x, y) = x’y’
f9(x, y) = x’y’ + xy
f10(x, y) = x’y’ + xy’
f11(x, y) = x’y’ + xy’ + xy
f12(x, y) = x’y’ + x’y
f13(x, y) = x’y’ + x’y + xy
f14(x, y) = x’y’ + x’y + xy’
f15(x, y) = 1
4. 4. 최소항최소항 //최대항최대항
최소항 (Minterms)/ 최대항 (Maxterms) 최소항
• 부울 변수의 곱으로만 표현되는 부울식을 최소항 (minterms) 이라고 함
• 최소항과 최대항은 서로 보수의 관계가 성립함( 즉 , 최소항을 mi, 최대항을 Mi 라고 할 때 , mi’ = Mi 임 ) 예 : (xy’z)’ = x’ + y + z’
• n 개의 부울 변수 x1, x2, …, xn 에 대한 최소항의 형식 y1 y2 … yn ( 단 , yi = xi 또는 yi = (xi)’ 이며 , 1≤i≤n)
• 부울 변수의 값을 대입하면 최소항의 결과는 1 이 됨( 예 : 부울 변수의 값이 x = 1, y = 0, z = 1 일 때 , 최소항은 xy’z 로 표현함 )
최대항
• 부울 변수의 합으로만 표현되는 부울식을 최대항 (maxterms) 이라고 함
• n 개의 부울 변수 x1, x2, …, xn 에 대한 최대항의 형식 y1 + y2 + … + yn ( 단 , yi = xi 또는 yi = (xi)’ 이며 , 1≤i≤n)
• 부울 변수의 값을 대입하면 최대항의 결과는 0 이 됨 ( 예 : 부울 변수의 값이 x = 1, y = 0, z = 1 일 때 , 최대항은 x’ + y + z’ 로 표현함 )
4. 4. 최소항최소항 //최대항최대항
최소항 /최대항 ( 계속 )
예제
• 3 개의 부울 변수 x, y, z 에 대한 최소항과 최대항을 구하면 ?
x y
0 0
0 0
0 1
0 1
z
0
1
0
1
1 0
1 0
1 1
1 1
0
1
0
1
최소항x’y’z’ (m0)
x’y’z (m1)
x’yz’ (m2)
x’yz (m3)
xy’z’ (m4)
xy’z (m5)
xyz’ (m6)
xyz (m7)
최대항x + y + z (M0)
x + y + z’ (M1)
x + y’ + z (M2)
x + y’ + z’ (M3)
x’ + y + z (M4)
x’ + y + z’ (M5)
x’ + y’ + z (M6)
x’ + y’ + z’ (M7)
• 최소항과 최대항은 진리표에 대응하는 부울 함수를 정규화된 형식으로표현하기 위하여 주로 사용함
• n 개의 변수에 대한 진리표는 2n 개의 최소항과 2n 개의 최대항을 가짐
특징
4. 4. 최소항최소항 //최대항최대항
5. 5. 곱의 합곱의 합 //합의 곱합의 곱
곱의 합 (Sum of Products)/ 합의 곱 (Product of Sums) 곱의 합
• 모든 부울 함수는 결과가 1 인 최소항들의 부울합으로 표현할 수 있으며 ,이런 표현을 곱의 합 (sum of products) 형식이라고 함 논리합 정형 (disjunctive normal form) 이라고도 함
• 예 : f(x, y, z) = x’y’z + xy’z’ + xyz
합의 곱
• 모든 부울 함수는 결과가 0 인 최대항들의 부울곱으로 표현할 수 있으며 ,이런 표현을 합의 곱 (product of sums) 형식이라고 함 논리곱 정형 (conjunctive normal form) 이라고도 함
• 예 : f(x, y, z) = (x + y + z’)(x’ + y + z)(x’ + y’ + z’)
[ 참고 ] 정규형 (Canonical form)• 곱의 합 또는 합의 곱으로 표현된 부울식을 정규형 (canonical form) 이라고 하며 ,
그렇지 않은 식은 비정규형이라고 함
[ 참고 ] 정규형 (Canonical form)• 곱의 합 또는 합의 곱으로 표현된 부울식을 정규형 (canonical form) 이라고 하며 ,
그렇지 않은 식은 비정규형이라고 함
예제 진리표에 대한 부울 함수 구하기
• 3 개의 부울 변수 x, y, z 에 대한 진리표가 다음과 같을 때 부울 함수f(x, y, z) 를 곱의 합 형식으로 표현하면 ? 또한 합의 곱 형식으로 표현하면 ?
x y
0 0
0 0
0 1
0 1
z
0
1
0
1
1 0
1 0
1 1
1 1
0
1
0
1
최소항x’y’z’ (m0)
x’y’z (m1)
x’yz’ (m2)
x’yz (m3)
xy’z’ (m4)
xy’z (m5)
xyz’ (m6)
xyz (m7)
최대항x + y + z (M0)
x + y + z’ (M1)
x + y’ + z (M2)
x + y’ + z’ (M3)
x’ + y + z (M4)
x’ + y + z’ (M5)
x’ + y’ + z (M6)
x’ + y’ + z’ (M7)
f(x, y, z)
0
1
1
0
1
1
0
0
곱의 합 형식 : f(x, y, z) = x’y’z + x’yz’ + xy’z’ + xy’z = m1 + m2 + m4 + m5 = ∑(1, 2, 4, 5)
합의 곱 형식 : f(x, y, z) = (x + y + z)(x + y’ + z’)(x’ + y’ + z)(x’ + y’ + z’) = M0M3M6M7 = ∏(0, 3, 6, 7)
5. 5. 곱의 합곱의 합 //합의 곱합의 곱
예제 ( 계속 ) 곱의 합 / 합의 곱 형식이 동치임을 증명
• 곱의 합 형식인 f(x, y, z) = x’y’z + x’yz’ + xy’z’ + xy’z 과 합의 곱 형식인f(x, y, z) = (x + y + z)(x + y’ + z’)(x’ + y’ + z)(x’ + y’ + z’) 이 동치임을 보이면 ?
[ 증명 ]
곱의 합 형식인 f(x, y, z) = x’y’z + x’yz’ + xy’z’ + xy’z = ∑(1, 2, 4, 5) 일 때 ,그 보함수는 f’(x, y, z) = x’y’z’ + x’yz + xyz’ + xyz = ∑(0, 3, 6, 7) 이 됨 .
보함수의 정의에 따라 f(x, y, z) = (f’(x, y, z))’ 이므로 (f’(x, y, z))’ = (x’y’z’ + x’yz + xyz’ + xyz)’
드모르강 법칙을 적용하면 = (x’y’z’)’ (x’yz)’ (xyz’)’ (xyz)’ = (x + y + z) (x + y’ + z’) (x’ + y’ + z) (x’ + y’ + z’)
따라서 합의 곱 형식인 f(x, y, z) = ∏(0, 3, 6, 7) 이 성립함
5. 5. 곱의 합곱의 합 //합의 곱합의 곱
예제 ( 계속 ) 일반적인 부울 함수의 정규형 변환
• 부울 함수 f(x, y, z) = x’y + z’ 를 정규형 ( 즉 , 곱의 합 형식과 합의 곱 형식 )으로표현하면 ?x y
0 0
0 0
0 1
0 1
z
0
1
0
1
1 0
1 0
1 1
1 1
0
1
0
1
최소항x’y’z’ (m0)
x’y’z (m1)
x’yz’ (m2)
x’yz (m3)
xy’z’ (m4)
xy’z (m5)
xyz’ (m6)
xyz (m7)
최대항x + y + z (M0)
x + y + z’ (M1)
x + y’ + z (M2)
x + y’ + z’ (M3)
x’ + y + z (M4)
x’ + y + z’ (M5)
x’ + y’ + z (M6)
x’ + y’ + z’ (M7)
f(x, y, z)
1
0
1
1
1
0
1
0
x’y
0
0
1
1
0
0
0
0
x’
1
1
1
1
0
0
0
0
곱의 합 형식 : f(x, y, z) = ∑(0, 2, 3, 4, 6) = m0 + m2 + m3 + m4 + m6 = x’y’z’ + x’yz’ + x’yz + xy’z’ + xyz’
합의 곱 형식 : f(x, y, z) = ∏(1, 5, 7) = M1M5M7 = (x + y + z’)(x’ + y + z’)(x’ + y’ + z’)
z’
1
0
1
0
1
0
1
0
5. 5. 곱의 합곱의 합 //합의 곱합의 곱
6. 6. 논리 게이트논리 게이트
논리 게이트 (Logic Gate) 란 ? 정의
• 디지털 신호를 갖는 전자 회로를 표현하는 가장 기본이 되는 단위로서하나 이상의 입력과 하나의 출력을 갖는 장치를 논리 게이트 (logic gate)라고 함
• 부울 대수의 Bn 에서 B 로의 함수 ( 여기서 B = {0, 1} 임 ) 로 표현이 가능함
종류
• AND 게이트• OR 게이트• NOT 게이트• NAND(NOT-AND) 게이트• NOR(NOT-OR) 게이트• XOR(Exclusive-OR) 게이트• XNOR(Exclusive-NOR) 게이트• Buffer 게이트
6. 6. 논리 게이트논리 게이트
AND 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 xy 를 출력으로 얻는 게이트
진리표
x
yxy
x y
0 0
0 1
1 0
1 1
입력
xy
0
0
0
1
출력
다이어그램
xy = 1 if x = y = 1
0 otherwise
x1x2…xn
x1x2
xn
∙∙∙
다중입력 AND 게이트
6. 6. 논리 게이트논리 게이트
OR 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 x + y 를 출력으로 얻는 게이트
진리표
x y
0 0
0 1
1 0
1 1
입력
x + y
0
1
1
1
출력
다이어그램
x + y = 0 if x = y = 0
1 otherwise
x
yx + y x1+x2+…+xn
x1x2
xn
∙∙∙
다중입력 OR 게이트
6. 6. 논리 게이트논리 게이트
NOT 게이트 정의
• 임의의 x {0, 1}∈ 를 입력하여 x’ 를 출력으로 얻는 게이트
진리표
x
0
1
입력
x’
1
0
출력
다이어그램
x’ = 1 if x = 0
0 if x = 1
x x’
• 인버터 (inverter) 라고도 함
NAND 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 x↑y = (xy)’ 를 출력으로 얻는 게이트
진리표
x y
0 0
0 1
1 0
1 1
입력
x↑y
1
1
1
0
출력
다이어그램
x↑y = 0 if x = y = 1
1 otherwise
x
yx↑y
6. 6. 논리 게이트논리 게이트
x
yx’ + y’
동치인 NAND 게이트
NOR 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 x↓y = (x + y)’ 를 출력으로 얻는 게이트
진리표
x y
0 0
0 1
1 0
1 1
입력
x↓y
1
0
0
0
출력
다이어그램
x↓y = 1 if x = y = 0
0 otherwise
6. 6. 논리 게이트논리 게이트
x
yx↓y
x
yx’y’
동치인 NOR 게이트
XOR 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 x y = x’y + xy’ 를 출력으로 얻는 게이트
진리표
x y
0 0
0 1
1 0
1 1
입력
x y
0
1
1
0
출력
다이어그램
6. 6. 논리 게이트논리 게이트
x y = 0 if x = y
1 otherwise
x
yx y
XNOR 게이트 정의
• 임의의 x, y {0, 1}∈ 를 입력하여 x y = x’y’ + xy 를 출력으로 얻는 게이트
진리표
x y
0 0
0 1
1 0
1 1
입력
x y
1
0
0
1
출력
다이어그램
6. 6. 논리 게이트논리 게이트
x y = 1 if x = y
0 otherwise
x
yx y
Buffer 게이트 정의
6. 6. 논리 게이트논리 게이트
• 임의의 x {0, 1}∈ 를 입력하여 x 를 그대로 출력으로 얻는 게이트
진리표
x
0
1
입력
x
0
1
출력
다이어그램
x = 1 if x = 1
0 if x = 0
x x
• 입력 시간을 지연시키는데 사용됨
논리 회로 (Logic Circuit) 란 ? 정의
7. 7. 논리 회로논리 회로
• 논리 게이트의 조합으로 구성된 회로를 논리 회로 (logic circuit) 라고 함• 모든 부울 함수는 논리 회로로 변환이 가능함
부울 함수의 논리 회로 표현 방법
• 합의 곱 (product of sums) 형식 다수의 OR 게이트가 하나의 AND 게이트에 연결되는 형태로 표현함
• 곱의 합 (sum of products) 형식 다수의 AND 게이트가 하나의 OR 게이트에 연결되는 형태로 표현함
[ 참고 ]• 여러 게이트가 하나의 입력을 공유하면 입력선을 분기하여 표현하기도 함
[ 참고 ]• 여러 게이트가 하나의 입력을 공유하면 입력선을 분기하여 표현하기도 함
예제 곱의 합 형식의 논리 회로 표현
7. 7. 논리 회로논리 회로
• 부울 함수 f(x, y) = xy + xy’ 를 논리 회로로 표현하면 ?
또는x
yxy + xy’
x
y
xy
x
y xy’
xy + xy’
예제 ( 계속 )
합의 곱 형식의 논리 회로 표현
7. 7. 논리 회로논리 회로
• 부울 함수 f(x, y) = (x + y)(x’ + y) 를 논리 회로로 표현하면 ?
또는
x
y x’ + y
x
y
x + y
(x + y)(x’ + y)
x
y(x + y)(x’ + y)
예제 ( 계속 )
논리 회로의 부울 함수 표현
7. 7. 논리 회로논리 회로
• 다음 논리 회로를 부울 함수로 표현하면 ?
w’x’y
(w’x’y)’(w’x’y)’y
z
(w’x’y)’y + (w’x’y)’ + z’
f(w, x, y, z) = (w’x’y)’y + (w’x’y)’ + z’
w
x
y
완전 연산자 집합 (Complete Set of Operators) 정의
8. 8. 완전 연산자 집합완전 연산자 집합
• 모든 부울 함수를 표현하기에 충분한 연산자의 집합
• 예 : {(AND), +(OR), ’(NOT)} [ 이유 ] 모든 부울 함수는 곱의 합 / 합의 곱 형식으로 표현이 가능하므로
예제
• 집합 {(AND), ’(NOT)} 가 완전 연산자 집합임을 보이면 ?
[ 증명 ] +(OR) 를 {, ’} 만으로 표현이 가능한지 증명함부울식 x + y 에 대해서 이중보수법칙과 드모르강법칙을 적용하면x + y = ((x + y)’)’ = (x’ y’)’ 이 성립함즉 , 모든 부울 함수에서 + 는 과 ’를 결합하여 표현할 수 있으므로{, ’} 는 완전 연산자 집합임
[ 참고 ]• {, ’} 과 마찬가지로 {+, ’} 도 완전 연산자 집합임• 완전 연산자 집합은 실제 전자 회로를 구성할 때 사용되는 게이트의 종류를 최소화하는데 도움이 됨
[ 참고 ]• {, ’} 과 마찬가지로 {+, ’} 도 완전 연산자 집합임• 완전 연산자 집합은 실제 전자 회로를 구성할 때 사용되는 게이트의 종류를 최소화하는데 도움이 됨
완전 연산자 집합 {NAND}/{NOR} 정의
• 모든 부울 함수는 NAND(NOT-AND; ↑) 또는 NOR(NOT-OR; ↓) 만을사용하여 표현이 가능함
증명
• 집합 {↑(NAND)} 와 {↓(NOR)} 가 완전 연산자 집합임을 보이면 ?
우선 과 ’를 ↑만으로 표현이 가능한지 증명함
따라서 {↑} 는 완전 연산자 집합임
NAND 의 정의인 x↑y = (x y)’ 와 멱등법칙인 x x = x 를 적용하면 x↑x = (x x)’ = x’ 가 성립함 . 즉 , x’ = x↑x 임또한 x y = (x↑y)’ = (x↑y)↑(x↑y) 가 성립함
마찬가지로 + 과 ’를 ↓만으로 표현이 가능한지 증명함
따라서 {↓} 는 완전 연산자 집합임
NOR 의 정의인 x↓y = (x + y)’ 와 멱등법칙 x + x = x 를 적용하면 x↓x = (x + x)’ = x’ 가 성립함 . 즉 , x’ = x↓x 임또한 x + y = (x↓y)’ = (x↓y)↓(x↓y) 가 성립함
8. 8. 완전 연산자 집합완전 연산자 집합
완전 연산자 집합 {NAND}/{NOR} ( 계속 )
예제
• 진리표를 사용하여 x’ = x↑x 와 x y = (x↑y)↑(x↑y) 가 성립함을 보이면 ?
8. 8. 완전 연산자 집합완전 연산자 집합
x
0
1
x’
1
0
x↑x
1
0
x y
0 0
0 1
1 0
1 1
x y
0
0
0
1
x↑y
1
1
1
0
(x↑y)↑(x↑y)
0
0
0
1
x’ = x↑x
x y = (x↑y)↑(x↑y)
부울 함수의 간소화 (Simplifying Boolean Expression) 정의
9. 9. 부울 함수의 간소화부울 함수의 간소화
• 동치인 부울 함수가 있을 때 , 복잡한 것보다는 간소화된 것을 이용한전자 회로의 구성이 게이트의 수를 줄일 수 있어서 더 효율적임
간소화 방법
• 부울 대수의 기본 법칙을 이용하는 방법
• 카르노 맵 (Karnaugh map) 을 이용하는 방법
곱의 합 ( 또는 합의 곱 ) 형식으로 표현된 부울 함수를 K-map 이라는 특수한 행렬로 표시함
인간의 패턴 매칭 (pattern matching) 능력을 사용하여 가장 간단한 표현을 결정함
[ 제 11 강 ] 에서 배운 다양한 부울 대수의 기본 법칙을 적용하여 간소화함 적용할 법칙의 선택이 어렵고 , 가장 간소화된 것인지 확인하기 힘듬
• 부울 함수의 간소화란 부울 함수의 표현에 사용되는 부울 변수의 개수와부울 연산자의 개수를 최소한으로 줄이는 것을 의미함
부울 대수의 법칙을 이용한 간소화 예제
9. 9. 부울 함수의 간소화부울 함수의 간소화
• 부울 함수 f(x, y, z) = xyz + xy’z + xyz’ + x’yz + xy’z’ 를 부울 대수의 기본 법칙을사용하여 간소화시키면 ?
f(x, y, z) = xyz + xy’z + xyz’ + x’yz + xy’z’
= xyz + xy’z + xyz’ + x’yz + (xy’z’ + xy’z’) 멱등법칙
= xyz + xy’(z + z’) + xz’(y + y’) + x’yz 교환법칙 , 분배법칙
= xyz + xy’ 1 + xz’ 1 + x’yz 보법칙
= xyz + xy’ + xz’ + x’yz 항등법칙
= xyz + x(y’ + z’) + x’yz 분배법칙
= xyz + x(yz)’ + x’yz 드모르강법칙
= (xyz + xyz) + x(yz)’ + x’yz 멱등법칙
= x[yz + (yz)’] + (x + x’)yz 교환법칙 , 분배법칙
= x 1 + 1 yz 보법칙
= x + yz 항등법칙
카르노 맵 (Karnaugh Map) 정의
10. 10. 카르노 맵카르노 맵
• 부울 함수를 최소로 간소화하기 위해 사용되는 부울 행렬• 1953 년 Bell Lab 의 전기통신 공학자인 Maurice Karnaugh 가 고안함
간소화 방법
• 주로 2~6 개의 변수를 가진 부울 함수에 적용됨 ( 이론상으로는 제한이 없음 )
• 2- 변수 맵은 2x2 행렬 , 3- 변수 맵은 2x4 행렬 , 4- 변수 맵은 4x4 행렬임• 행렬은 인접하는 원소가 한 비트만 다르게 부울 변수를 조합할 수 있도록
그레이 코드 (grey code) 형식으로 구성됨• 부울 함수가 곱의 합 형식으로 표현된 경우에 최소항의 값이 1 이면 1 로
0 이면 0 으로 해당하는 행렬의 위치에 표시함• 부울 함수가 합의 곱 형식으로 표현된 경우에 최대항의 값이 1 이면 0 으로
0 이면 1 로 해당하는 행렬의 위치에 표시함• 행렬에서 인접한 1 을 2n ( 예 : 1, 2, 4, 8, …) 개의 직사각형으로 묶은 후 (
가능한 큰 그룹으로 ), 행과 열에서 공통인 변수의 곱 (AND) 으로 묶음을 표현함• 묶은 곱의 합 (OR) 형식으로 함수를 표시하면 간소화된 형식임
2- 변수 맵 (2 Variable Map) 템플릿
10. 10. 카르노 맵카르노 맵
0(y’) 1(y)
0(x’)
1(x)
• [ 제 11 강 참고 ]
x
0
0
1
1
y
0
1
0
1
f0
0
0
0
0
f1
0
0
0
1
f2
0
0
1
0
f3
0
0
1
1
f0(x, y) = 0
f0’(x, y) = 1
f1(x, y) = xy
f1’(x, y) = x’ + y’
f2(x, y) = xy’
f2’(x, y) = x’ + y
f3(x, y) = xy’ + xy = x
f3’(x, y) = x’
0 0
0 0
0(y’) 1(y)
0(x’)
1(x)
f0
0 0
0 1
0(y’) 1(y)
0(x’)
1(x)
f1
0 0
1 0
0(y’) 1(y)
0(x’)
1(x)
f2
0 0
1 1
0(y’) 1(y)
0(x’)
1(x)f3
부울 함수의 표현
2- 변수 맵 ( 계속 )
10. 10. 카르노 맵카르노 맵
f6(x, y) = x’y + xy’
f6’(x, y) = x’y’ + xy
f7(x, y) = x’y+xy’+xy = x + y
f7’(x, y) = x’y’
f8(x, y) = x’y’
f8’(x, y) = x + y
f9(x, y) = x’y’ + xy
f9’(x, y) = x’y + xy’
0 1
1 0
0(y’) 1(y)
0(x’)
1(x)
f6
0 1
1 1
0(y’) 1(y)
0(x’)
1(x)
f7
1 0
0 0
0(y’) 1(y)
0(x’)
1(x)
f8
1 0
0 1
0(y’) 1(y)
0(x’)
1(x)f9
부울 함수의 표현 ( 계속 )
x
0
0
1
1
y
0
1
0
1
f4
0
1
0
0
f5
0
1
0
1
f6
0
1
1
0
f7
0
1
1
1
f8
1
0
0
0
f9
1
0
0
1
f4(x, y) = x’y
f4’(x, y) = x + y’
f5(x, y) = x’y + xy = y
f5’(x, y) = y’
0 1
0 0
0(y’) 1(y)
0(x’)
1(x)
f4
0 1
0 1
0(y’) 1(y)
0(x’)
1(x)
f5
2- 변수 맵 ( 계속 )
10. 10. 카르노 맵카르노 맵
f12(x, y) = x’y’ + x’y = x’ f12’(x, y) = x
f13(x, y) = x’y’+x’y+xy = x’ + y
f13’(x, y) = xy’
f14(x, y) = x’y’+x’y+xy’ = x’ + y’
f14’(x, y) = xy
f15(x, y) = 1
f15’(x, y) = 0
1 1
0 0
0(y’) 1(y)
0(x’)
1(x)
f12
1 1
0 1
0(y’) 1(y)
0(x’)
1(x)
f13
1 1
1 0
0(y’) 1(y)
0(x’)
1(x)
f14
1 1
1 1
0(y’) 1(y)
0(x’)
1(x)f15
부울 함수의 표현 ( 계속 )
f10(x, y) = x’y’ + xy’ = y’
f10’(x, y) = y
f11(x, y) = x’y’+xy’+xy = x + y’
f11’(x, y) = x’y
1 0
1 0
0(y’) 1(y)
0(x’)
1(x)
f10
1 0
1 1
0(y’) 1(y)
0(x’)
1(x)
f11
x
0
0
1
1
y
0
1
0
1
f10
1
0
1
0
f11
1
0
1
1
f12
1
1
0
0
f13
1
1
0
1
f14
1
1
1
0
f15
1
1
1
1
3- 변수 맵 (3 Variable Map) 템플릿
10. 10. 카르노 맵카르노 맵
000(x’y’z’)
100(xy’z’)
00(y’z’)
0(x’)
1(x)
001(x’y’z)
101(xy’z)
01(y’z)
011(x’yz)111(xyz)
11(yz)
010(x’yz’)
110(xyz’)
10(yz’)
부울 함수의 표현
• f(x, y, z) = xy’z + xyz
0
0
00(y’z’)
0(x’)
1(x)
0
1
01(y’z)
0
1
11(yz)
0
0
10(yz’)
f(x, y, z) = xz
• f(x, y, z) = ∑(2, 3, 4, 6)
0
1
00(y’z’)
0(x’)
1(x)
0
0
01(y’z)
1
0
11(yz)
1
1
10(yz’)
f(x, y, z) = x’y + xz’
3- 변수 맵 ( 계속 )
10. 10. 카르노 맵카르노 맵
부울 함수의 표현 ( 계속 )
• f(x, y, z) = ∑(0, 1, 2, 3)
1
0
00(y’z’)
0(x’)
1(x)
1
0
01(y’z)
1
0
11(yz)
1
0
10(yz’)
f(x, y, z) = x’
• f(x, y, z) = ∑(2, 3, 6, 7)
0
0
00(y’z’)
0(x’)
1(x)
0
0
01(y’z)
1
1
11(yz)
1
1
10(yz’)
f(x, y, z) = y
• f(x, y, z) = ∏(1, 3, 5, 7)
1
1
00(y’z’)
0(x’)
1(x)
0
0
01(y’z)
0
0
11(yz)
1
1
10(yz’)
f(x, y, z) = z’
3- 변수 맵 ( 계속 )
10. 10. 카르노 맵카르노 맵
부울 함수의 표현 ( 계속 )
• f(x, y, z) = ∑(0, 1, 3, 4, 5)
1
1
00(y’z’)
0(x’)
1(x)
1
1
01(y’z)
1
0
11(yz)
0
0
10(yz’)
f(x, y, z) = y’ + x’z
• f(x, y, z) = ∏(0, 2)
0
1
00(y’z’)
0(x’)
1(x)
1
1
01(y’z)
1
1
11(yz)
0
1
10(yz’)
1
1
00(y’z’)
0(x’)
1(x)
0
1
01(y’z)
1
0
11(yz)
1
1
10(yz’)
f(x, y, z) = x + z
• f(x, y, z) = ∑(0, 2, 3, 4, 5, 6)
f(x, y, z) = z’ + xy’ + x’y
4- 변수 맵 (4 Variable Map) 템플릿
10. 10. 카르노 맵카르노 맵
0000(w’x’y’z’
)0100
(w’xy’z’)
00(y’z’)
00(w’x’)
01(w’x)
0001(w’x’y’z)
0101(w’xy’z)
01(y’z)
0011(w’x’yz)
0111(w’xyz)
11(yz)
0010(w’x’yz’)
0110(w’xyz’)
10(yz’)
1100(wxy’z’)
1000(wx’y’z’)
11(wx)
10(wx’)
1101(wxy’z)1001
(wx’y’z)
1111(wxyz)1011
(wx’yz)
1110(wxyz’)1010
(wx’yz’)
부울 함수의 표현
• f(w, x, y, z) = w’x’y’z + w’x’yz + w’xy’z + w’xyz + wxy’z + wxyz + wx’y’z + wx’yz = ∑(1, 3, 5, 7, 9, 11, 13, 15) = ∏(0, 2, 4, 6, 8, 10, 12, 14)
0
0
00(y’z’)
00(w’x’)
01(w’x)
1
1
01(y’z)
1
1
11(yz)
0
0
10(yz’)
0
0
11(wx)
10(wx’)
1
1
1
1
0
0
f(w, x, y, z) = z
이산수학Discrete Mathematics
4- 변수 맵 ( 계속 )
10. 10. 카르노 맵카르노 맵
부울 함수의 표현 ( 계속 )
• f(w, x, y, z) = ∑(1, 3, 5, 6, 7, 12, 13, 14, 15)
0
0
00(y’z’)
00(w’x’)
01(w’x)
1
1
01(y’z)
1
1
11(yz)
0
1
10(yz’)
0
1
11(wx)
10(wx’)
0
1
0
1
0
1
• f(w, x, y, z) = ∏(3, 5, 8, 9, 14)
1
1
00(y’z’)
00(w’x’)
01(w’x)
1
0
01(y’z)
0
1
11(yz)
1
1
10(yz’)
0
1
11(wx)
10(wx’)
0
1
1
1
1
0
f(w, x, y, z) = w’z + wx’ + w’xy
f(w, x, y, z) = w’z’ + x’y’ + xy + wyz
[ 참고 ] 5- 변수 이상의 카르노 맵은 본 강의에서 다루지 않음[ 참고 ] 5- 변수 이상의 카르노 맵은 본 강의에서 다루지 않음
조합 논리 회로는 기억 특성을 가지고 있지 않으므로 회로의 출력은 현재 가해지는 입력의 조합에 의해서만 결정된다 .
반가산기 (half adder)
X Y S C
0 00 11 01 1
0 01 01 00 1
XY
S
C XYC
YXYXYXS
2 진수 한 자리를 더하는 회로를 반가산기라 하며 , 연산회로의 기본이 된다 .
2 개의 비트 X, Y 를 산술적으로 더하여 합 S 와 캐리 C 를 구하는 회로
11.11. 조합회로조합회로
전가산기 (full adder)
X Y Ci S C
0 0 00 0 10 1 00 1 10 0 00 0 10 1 00 1 1
0 01 01 00 11 00 10 11 1
XY S
CC i
반가산기 반가산기 i
ii
ii
iiii
CYX
CYXCYX
C XYYXC YXYX
XYCCYXCYXCYXS
ii
i
iii
iiii
XCYCXY
XYCYX
CCXYC YXYX
XYCCXYCYXYCXC
X, Y 와 밑자리에서 올라오는 Carry 까지 고려해서 3bit 를 더하여 S , C 를 구하는 회로 (2 개의 반가산기와 1 개의 OR 게이트 )
11.11. 조합회로조합회로
비교기 (comparator)
A B A>B A=B A<B
0 00 11 01 1
0 1 0 0 0 1 1 0 0 0 1 0
2 개의 수 A, B 를 비교하여 대소를 결정하는 회로
11.11. 조합회로조합회로
디코더 (decoder : 해독기 , 복조기 )
A B Y0 Y1 Y2 Y3
0 00 11 01 1
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
2×4디코더
Y 0
Y 1
Y 2
Y 3
A
B
•N 개의 2 진 입력 신로로 부터 최대 2n 개의 출력신호를 만드는 조합회로
•디지털 데이터를 아날로그 데이터로 바꿔주는 컴퓨터 회로 ( 해독기 )
•압축된 신호를 원래 압축되기 전의 신호로 복원 한다는 의미 ( 복조기 )
•예 : 음향 시스템 ( DVD)
11.11. 조합회로조합회로
디코더의 응용
a
b
c d
e
f g
11.11. 조합회로조합회로
인코더 (encoder)
D0 D1 D2 D3 A B
1 0 0 00 1 0 00 0 1 00 0 0 1
0 0 0 1 1 0 1 1
• 디코더의 반대 기능을 가진 조합회로
• 2n 개 또는 그 이하의 입력으로 부터 N 개의 출력을 만드는 조합 회로
• 디지털 전자회로에서 어떤 부호계열의 신호를 다른 부호계열의 신호로 바꾸는 변환기
11.11. 조합회로조합회로
멀티플렉서 (multiplexer : 다중화기 - MUX )
S0 S1 Y
0 00 11 01 1
I0
I1
I2
I3
4×1MUX
I0
I1
I2
I3
Y
S 0 S 1
• 데이터 선택기 • 여러 개의 입력 신호선 (채널 ) 중 하나를 선택하여 출력선에 연결하여 주는 조합 논리회로
11.11. 조합회로조합회로
디멀티플렉서 (demultiplexer)
E S0 S1 D0 D1 D2 D3
1 0 0 00 0 10 1 00 1 1
1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
1×4DEMUX
D 0
D 1
D 2
D 3
E
S 0 S 1
• 한 개의 입력선을 여러 개의 출력선 중에 하나를 선택하여 연결하여 준다 .
11.11. 조합회로조합회로
순서 논리 회로는 플립플롭 (flip-flop) 과 조합 논리 회로로 구성된 논리 회로를 의미
순서 논리 회로에서는 회로의 상태를 기억하는 기억 소자가 필요한데 가장 대표적인 기억 소자가 플립플롭이다 .
순서 논리 회로는 동기식 (synchronous) 과 비동기식 (asynchronous) 으로 분류
동기식 순서 논리 회로는 클록 (clock) 펄스를 사용해서 여러 개의 플립플롭을 동시에 동작
비동기식 순서 논리 회로는 클록 펄스를 사용하지 않고 플립플롭을 동작시킨다 .
기본적인 플립플롭 (SR 래치 )
S R Q
0 00 11 01 1
불변10
불안정S
R Q
Q
12.12. 순서논리회로순서논리회로
S-R 플립플롭
S R Q
0 00 11 01 1
불변10
불능 (허용 안됨 )
S
R
클럭
R
S Q
Q
D 플립플롭
S
R
클럭
Q
Q
D D Q
1 0
10
12.12. 순서논리회로순서논리회로
J-K 플립플롭
J K Q
0 00 11 01 1
불변01
토글 ( 반전 )
T 플립플롭
J
K
S
R
Q
Q
CP
RS 플립플롭에서 R=S=1 을 허용하지 않는 보완한 것이 JK 플립플롭이다 . J,K 값이 동시에 1 이 될때 원래값에 반전된다…
T Q
01
불변보수
Toggle 플립플롭이다 . JK 플립플롭의 입력을 묶어서 하나의 입력 T 로 많든 플립플롭
12.12. 순서논리회로순서논리회로
61
13.ROM13.ROM
ROM: Two dimensional array of 1's and 0's
Row is called a "word"; index is called an "address"
Width of row is called bit-width or wordsize
Address is input, selected word is output
Dec
0 n-1
Address
2 -1n
0
+5V +5V +5V +5V
Word Line 0011 Word Line 1010
Bit Lines
j
i
62
13.ROM13.ROM
F0 = A' B' C + A B' C' + A B' C
F1 = A' B' C + A' B C' + A B C
F2 = A' B' C' + A' B' C + A B' C'
F3 = A' B C + A B' C' + A B C'
address outputs
ROM 8 w ords ¥
4 bits
A B C F 0 F 1 F 2 F 3
B 0 0 1 1 0 0 1 1
Address W ord Contents A 0 0 0 0 1 1 1 1
C 0 1 0 1 0 1 0 1
F 0 0 1 0 0 1 1 0 0
F 1 0 1 1 0 0 0 0 1
F 2 1 1 0 0 1 0 0 0
F 3 0 0 0 1 1 0 1 0
by
14.ALU14.ALU
63
14.ALU(32bit)14.ALU(32bit)
64
Recommended