이산수학 14장. 논리회로 1
이산수학
14장. 논리회로
1
이산수학
출처
본 강좌 자료는 이산수학 (2학년 / 3학점/ 3시간 / 이론) 수업에서
사용한 교재 [이산수학 (수학으로 이해하는 디지털 논리), 한빛
아카데미 출판사] 의 내용 등을 출처로 작성하였음을 알리는 바입니다.
2
이산수학
학습 목표
■ 디지털 회로 설계를 위한 부울대수의 기본 개념 이해
■ 부울함수에 대응되는 논리회로 작성
3
이산수학
학습 내용
■ 논리게이트
■ 부울함수에 대해 논리회로 그리기
■ 논리회로에 대한 부울함수 작성
4
이산수학
논리게이트
■ 디지털 회로를 만들기 위해 정확한 연산과정을 표현하는
논리회로가 필요
■ 연산과정은 부울함수를 이용해 정의하며, 이를 회로로 표현할 때는
논리게이트를 이용한다.
■ 논리게이트는 논리회로를 구성하는 기본소자
■ 2진 입력 정보를 기반으로 AND, OR, NOT등과 같은 논리연산에
따라 동작을 수행하는 논리소자들을 사용하여 2진 출력정보를
갖는다.
■ 논리게이트를 이용하여 조합회로를 설계한다.
5
이산수학
기본 논리게이트 : NOT
■ NOT 게이트 (inverter)
◻ 하나의 부울변수 값을 입력을 받아 논리부정 연산 후 하나의
출력을 낸다. (그 값은 보수를 출력 )
◻ 𝐹 𝑋 = 𝑋′
입력 출력
𝑋 𝐹(𝑋)
0
1
1
0
6
이산수학
기본 논리게이트 : AND
■ AND 게이트
◻ 두 개 이상의 부울변수를 입력을 받아 그것들을 부울곱 연산 후
하나의 출력을 낸다.
◻ 𝐹 𝑋, 𝑌 = 𝑋𝑌
입력 출력
𝑋 𝑌 𝐹(𝑋, 𝑌)
0 0
0 1
1 0
1 1
0
0
0
1
7
이산수학
기본 논리게이트 : OR
■ OR 게이트
◻ 두 개 이상의 부울변수를 입력을 받아 그것들을 부울합 연산 후
하나의 출력을 낸다.
◻ 𝐹 𝑋, 𝑌 = 𝑋 + 𝑌 입력 출력
𝑋 𝑌 𝐹(𝑋, 𝑌)
0 0
0 1
1 0
1 1
0
1
1
1
8
이산수학
논리게이트 : NAND
■ NAND 게이트
◻ AND 게이트와 NOT 게이트를 결합한 논리소자
◻ 두 개의 부울변수를 입력을 받아 부울곱한 결과를 보수로 취해서
출력
◻ 𝐹 𝑋, 𝑌 = (𝑋𝑌)′
입력 출력
𝑋 𝑌 𝐹
0 0
0 1
1 0
1 1
1
1
1
0
9
이산수학
논리게이트 : NOR
■ NOR 게이트
◻ OR 게이트와 NOT 게이트를 결합한 논리소자
◻ 두 개의 부울 변수를 입력을 받아 부울합한 결과를 보수로
변환하여 출력
◻ 𝐹 𝑋, 𝑌 = (𝑋 + 𝑌)′
입력 출력
𝑋 𝑌 𝐹
0 0
0 1
1 0
1 1
1
0
0
0
10
이산수학
논리게이트 : XOR
■ XOR 게이트
◻ eXclusive OR 연산자 ⊕에 대한 논리소자
◻ 두 입력이 같은 값이 입력되면 0, 다른 값이 입력되면 1이
출력된다.
◻ 𝐹 𝑋, 𝑌 = X ⊕ 𝑌 = 𝑋′𝑌 + 𝑋𝑌′
입력 출력
𝑋 𝑌 𝐹
0 0
0 1
1 0
1 1
0
1
1
0
11
이산수학
논리회로도 작성
■ 논리회로의 여러 게이트가 입력선을 공유하는 경우
◻ 회로도상에 맨 왼쪽에 입력변수, 맨 오른쪽에 출력변수를 표기
◻ 주어진 부울함수(외부⇒내부 방향)에 대하여 회로도는 맨
오른쪽에서 왼쪽 방향으로 입력선과 출력선, 게이트를 그린다.
◻ 하나의 출력선(output wire)은 다른 게이트의 입력선(input
wire)으로 사용.
◻ 하나의 입력선은 두 개로 분리할 수 있으며, 그것은 두 개의 다른
게이트의 입력선으로 각각 사용
12
이산수학
예제
■ 부울함수 𝑓 𝑥, 𝑦 = (𝑥 + 𝑦′)(𝑥′ + 𝑦)를 논리회로로 나타내라.
(풀이)
13
이산수학
예제
■ 부울함수𝑓 𝑥, 𝑦 = (𝑥 + 𝑦′)(𝑥′ + 𝑦)를 부울대수법칙을 이용해
간략화하고, 그 결과를 논리회로로 나타내라.
(풀이)
𝑓 𝑥, 𝑦 = (𝑥 + 𝑦′)(𝑥′ + 𝑦)
= 𝑥𝑥′ + 𝑦′𝑥′ + 𝑥𝑦 + 𝑦′𝑦 ∵ 분배법칙
= 0 + 𝑦′𝑥′ + 𝑥𝑦 + 0 ∵ 보수법칙
= 𝑦′𝑥′ + 𝑥𝑦 ∵ 항등법칙
14
이산수학
예제
■ 부울함수 𝑓 𝑥, 𝑦, 𝑧 = 𝑥′𝑦′ + 𝑦′𝑧 + 𝑥𝑧′를 카르노맵으로 간략화하고,
그 결과를 논리회로로 작성하시오.
(풀이)
𝒙 𝒚𝒛 𝒚𝒛 𝒚′𝒛 𝒚’𝒛′ 𝒚𝒛′
𝒙 1 1 1
𝒙’ 1 1
∴ 𝑓 𝑥, 𝑦, 𝑧 = 𝑥𝑧′ + 𝑦′
15
이산수학
예제
■ 다음 논리회로를 보고 부울함수를 작성하시오.
(풀이) Note : 회로도을 왼쪽에서 오른쪽 방향으로 읽어 입력 신호들을
조합하여 해당 게이트의 출력 신호를 표기한다.
∴ 𝑓 𝑥, 𝑦, 𝑧 = 𝑥𝑦𝑧 + 𝑥(𝑦𝑧)′
16
이산수학
예제
■ 다음 논리회로를 보고 부울함수를 작성하시오.
∴ 𝑓 𝑥, 𝑦, 𝑧 = (𝑥 + 𝑦)𝑧′ + (𝑥′𝑧)′
17
이산수학
문제
■ 다음 부울함수의 논리회로를 작성하시오.
1. 𝑓(𝑥, 𝑦, 𝑧) = (𝑥 + 𝑦)((𝑦𝑧)′ )′ ′
2. 𝑓 𝑥, 𝑦, 𝑧 = 𝑥𝑦𝑧 + 𝑥𝑦𝑧′ + 𝑥′𝑧
3. 𝑓 𝑥, 𝑦, 𝑧 = 𝑥𝑦 + 𝑥′𝑧
18
이산수학
정리
■ 정규식을 부울대수규칙을 이용하여 최소화하여라
■ 부울함수을 카르노맵을 이용하여 최소화하여라
■ 카르노맵으로부터 부울함수와 논리회로을 구하라
■ 논리회로를 부울함수로 표시하여라
■ 논리회로를 진리값을 작성하여라.
𝑓 𝑥, 𝑦 = (𝑥 + 𝑦′)(𝑥′ + 𝑦)=𝑥′𝑦′ + 𝑥𝑦
𝒙 𝒚 𝒚 𝒚′
𝒙 1
𝒙’ 1
최소항
0 0
0 1
1 0
1 1
1
0
0
1
19