You are on page 1of 280

C O N T E N T S

차 례

Ⅰ. 디지털 시스템의 개요 송재영


1. 디지털 시스템과 아날로그 시스템 1. 디지털 신호와 아날로그 신호 6
2. 신호의 변환 7

2. 디지털 시스템의 특징 1. 디지털 시스템의 장단점 8


2. 디지털 집적 회로 9
3. 디지털 집적 회로의 특성 10

단원 학습 정리 11

Ⅱ. 정보의 표현 김은태
1. 진수 변환 1. 10진수와 2진수 14
2. 8진수와 16진수 16
3. 2진수, 8진수와 16진수 20

1. 2진수의 연산 1. 사칙 연산 25
2. 보수의 개념과 음수 26

3. 실수의 표현 1. 실수 35

4. 디지털 코드 1. 2진 숫자 코드 39
2. 2진 문자 코드 46
3. 한글 코드 48
4. 유니 코드 50

단원 학습 정리 51

Ⅲ. 불 대수 송재영
1. 불 대수와 기본 논리 게이트 1. AND 연산 55
2. OR 연산 56
3. NOT 연산 57

2. 불 대수와 기타 논리 게이트 1. NAND 연산 61


2. NOR 연산 62
3. XOR 연산 62
4. XNOR 연산 63
5. 버퍼 64

3. 불 대수의 정리 1. 불 대수의 기본 성질 71
2. 드 모르간의 정리 73
3. 논리식의 쌍대성 75
4. 논리식과 진리표 1. 최소항과 최대항 78
2. 논리곱의 합형 79
3. 논리합의 곱형 80
4. 정형과 표준형 81

5. 논리식의 간소화 1. 논리식의 간소화 방법 82


2. 불 대수에 의한 논리식의 간소화 83
3. 카르노 도에 의한 논리식의 간소화 84

단원 학습 정리 93

Ⅳ. 조합 논리 회로 손진우
1. 조합 논리 회로 설계 1. 조합 논리 회로의 설계 순서 97
2. 간소화된 함수를 사용한 조합 논리
회로의 구성 99
3. 조합 논리 회로 설계 응용 100

2. 가산기와 감산기 1. 가산기 106


2. 감산기 109

3. 비교기 1. 반비교기 116


2. 전비교기 118
3. n비트 비교기 120

4. 해독기와 부호기 1. 해독기 123


2. 부호기 127

5. 멀티플렉서와 디멀티플렉서 1. 멀티플렉서 133


2. 디멀티플렉서 136

6. 병렬 가산기 1. 2비트 병렬 가산기 142


2. 4비트 병렬 가산기 144
3. 실제 가산기 회로 145

7. 코드 변환기 1. BCD-3 초과 코드 변환 148


2. 2진 코드-그레이 코드 변환기 150
3. 그레이 코드-2진 코드 변환기 152

단원 학습 정리 157

Ⅴ. 순서 논리 회로 윤현식
1. 순서 논리 회로와 플립플롭 1. 조합 논리 회로와 순서 논리 회로 164
2. RS 래치와 RS 플립플롭 165
C O N T E N T S

3. JK 플립플롭 172
4. D 플립플롭 174
5. T 플립플롭 175
6. 비동기 입력 177

2. 레지스터 1. 레지스터의 구조와 종류 183


2. 좌우 방향 시프트 레지스터 184
3. 좌우 방향 순환 레지스터 185
4. 직렬 입력/직렬 출력 레지스터 186
5. 직렬 입력/병렬 출력 레지스터 187
6. 병렬 입력/직렬 출력 레지스터 188
7. 병렬 입력/병렬 출력 레지스터 189

3. 동기식 계수 회로 1. 동기식 3비트 2진 증가・감소


계수기 195
2. 동기식 5진 계수기 198
3. 동기식 5진 링 계수기 200

4. 비동기식 계수 회로 1. 비동기식 3비트 2진 리플 계수기 207


2. 비동기식 10진 리플 계수기 207

단원 학습 정리 211

Ⅵ. 메모리와 프로그램 가능한 논리 소자 송재영


1. 메모리의 개요 214

2. ROM 1. ROM의 동작 원리 217


2. ROM의 종류 218

3. RAM 1. SRAM 224


2. DRAM 226

4. 프로그램 가능한 논리 소자 1. PLE 231


2. PLA 231
3. PAL 232

5. 마이크로프로세서 1. 마이크로프로세서의 개요 234


2. 마이크로프로세서의 구조 235
3. 마이크로프로세서의 기본 동작 240
4. 마이크로컨트롤러 242
5. 명령어 집합 방식 243

단원 학습 정리 245
Ⅰ. 디지털 시스템의 개요
1. 디지털 시스템과 아날로그 오늘날 반도체 및 컴퓨터 등의 전자 관련 산
업 분야의 눈부신 발전은 우리의 일상 생활 환
시스템
경까지도 급속도로 변화시키고 있다. 이에 따
2. 디지털 시스템의 특징 라, 요즈음을 디지털 시대라고도 표현한다. 주
변의 TV, VTR 등의 가전 제품에서부터 컴퓨
터, 자동 제어 기기, 의료용 기기, 산업용 기기
등 대부분의 시스템이 디지털화되어 있다.
이 단원에서는 신호의 형태에 따라 분류되는
디지털 시스템(digital system)과 아날로그 시
스템(analog system)의 의미와 차이점에 대해
알아보고, 실생활에서 활용하는 기기들을 비교
하여 본다. 그리고 디지털 시스템의 특징과 디
지털 IC의 분류 및 특성에 대하여 학습하기로
한다.

PC 카메라의 멀티 기능

5
1 디지털 시스템과 아날로그 시스템
학습 목표 1. 디지털 신호와 아날로그 신호의 정의를 이해하고 차이를 설명할 수 있다.
2. 디지털 시스템과 아날로그 시스템에 대하여 알고, 예를 들어 비교 설명할 수 있다.

1. 디지털 신호와 아날로그 신호


산업 사회에서 널리 사용되고 있는 전기・전자 기기들은 사용되는 신호의
형태에 따라 디지털 시스템과 아날로그 시스템으로 분류된다.
디지털 시스템은 디지털 신호를 사용하고 아날로그 시스템은 아날로그 신호
를 사용한다. 디지털 신호는 물리적인 양을 숫자, 문자와 같은 기호로 나타내는
방법으로, 그 값은 불연속적이다. 아날로그 신호는 물리적인 양에 비례하는 크
기를 미터계와 같은 계기류의 연속적인 값으로 표시한다. 디지털 신호와 아날
로그 신호를 그림 Ⅰ-1에 나타내었다.

그림Ⅰ-1
얘들아! 9시 1분
디지털 신호와 아날로그 신호 지금 몇시지? 이야

음- 내 시계는 9시
1분과 2분 사이를 가
리키고 있는데?

⒜ 디지털 신호 ⒝ 아날로그 신호

그림 Ⅰ-1 ⒜의 신호와 같이 디지털 정보를 처리하는 디지털 회로는 신호의


값이 대응되는 값에 도달할 때에만 반응되어 변화한다. 따라서, 신호값에 따른
정보의 처리가 명확하여 신뢰도가 높다. 반면, 그림 Ⅰ-1 ⒝의 신호와 같이 아
날로그 정보는 미세한 변화만 있어도 이에 대한 출력의 변화가 있게 되므로

그림Ⅰ-2
디지털 기기와 아날로그 기기

⒜ 디지털 기기 ⒝ 아날로그 기기

6
디지털 시스템의 개요/ 디지털 시스템과 아날로그 시스템

신호의 값이 연속적으로 처리되어 정확한 구분이 어렵다.


우리 생활 주변에서 살펴보면 온도계, 시계, 회로 시험기 등의 각종 계측기에
서 그 크기를 숫자로 표시하는 디지털형과 지침(눈금) 표시식의 아날로그형을
쉽게 발견할 수 있다. 그림 Ⅰ-2에 두 계측 기기를 비교하였다.

2. 신호의 변환
음악을 녹음할 때 사용하는 카세트 테이프(cassette tape)는 아날로그 신호
로 기록되어 있으며 콤팩트 디스크(compact disk, CD)는 디지털 신호로 기록
되어 있다. 우리가 콤팩트 디스크의 내용을 카세트 테이프로, 카세트 테이프의
내용을 콤팩트 디스크에 서로 녹음할 수 있듯이, 아날로그 신호와 디지털 신호
는 서로 변환이 가능하다.
아날로그 신호를 디지털 신호로 변환하는 회로를 A/D 변환기, 디지털 신호
를 아날로그 신호로 변환하는 회로를 D/A 변환기라 한다.

(아날로그 신호) ⇒ A/D 변환기 ⇒ (디지털 신호)


(디지털 신호) ⇒ D/A 변환기 ⇒ (아날로그 신호)

학교 종이
땡땡땡

콤팩트 디스크에 녹음된 노래를 청취할 때 내부의 디지털 신호는 D/A 변환


기를 통하여 사람의 음성 신호(아날로그 신호)로 변환되어 우리가 들을 수 있
게 되는 것이다.
우리가 사용하는 대부분의 범용 컴퓨터는 디지털 컴퓨터로서 논리 회로로
구성된 대표적인 전자 시스템이다. 이것은 참(true)과 거짓(false), 0과 1 등의
두 가지 값만의 논리적인 개념을 대응시키는 시스템으로 2진(binary) 디지털
회로라 하며, 디지털 신호가 사용된다. 즉, 디지털 세계에서는 0과 1의 기호로
모든 값을 표현하기 때문에 2진수로 정보 처리를 하는 것이다.

7
2 디지털 시스템의 특징
학습 목표 1. 디지털 시스템과 아날로그 시스템의 특성을 비교하여 장・단점을 알고, 이를 설명할
수 있다.
2. 디지털 집적 회로의 종류를 소자 수와 구조에 따라 각각 설명할 수 있다.
3. TTL과 CMOS형의 특성을 알고, 이를 설명할 수 있다.

1. 디지털 시스템의 장단점


요즈음의 통신 및 자료 처리, 자동 제어, 의료기 분야에 이르기까지 거의 모
든 시스템들은 디지털로 구성되어 널리 이용되고 있다. 즉, 첨단 산업의 핵심은
디지털 시스템이라고 말할 수 있다. 그러므로 디지털 시스템이 가지고 있는 장
점과 단점에 관하여 살펴보기로 한다.

단점은
디지털 시스템의
사람에게 전달하기 위해
장점과 단점은
회로가 약간 복잡하다는
무엇일까요?
것입니다.

장점으로는
높은 신뢰도, 높은 정확도,
구성 용이, 경제적, 저렴한 저장
비용, 잡음 및 손실이 거의
없다는 것입니다.

첫째, 디지털 시스템은 신뢰도가 높다. 앞에서 살펴 본 바와 같이 디지털 시


스템은 신호가 뚜렷이 구별되는 값으로 나타나므로, 신뢰도가 높은 반면, 아날
로그 시스템은 잡음 및 전자파 등의 미세한 입력 변화에도 민감하게 반응한다.
둘째, 디지털 시스템은 출력이 숫자로 표시되므로, 측정 오차가 없어 정확도
가 높다. 그러나 아날로그 시스템은 사람의 눈 판독에 따른 한계성과 사람에
따른 오차로 인하여 정확도가 낮다. 또, 디지털 시스템은 회로를 추가하여 필요
한 만큼의 정밀도를 높일 수 있으나 아날로그 시스템은 정밀도를 높이기가 매
우 어렵다.
셋째, 디지털 시스템이나 아날로그 시스템은 주로 집적 회로(integrated
circuit, IC)로 구성되는데, 아날로그 집적 회로보다는 디지털 집적 회로의 제작
이 훨씬 용이하고 다양하며, 디지털 시스템은 아날로그 시스템에 비해 구성하
기가 용이하고 경제성이 높다.

8
디지털 시스템의 개요/ 디지털 시스템의 특징

넷째, 디지털 신호는 반도체 등의 기억 장치가 발달되어 저렴한 비용으로 저


장할 수 있다.
다섯째, 디지털 시스템은 잡음에 강하고 손실이 거의 없다. 예를 들어 마이크
를 통한 음성 신호를 아날로그 전기 신호로 변환할 때를 보자. 마이크로 입력
되는 것은 음성 신호뿐만 아니라 숨소리, 바람 소리 등 주변의 잡음과 마이크
자체의 내부 잡음까지도 입력되어 원래의 음성 신호는 많이 일그러지게 된다.
또, 신호가 전기 회로를 통과할 때 전기 저항 등에 의해 세력이 약해지므로 원
래 음성 신호의 손실이 발생하게 된다. 그러나 디지털 신호는 전압의 크기가
아닌 레벨로 값을 나타내므로 0, 1의 신호가 바뀌는 현상은 거의 없다고 할 수
있다. 즉, 아날로그 시스템에 비하여 잡음과 손실이 거의 없다.
여섯째, 아무리 좋은 정보나 자료라 해도 디지털 신호는 마치 암호와 같아서
사람이 판독하기가 매우 어렵다. 그러므로 사람의 눈이나 귀로 신호를 전달하기
위해서는 아날로그 신호로 다시 바꾸지 않으면 안 된다. 따라서, 디지털 시스템
은 양질의 재생이 가능하지만 D/A 변환기 등이 필요하여 회로가 복잡해진다.

(복사) (복사) (복사)

2. 디지털 집적 회로
집적 회로는, 트랜지스터, 다이오드, 저항, 콘덴서 등으로 만들어진 전자 회로
를 작은 칩(chip) 위에 구성한 것이다. 집적 회로를 구성 소자의 수에 따라 구
분하면, 한 개의 기판 위에 소자 수가 100개(게이트 수는 약 12개) 이하인 것을
소규모 집적 회로(small scale integration, SSI)라 하고, 소자 수가 100~1000개
인 것을 중규모 집적 회로(medium scale integration, MSI)라 하며, 소자 수가
1000~10,000개 이하인 것을 고밀도 집적 회로(large scale integration, LSI)라
한다. 그리고 소자 수가 10,000개 이상인 것을 초고밀도 집적 회로(very large
scale integration, VLSI)라 한다.
이와 같이 집적 회로를 사용하면 각각의 소자를 사용하는 것보다 크기가 작
고 소비 전력이 적으며, 신뢰도가 높고 가격이 저렴하다는 장점이 있다.

9
디지털 시스템의 개요/ 디지털 시스템의 특징

그림 I-3은 디지털 집적 회로를 구조에 따라 분류한 것이다.

그림 Ⅰ-3 모놀리딕 IC 바이폴라 IC TTL


디지털 집적 회로의 분류
DTL
ECL
디지털 IC
IIL
유니폴라 IC CMOS
하이브리드 IC PMOS
NMOS

3. 디지털 집적 회로의 특성
TTL(transistor transistor logic)과 CMOS(complementary metal oxide
semiconductor)의 겉모양은 비슷하나 구조나 전기적인 특성은 크게 다르다.
TTL은 NPN형 트랜지스터, CMOS는 전계 효과 트랜지스터(FET)를 중심으로
만들어졌다. 그리고 TTL의 규격에는 74 시리즈(일반용)와 54 시리즈(군용)가
있으며 CMOS에는 4000 시리즈와 고속 CMOS형 74HC 시리즈가 많이 사용된다.
TTL과 CMOS의 전기적 특성을 비교하면 표 Ⅰ-1과 같다.
여기서, 전달 지연 시간은 게이트 입력 단자에 신호가 들어와 출력 단자로
나오기까지 걸리는 시간이며, 문턱 전압은 논리 신호 0과 1을 구분하는 경계
전압이고 팬 아웃은 게이트 출력 단자에 접속할 수 있는 최대 입력 단자의 수
를 말한다.

표 Ⅰ-1 종류
TTL과 CMOS의 비교 TTL CMOS
특성
전달 지연 시간 짧다(10ns) 길다(약 150ns)

문턱 전압 낮다(약 1.5V) 높다(약 2.5V/전원 전압 5V시)

소비 전력 많다 적다

입력 저항 낮다 높다

동작 전압 5V 3~18V

팬 아웃 적다 많다

10
디지털 시스템의 개요/ 단원 학습 정리

1. 디지털 시스템과 아날로그 시스템


단원 학습 정리
디지털 신호와 아날로그 신호
(1) 디지털 신호:물리적인 양을 기호로 표시하는 방법(숫자, 문자 등으로
표시). 불연속적으로 뚜렷이 구분되므로 신뢰도가 높다.
(2) 아날로그 신호:물리적인 양에 비례하는 크기를 연속적인 값으로 표시.
연속적으로 처리되어 정확한 구분이 어려우나 미세한 변화만 있어도 이
에 대한 출력의 변화가 있다.
신호의 변환
(1) D/A 변환:디지털 신호를 아날로그 신호로 변환
(2) A/D 변환:아날로그 신호를 디지털 신호로 변환
2. 디지털 시스템의 특징
디지털 시스템의 장단점
① 신뢰도가 높다.
② 정확도가 높다.
③ 구성이 용이하고 경제성이 높다.
④ 저렴한 비용으로 저장할 수 있다.
⑤ 잡음에 강하고 손실이 거의 없다.
⑥ 회로가 복잡해진다(단점).
디지털 집적 회로
1) 집적 회로:트랜지스터, 다이오드, 저항, 콘덴서 등으로 만들어진 전자 회
로를 작은 칩(chip) 위에 구성한 것

11
디지털 시스템의 개요/ 단원 종합 문제

단원 종합 문제 1. 디지털 신호와 아날로그 신호의 의미를 설명하여 보자.

2. 음악이 녹음되어 있는 카세트 테이프는 여러 단계로 복사하여 사용하면 음질


이 현저히 떨어지고, 콤팩트 디스크는 여러 단계로 복사하여 사용하여도 오리
지널 콤팩트 디스크와 별로 음질의 차이가 없다. 그 이유를 조사하여 보자.

3. 디지털 시스템이 아날로그 시스템에 비하여 가지고 있는 장점과 단점을 열


거하여 보자.

4. 집적 회로의 장점과 단점에 대하여 열거하여 보자.

5. 다음 중에서 바이폴라 집적 회로가 아닌 것은?


① TTL
② CMOS
③ DTL
④ ECL
⑤ IIL

6. TTL과 CMOS의 구조 및 전기적인 특성을 비교하여 설명하여 보자.

7. CMOS형 IC는 알루미늄 포일 등에 싸서 보관한다. 그 이유가 무엇인지 설명


하여 보자.

8. 팬 아웃(fan out)이란 무엇을 말하는지 설명하여 보자.

12
Ⅱ. 정보의 표현
1. 진수 변환 10진수는 우리가 일상적으로 사용하는 수 체
계로 나이, 몸무게, 크기, 길이 등을 일반적으로
2. 2 진수의 연산
말할 때 10진수 방식으로 표현한다. 반면에 우
3. 실수의 표현 리가 사용하는 컴퓨터를 비롯한 디지털 시스템
4. 디지털 코드 은 10진수가 아닌 2진수를 사용하여 정보를 표
현하게 된다. 수치 정보를 표현하는 방법은 이
러한 10진수와 2진수 이외에도 8진수와 16진수
등 여러 가지 방법이 존재한다.
이 단원에서는, 이러한 여러 가지 진수 체계
의 특징과 그 차이를 이해하고 디지털 시스템
에서 2진수를 사용하는 이유와 여러 진수 사이
의 관계 및 상호간의 변환 방식을 이해하며, 비
수치적 자료를 디지털 시스템으로 표현하는 방
식인 여러 가지 디지털 코드에 대하여 학습하
기로 한다.

디지털로 구현된 전자 제품

13
1 진수 변환
학습 목표 1. 여러 가지 진수의 원리 및 특징을 설명할 수 있다.
2. 디지털 시스템에서 2진수를 사용해야 하는 이유을 설명할 수 있다.
3. 10진수, 2진수, 8진수, 16진수 사이 변환을 설명할 수 있다.

1. 10진수와 2진수
우리가 일상 생활에서 어떤 수치값을 표현하려 할 때 흔히 0~9까지의 10가
지 숫자를 사용하는 10진수(decimal)를 사용하지만, 이 밖에도 많은 진수가 존
재한다. 특히, 디지털 시스템은 0과 1의 2가지 기호만을 사용하는 2진수
(binary)를 사용한다.

자, 이제 여러 가지
수 체계 중에서 10진수와 2진수를
먼저 학습할까요? 익숙한
10진수부터 봅시다.

10진수는 0에서 시작해서, 그 다음은 1, 그 다음은 2, 그 이후 3, 4, 5, 6, 7, 8, 9


로 진행된다. 이 때, 9 다음의 수로는 이전의 0~9까지의 한 자리 숫자와는 달
리, 10이라는 두 자리 숫자를 사용하게 된다. 즉, 10진수는 0~9까지의 10가지
숫자만을 이용하고 그 보다 큰 경우는 자릿수를 올려 표현하는 시스템이다.

예를 하나 볼까요?

14
정보의 표현 / 진수 변환

15라는 10진수가 있다면 1은 101 =10을 나타내고 5는 단순히 5를 나타내는


것이다. 좀더 복잡하게 123이라는 10진수가 있다면, 여기서 1은 102=100을, 2×
101=20을, 3은 단순히 3을 나타낸다. 즉,
1510 =1×101 +5×100=10+5
12310 =1×102 +2×101 +3×100=100+20+3
여기서, 밑수 10은 10진수임을 나타내는 표현으로, 일반적으로 생략하고 사용
하지 않는다. 요약하면, 10진수는 0~9까지의 10가지 기호만을 이용하는 수 체
계로, 9보다 큰 숫자에 대하여 자릿수를 하나 증가시켜 표현하고, 새로운 자릿
수는 가중치가 10배씩 증가하는 수 체계이다.

디지털 시스템에서 주로
사용되는 2진수의 경우를
살펴볼까요?

2진수는 0과 1로만 구성되어 있고 1보다 큰 수는 자릿수를 하나 증가시켜 표


현한다. 이는 10진수가 0~9까지의 기호만을 사용하고, 9 다음의 숫자는 자릿수
를 하나 증가시켜 표현하는 것과 같은 원리이다.
예를 들어, 0부터 2진수로 수를 하나씩 증가시키면
0, 1, 10, 11, 100, 101, 110, …

그런데 컴퓨터는
왜 2진수를
사용하죠?
전구를 예를 들어
볼까요? 전구는 켜지는 경우와
꺼지는 경우밖에 없어요. 즉, 전구 1
개가 나타낼 수 있는 수는 0과 1밖에
없지요. 따라서, 이보다 큰 수는 이러
한 전구를 여러 개 연결해서 나타
내야 하고, 그게 바로
2진수이지요.

15
정보의 표현 / 진수 변환

이 된다. 가장 오른쪽의 자리는 20 =1을 나타내고 오른쪽에서 둘째 번 자리는

두 진수 사이 변환은
21을 나타내고, 그 다음 자리는 22을 나타내는 수 체계이다. 예를 들어, 101101이
어떻게 하죠 라는 6자리의 2진수가 있을 때 그 의미는 다음과 같다.
1011012 =1×25 +0×24 +1×23 +1×22 +0×21 +1×20
여기서 밑수 2는 2진수임을 나타내는 표현이다.
2진수로 주어진 값을 10진수로 바꾸거나, 반대로 10진수로 주어진 값을 2진
수로 바꾸는 방법에 대하여 알아보자. 앞에서 설명한 2진수 각 자리의 가중치
를 이용하면 2진수를 10진수로 쉽게 변환할 수 있다. 예를 들어, 110101이라는 2
진수는
1101012 =1×25 +1×24 +0×23 +1×22 +0×21 +1×20 =5310
이 된다. 반대로, 10진수를 2진수로 바꾸는 방법은 주어진 10진수를 2로 나누어
몫과 나머지를 구하고 그 몫이 0이 될 때까지 그 과정을 반복한 후 구해진 나
머지를 역순으로 써 나가는 방식이다.

10진수 37을 2진수로 바꾸시오.


【풀이】 2
) 37
2 ) 18 …… 나머지 1
2 ) 9 …… 나머지 0
2 ) 4 …… 나머지 1
2 ) 2 …… 나머지 0
2
) 1 …… 나머지 0
0 …… 나머지 1
10진수 3710을 2진수로 표현하면 위의 계산 결과의 나머지를 밑에서부터 화살
표 방향으로 역순으로 읽어서 1001012이 된다.

2. 8진수와 16진수
인간의 손가락이 10개인데서 기인한 것으로 알려지고 있는 10진수는 주로 일
상 생활에서 사용하는 수 체계이고, 반면에 2진수는 컴퓨터 등의 디지털 논리
회로에서 사용되는 수 체계이다. 컴퓨터 등의 디지털 논리가 2진수를 사용하는
이유는 전압을 가지고 정보를 표현하려 할 때 전압이‘높다’또는‘낮다’
의2
가지 상태만이 존재하기 때문이다.
물론, 이러한 10진수나 2진수 이외에도 3진수, 4진수, 5진수 등 다른 수 체계
가 가능하다. 우선, 8진수(octal)와 16진수(hexadecimal)에 대하여 알아보자.

16
정보의 표현 / 진수 변환

우선 8진수의 경우를 알

손가락이 8개밖에 없는 아보면 8진수의 각 자리는


우리 안드로메다별 사람들은 0~7까지의 8 개의 기호를
8진수를 사용해요. 이용하여 나타내고, 각 자리
에서 7보다 큰 경우에는 자
릿수를 하나씩 올리는 수
체계이다. 매 8마다 자릿수
가 하나씩 올라가는 수 체
계이다.

8진수로 수를 세면 0, 1, 2, 3, 4,
5, 6, 7, 10, 11, 12, … 에요. 즉, 8진수는
7 다음의 수를 10, 11, 12, … 로 표시하지요.
여러분, 아주 어려운 문제를 하나 내지요. 10진수는
자릿수가 증가할 때 자리의 가중치가 10배씩 증가
하고 2진수는 2배씩 증가한다고 했죠. 그러면 8
진수의 경우는 한 자릿수 가중치가 과연 몇
배씩 증가할까요?

8진수의 가장 오른쪽 자리는 80을 나타내고, 오른쪽에서 둘째 번 자리는 81을


나타내며, 셋째 번 자리는 82을 나타내는 방식이다. 예를 들어, 8진수 5238을 10
진수로 바꿔 보면 다음과 같다.
5238 =5×82 +2×81 +3×80 =33910
반대로, 10진수로 표현된 값을 8진수로 바꾸는 경우를 생각한다. 이 때에도
10진수를 2진수로 바꾸는 방법을 사용하면 된다. 다만, 나누는 수가 8로 바뀔
뿐이다.

이제 16진수 공부를
시작합니다.

17
정보의 표현 / 진수 변환

10진수 339를 8진수로 바꾸시오.


【풀이】 8
) 339
8
) 42 …… 나머지 3
)
8 5 …… 나머지 2
0 …… 나머지 5
즉, 10진수 339는 8진수로 표현하는 경우 5238이 된다.

16진수도 앞에서 배운 10진수, 2진수, 8진수 등과 같은 원리로 15까지는 자릿


수가 넘어가지 않고 16에서 자릿수가 넘어가는 수 체계이다. 따라서, 한 자리
숫자를 표현하려면 16개의 기호가 있어야 하며, 9 이후의 숫자에 대하여서는
A, B, C, D, E, F의 6개의 기호를 숫자로 사용한다. 다시 말해서, 16진수로 0에
서부터 차례로 세어 보면,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, …
로 나아가는 방식이다. 즉, 10진수가 8, 9, 10, 11, 12, … 로 9 이상의 수는 자릿
수를 하나 올려 두 자리 수로 표현한 것과 달리 16진수는 8, 9, A, B, C, D, F
등의 한 자리 수로 표현하다가 F 다음에야 10으로 자릿수를 하나 올리는 표현
방식이다. 따라서, 16진수는 자릿수가 증가할 때마다 그 자리의 가중치가 16배
씩 증가하는 수 체계로 가장 오른쪽 자리는 160을 나타내고, 오른쪽에서 둘째
번 자리는 161을 나타내며, 셋째 번 자리는 162을 나타내는 방식이다.

16진수 37D16를 10진수로 변환하시오.


【풀이】37D16 =3×162 +7×161 +13×160 =89310

반대로, 10진수로 표현된 수를 16진수로 바꾸는 경우를 생각한다. 이 때에도


앞의 2진수나 8진수의 경우에서와 같이 주어진 10진수가 더 이상 나누어지지
않을 때까지 16으로 나눈 다음, 그 나눈 나머지를 역순으로 모으면 10진수 표
현이 된다.

18
정보의 표현 / 진수 변환

10진수 97510를 16진수로 변환하시오.


【풀이】 16
) 975
16
) 60 …… 나머지 15, 즉 F16
)
16 3 …… 나머지 12, 즉 C16
0 …… 나머지 3
따라서, 10진수 97510는 16진수로 3CF16가 된다.

다음의 표 Ⅱ-1은 0에서 20까지 10진수, 2진수, 8진수, 16진수를 비교한 것이


다. 일반적인 N진수에서 N이 클수록 하나의 수에 대한 표현은 간결해지지만
한 자리 숫자가 가질 수 있는 경우는 증가하는 것을 알 수 있다.

표 Ⅱ- 1 10진수 2진수 8진수 16진수


10진수, 2진수, 8진수, 16진수
0 00000 00 00
비교 (0에서 20까지)
1 00001 01 01

2 00010 02 02

3 00011 03 03

4 00100 04 04

5 00101 05 05

6 00110 06 06

7 00111 07 07

8 01000 10 08

9 01001 11 09

10 01010 12 0A

11 01011 13 0B

12 01100 14 0C

13 01101 15 0D

14 01110 16 0E
15 01111 17 0F

16 10000 20 10

17 10001 21 11

18 10010 22 12

19 10011 23 13

20 10100 24 14

19
정보의 표현 / 진수 변환

3. 2진수, 8진수와 16진수


일상 생활에서 사용하게 되는 10진수를 디지털 시스템에서 사용하는 2진수로
바꿔서 사용하는 경우 위의 표에서 보는 바와 같이 2진수는 상당히 많은 자릿
수를 필요로 하며 결과적으로 사용에 불편한 점이 많다. 8진수와 16진수는 이
같은 문제를 해결하는 수 체계로 2진수와의 관계를 이용하여 쉽게 2진수와의
상호 변환이 가능하며, 2진수보다 적은 자릿수로 주어진 수를 표현할 수 있는
특징을 가지고 있다. 이와 같은 8진수와 16진수의 특징을 이해하기 위하여 우
선 다음의 진수 간의 변환을 알아보도록 한다. 앞 절에서는 10진수와 2진수, 10
진수와 8진수, 10진수와 16진수 간의 변화만을 학습하였으나 이 절에서는 2진
수, 8진수, 16진수 상호간의 변환을 학습한다.

1 2진수와 8진수 사이의 변환

훌륭한 생각이군요.
8진수를 어떻게 2진수로 바꿔야 하지만 더 좋은
하나……. 우선 10진수로 바꾸고 방법이 있지요.
다시 2진수로 바꾸면
되지 않나요 ?

야, 천재다.
천재!

8=23이라는 사실에 주목하면 8진수와 2진수 간의 변환을 쉽게 할 수 있다.


즉, 8=23이므로 8진수 한 자리는 2진수 세 자리에 해당하며, 역으로 2진수 세
자리는 8진수 한 자리에 해당된다.

8진수 6538을 2진수로 바꾸시오.


【풀이】 6 5 3
↓ ↓ ↓
110 101 011
1101010112이 6538을 2진수로 표현한 것이다.

20
정보의 표현 / 진수 변환

8진수 54168을 2진수로 바꾸시오.


【풀이】 5 4 1 6
↓ ↓ ↓ ↓
101 100 001 110
8진수 54168은 2진수로 1011000011102이 된다.

반대로, 2진수를 8진수로 바꾸는 경우는 위의 과정을 역으로 수행하면 된다.


2진수 세 자리가 8진수 한 자리에 해당하는 것이므로 주어진 2진수를 오른쪽에
서부터 세 자리씩 묶어서 각 자리를 8진수로 바꾸면 전체의 8진수 표현을 얻게
된다.

2진수 1101011110112을 8진수로 변환하시오.


【풀이】 110 101 111 011
↓ ↓ ↓ ↓
6 5 7 3
2진수 1101011110112은 8진수 65738과 같다.

2진수를 8진수로 변환할 때는 3자리씩


나눠서 하면 되요.

2진수 10011010112을 8진수로 변환하시오.


【풀이】2진수의 총 자릿수가 10자리로 세 자리씩 묶으면 한 자리가 남게 된다.
이 때에는, 오른쪽에서부터 세 자리씩 묶고 마지막에 남는 가장 왼쪽의 한 자

21
정보의 표현 / 진수 변환

리는 앞에 00을 추가하여 세 자리로 만든 후 8진수로 변환한다. 즉, 왼쪽에 00


을 추가하여
001 001 101 011
↓ ↓ ↓ ↓
1 1 5 3
이 되고, 즉 2진수 10011010112의 8진수 표현은 11538이다.

2 2진수와 16진수 사이의 변환

진짜 천재인가?

2진수와 16진수 사이
변환도 비슷한 방식으로
할 수 있을 것 같은데요.

2진수와 16진수 사이의 변환도 16이 2의 네제곱이라는 성질을 이용하여 10진


수를 거치지 않고 간단히 수행할 수가 있다. 16=24이므로 16진수 한 자리는 2
진수 네 자리에 해당하며, 역으로 2진수 네 자리는 16진수 한 자리에 해당된다.

16진수 8E516를 2진수로 변환하시오.


【풀이】 8 E 5
↓ ↓ ↓
1000 1110 0101
16진수 8E516는 2진수로는 1000111001012로 표현할 수 있다.

역으로, 2진수를 16진수로 변환하는 경우를 생각한다. 이와 같은 변환은 위의


과정을 역으로 수행하면 되는데, 2진수 네 자리가 16진수 한 자리에 해당되는
것이므로 주어진 2진수를 오른쪽에서부터 네 자리씩 묶어서 각 자리를 16진수
로 바꾸면 전체의 16진수 표현을 얻게 된다.

22
정보의 표현 / 진수 변환

2진수 1011101001102을 16진수로 변환하시오.


【풀이】 1011 1010 0110
↓ ↓ ↓
B A 6
2진수 1011101001102은 16진수 BA616과 같다.

2진수 1011110102을 16진수로 변환하시오.


【풀이】8진수의 경우에서와 같이 2진수를 네 자리씩 묶을 때 몇 자리가 남는
경우는 앞에 0을 추가하여 변환하면 된다. 즉, 1011110102은 아홉 자리이므로 오
른쪽부터 네 자리씩 묶고 맨 왼쪽의 한 자리는 000을 추가하여 다음과 같이 네
자리를 만들어 변환한다.
0001 0111 1010
↓ ↓ ↓
1 7 A
즉, 2진수 1011110102은 16진수 17A16로 변환된다.

3 8진수와 16진수 사이의 변환

많이 늘었네요.
8진수나 16진수 모두 2진수와의 변환이
용이한 수 체계이므로, 8진수와 16진수의
상호 변환이 필요한 경우는 중간에 2진수를
통해서 쉽게 변환을 할 수
있을 것 같은데요.

우선, 8진수를 16진수로 변환하는 과정은 8진수로 표현된 수를 2진수로 변환


한 다음 오른쪽부터 네 자리씩 묶어서 16진수로 변환하면 되고, 반대로 16진수
를 8진수로 변환하는 과정은 16진수로 표현된 수를 2진수로 표현한 다음 오른
쪽부터 세 자리씩 묶어서 8진수로 변환하면 된다.

23
정보의 표현 / 진수 변환

8진수 54578을 16진수로 변환하시오.


【풀이】 54578 =101 100 101 1112
=1011 0010 11112
=B2F16
8진수 54578은 16진수 B2F16로 변환된다.

16진수 4F316을 8진수로 변환하시오.


【풀이】 4F316 =0100 1111 00112
=010 011 110 0112
=23638

탐구 문제
소수점을 포함한 실수도 진수 간의 변화가 가능하다. 인터넷의 여러 가
지 검색 엔진을 이용하여 소수점을 포함한 실수의 진수 변환을 학습하자.
검색어:2진수, 소수점

24
2 2 진수의 연산
학습 목표 1. 2진수에서 사칙 연산을 할 수 있다.
2. 음수를 1의 보수 방식, 2의 보수 방식으로 표현할 수 있다.
3. 보수의 원리를 설명할 수 있다.
4. 디지털 시스템에서 보수를 이용해서 덧셈과 뺄셈을 할 수 있다.

1. 사칙 연산
2진수의 사칙 연산은 10진수에서의 연산과 같은 방법으로 실행된다. 사실 2
진수의 사칙 연산은 몇 가지 경우만이 있으므로 오히려 10진 연산보다 더 간단
하다. 우선 덧셈과 뺄셈만을 고려하면 각각 다음의 표 Ⅱ-2와 같이 4가지 경우
만이 있다. 이제 2진수의 덧셈과 뺄셈은 각각의 자릿수에 대해 표 Ⅱ-2와 같이
연산을 하고 10진수의 경우와 같이 자리올림과 자리내림만 고려해 주면 된다.

표 Ⅱ-2
덧셈 뺄셈
2진수의 덧셈과 뺄셈
0+0=0 0-0=0

0+1=1 1-0=1

1+0=1 1-1=0

1+1=10 10-1=1

2진수의 덧셈과 뺄셈도


10진수의 경우와 같이
자리 올림과 자리 내림만
생각해 주면 아주 간단하지요.
간단한 예를 살펴 볼까요?

-덧셈- -뺄셈-
11011001 10010011 아주 쉬워요.
+ 1010100 - 1001110
100101101 1000101

2진수의 곱셈과 나눗셈도 10진수의 경우와 같다. 우선 곱셈을 생각해 보면 10


진수의 경우와 같이 곱하는 수의 하위 자리(오른쪽 자리)부터 곱셈을 수행하여
차례로 상위 자리(왼쪽 자리)로 이동하며 최종적으로 결과를 덧셈하면 된다. 이
때, 곱하는 수는 항상 0이나 1이기 때문에 간단히 연산을 수행할 수 있다.

25
정보의 표현 / 2진수의 연산

2진수 곱셈과 나눗셈도 10진 2진수의 나눗셈 역시 0÷


수의 방법과 같아요. 수 체계 1=0, 1÷1=1을 원칙으로 10
가 단지 2진수라는 차이만 진수와 같은 방식으로 계산
있지요. 예를 들어, 을 하면 되요. 예를 들어,
110×101을 보면 1001÷11의 경우를 보면 다
110 음과 같아요. 11
× 101 11 ) 1001
110 110
0000 11
11000 11
11110 0

2. 보수의 개념과 음수
앞에서 학습한 바와 같이 2진수는 주로 디지털 시스템에서 사용하는 수 체계
이다. 2진수를 디지털 시스템으로 표현하는 경우 그림 Ⅱ-1과 같은 2진 기억 소
자의 집단을 사용한다(이 같은 2진 기억 소자의 집단을 레지스터라 하여 V장
에서 학습하게 된다.).
그림 Ⅱ-1
A7 A6 A5 A4 A3 A2 A1 A0
8비트 2진수 기억 소자

그림 Ⅱ-1은 여덟 자리의 2진수를 표현하는 기억 소자를 나타내며 각 자리를


비트(bit, binary digit)라고 부른다. 즉, 그림 Ⅱ-1은 8비트의 기억 소자를 나타내
며 위의 8비트 기억 소자는 00000000~11111111까지의 2진수를 기억할 수 있다.

1 보수와 음수

여기에서는 위의 기억 소자에 2진수로 표현된 양수뿐 아니라 음수를 저장하


는 방식을 학습하기로 한다.

0과 1만으로 수를
표현할 때 음수는 어떻
게 표현하죠?

아주 좋은 질문이군.
부호・크기 방식, 1의 보수 방식,
2의 보수 방식의 3가지
방식이 있습니다.

26
정보의 표현 / 2진수의 연산

부호-크기 방식
그림 Ⅱ-1의 기억 소자에 음수를 저장하려 할 때 가장 쉽게 생각할 수 있는
방식이다. 이 방식은 8비트 중 가장 왼쪽의 비트1)를 부호 비트(sign bit)로 하
여 그 값이 0이면‘양수’
로 하고 그 값이 1이면‘음수’
로 규정을 하고 나머지
7개의 비트를 이용하여 그 크기를 나타내는 방법이다. 예를 들어, 그림 Ⅱ-2의
기억 소자에서 ⒜는 양수이고, ⒝는 음수이다.

그림 Ⅱ-2
0
부호 - 크기 방식
⒜ 양수

1
⒝ 음수

부호-크기 방식으로 표현된 8비트 2진 정보는 그림과 같다.

0 1 1 0 1 0 0 1

10진 정보로 표현하시오.


【풀이】01101001은 부호 비트가 0이므로 +1101001, 즉 +105를 나타낸다.

부호-크기 방식으로 표현된 8비트 2진 정보는 그림과 같다.


1 1 1 0 0 0 1 1

10진 정보로 표현하시오.


【풀이】11100011은 부호 비트가 1이므로 -1100011, 즉 -99를 나타낸다.

1의 보수 방식
편의상 그림 Ⅱ-1과 같은 8비트 기억 소자에 대해서 설명하도록 한다. 1의 보
수 방식(1's complement form)은 양의 2진수 x의 음수 -x를 기억 소자상에
서는 11111111-x의 형태로 저장하는 방식이다.
11111111-x로 정의된 1의 보수는 주어진 값을 11111111에서 빼어야 하지만
이는 각각의 비트를 반전(0→1, 1→0)한 것과 같은 결과이다. 예를 들어,
00001101의 1의 보수는 각 비트를 반전한 11110010이고, 00011010의 1의 보수는
역시 각 비트를 반전한 11100101이다.

1) 영어로는 most significant bit이며 흔히 MSB라고 한다.

27
정보의 표현 / 2진수의 연산

8비트 기억 소자의 경우
1의 보수는
11111111-x예요.

-13을 8비트 1의 보수 방식으로 표현하시오.


【풀이】x=13일 때 여덟 자리 2진수로는 00001101이 되고, 그 1의 보수는
11111111-x=11110010이다. 즉, 13의 1의 보수는 11110010으로 1의 보수로서
-13을 표현한 것이 된다.
11111111
)
- 00001101
11110010

-26을 8비트 1의 보수 방식으로 표현하시오.


【풀이】 26은 여덟 자리 2진수로 00011010이고 1의 보수는 11111111-x로
11100101이다.
11111111
)
- 00011010
11100101

이는 각각의 비트를 반전(0→1, 1→0)한 것과 같은 결과이다. 예를 들어,


00001101의 1의 보수는 각 비트를 반전한 11110010이고, 00011010의 1의 보수는
역시 각 비트를 반전한 11100101이다.
8비트로 나타내는 범위는 00000000~11111111로 모든 경우의 수는 28=256개
이고 이것으로 양수와 음수를 모두 나타내어야 하므로, 실제로 -127~+127
(-27~+27)까지만 나타낼 수 있다. 따라서, 양수의 범위는 모두 가장 왼쪽 비
트가 0으로 시작하여야 하며, 그의 음수를 1의 보수로 표현하면 자동으로 가장
왼쪽 비트는 1이 된다. 즉, 1의 보수 방식도 가장 왼쪽 비트는 부호 비트로 사
용되고 0이면 양수, 1이면 음수를 나타낸다. 이러한 1의 보수 방식의 경우

28
정보의 표현 / 2진수의 연산

00000000은 +0을 나타내게 되고 11111111은 -0을 나타내게 되는데 이같이 하


나의 0에 대하여 2개의 코드가 존재하는 것은 1의 보수 방식의 단점이다.

이렇게 쉬울 수가?

1의 보수는 0을 1로,
1을 0으로만 바꾸면 되요.
예를 들어

0 0 0 0 1 1 0 1
반전 →↓↓↓↓↓↓↓↓
1 1 1 1 0 0 1 0

2의 보수 방식
2의 보수 방식(2's complement form)은 디지털 시스템에서 가장 흔히 음수
를 표현하기 위해 사용되는 방식이다. 여덟 자리 기억 소자에 대해서 설명하면
2의 보수 방식은 100000000-x의 형태로 x의 음수 -x를 기억 소자상에 저장
하는 방식이다.

8비트 기억 소자의
경우 2의 보수는
100000000-x 예요.

-13을 8비트 2의 보수 방식으로 표현하시오.


【풀이】x=13에 대하여 2의 보수를 계산해 보면, x=13은 2진수로 00001101이
므로
100000000
- ) 00001101
11110011
-13을 2의 보수로 표현하면 11110011이다.

29
정보의 표현 / 2진수의 연산

-26을 8비트 2의 보수 방식으로 표현하시오.


【풀이】26은 2진수로 00011010이고, 2의 보수를 계산해 보면
100000000
)
- 00011010
11100110
-26을 2의 보수로 표현하면 11100110이다.

2의 보수를 그 정의 (100000000-x)에 의하여 계산하는 것은


많은 계산을 요구하지만 2의 보수가 1의 보수에 1을 더한
것이라는 사실에 착안하면 쉽게 구할 수 있어요. 즉, 앞에서
2의 보수를 쉽게 설명한 것과 같이 1의 보수는 단순히 각 비트를 반전하면
구할 수 있는 구해지고, 여기에 1을 더한 것이 2의 보수예요. 예를 들어,
방법은 없나요? 00001101의 2의 보수는 각 비트를 반전하고
거기에 1을 더한 값이지요.
알겠죠?

→1의 보수

→2의 보수

표 Ⅱ-3
4비트 기억 소자 부호-크기 방식 1의 보수 2의 보수
음수의 2진 데이터 표현
방식 0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 -0 -7 -8
1001 -1 -6 -7
1010 -2 -5 -6
1011 -3 -4 -5
1100 -4 -3 -4
1101 -5 -2 -3
1110 -6 -1 -2
1111 -7 -0 -1
표현할 수 있는 정보의 종류 15종류 15종류 16종류

30
정보의 표현 / 2진수의 연산

2의 보수의 경우에도 표현할 수 있는 양수의 범위는 모두 가장 왼쪽 비트가


0으로 시작하여야 하며 그의 음수를 2의 보수로 표현하면 자동으로 가장 왼쪽
비트는 1이 오게 된다. 즉, 2의 보수 방식의 경우에도 가장 왼쪽 비트가 0이면
양수를 나타내고 1이면 음수를 나타낸다.
각 방식 간의 비교
표 Ⅱ-3은 2진 데이터를 표현 방식에 따라 어떻게 해석할 수 있는지를 보여
준다. 편의상 4비트만 다루었으며 부호-크기 방식이나, 1의 보수, 2의 보수 모두
에서 가장 왼쪽 비트가‘0’
인 것은 양수로 취급되고‘1’
인 것은 음수로 취급되
는 것을 알 수 있다.

2 보수를 이용한 덧셈과 뺄셈

앞에서 보수를 이용한 방식이 부호-크기 방식보다 유용하다고 하였는데, 이


는 연산을 할 경우 부호 비트(가장 왼쪽 비트)가 나머지 부분과 같은 방식으로
연산이 되며, 뺄셈이 덧셈기를 통해 이루어지기 때문이다. 1의 보수와 2의 보수
는 거의 같지만 회로 수행의 몇 가지 이점 때문에 일반적으로 2의 보수가 널리
쓰이며, 여기서는 2의 보수를 중심으로 뺄셈 과정에 대하여 알아본다. 뺄셈의
원리를 보면, A-B 대신에 A+(B의 2의 보수)를 계산하는 것이다. 즉, A+
(1000000-B)를 계산하는 것인데, 결국 1000000(괄호 안의 가장 왼쪽 비트)은
6비트 자릿수 초과로 없어지게 되고 결과적으로 A-B를 얻게 되는 것이다.

예를 들어 볼까요?
편의상 8비트 기억 소자를 이용하여
설명합시다. 물론 여기서 가장 왼쪽
비트는 부호 비트예요.

두 양수의 덧셈
+13과 +5를 더하는 경우를 생각한다. 모두 양수이므로 보수를 사용하지 않
고 그대로 더하면 된다.

13 → 00001101
) )
+ 5 → + 00000101
18 00010010 (=+18)

31
정보의 표현 / 2진수의 연산

양수와 그보다 절대값이 작은 음수의 덧셈


+13과 -5를 더하는 경우를 생각한다. -5는 음수이므로 2의 보수로 표현해
야 하는데, 5는 00000101이므로 -5를 표현하는 5의 2의 보수는 11111011이다. 따
라서,
13 → 00001101
) )
+ -5 → + 11111011
8 1 00001000 (=+8)

계산 결과는 아홉 자리인 100001000이 나왔지만 앞에서 설명한 바와 같이 8


비트의 기억 소자를 사용하고 있으므로, 가장 왼쪽의 1은 기억 소자에서 제외
되고 결과적으로 00001000만이 남게 된다. 이 값은 부호 비트가 0이므로, +8로
해석할 수 있고, 이 결과는 예측한 결과와 같다는 것을 알 수 있다. 또, 13+
(-5)를 13-5로 해석할 때 보수 방식을 이용함으로써 뺄셈을 덧셈으로 구현
할 수 있고, 부호 비트도 나머지 비트와 같이 연산할 수 있는 것을 알 수 있다.
즉, 2진 보수를 사용하는 디지털 회로 시스템은 덧셈 회로(가산기)를 가지고
있는 경우 뺄셈 회로(감산기) 없이 뺄셈을 할 수 있는 것을 알 수 있다.
양수와 그보다 절대값이 큰 음수의 덧셈
-13과 +5를 더하는 경우를 생각한다. -13은 음수이므로, 2의 보수로 표현
해야 하는데, 13은 00001101이므로 -13을 표현하는 2의 보수는 11110011이다.
따라서,
-13 → 11110011
) )
+ 5 → + 00000101
-8 11111000 (=-8)

계산 결과인 11111000은 가장 왼쪽 비트가‘1’


이므로 이는 음수를 나타내고
그 값을 알기 위해서는 2의 보수를 취하여 확인할 수 있다. 즉, 2의 보수는
00001000이므로 10진수 8이고, 따라서 결과는 -8임을 알 수 있다, 즉, 이 결과
는 예측한 결과와 같다는 것을 알 수 있다.
두 음수의 덧셈
-13과 -5를 더하는 경우를 생각한다. -13은 13의 2의 보수인 11110011로
표현하며 -5는 5의 2의 보수인 11111011로 표현한다.
-13 → 11110011
) )
+ -5 → + 11111011
-18 1 11101110 (=-18)

앞에서 설명한 바와 같이 계산 결과는 아홉 자리인 111101110이 나왔지만 8


비트의 기억 소자를 사용하고 있으므로 가장 왼쪽의 1은 기억 소자에서 제외
되고, 나머지 남아 있는 결과인 11101110만을 해석하여야 한다. 가장 왼쪽의 부
호 비트가‘1’
이므로, 결과는 음수임을 알 수 있고, 값을 확인하기 위해 2의 보

32
정보의 표현 / 2진수의 연산

수를 취하면 00010010(=18)이므로 연산 결과는 예상한 바와 같이 -18이 된다.


절대값은 같고 부호가 반대인 경우
-13과 +13을 더하는 경우를 생각한다. -13은 13의 2의 보수인 11110011로
표현하며, 따라서
-13 → 11110011
) )
+ 13 → + 00001101
0 1 00000000 (=0)

앞에서 설명한 것과 같이 8비트를 초과하는 가장 왼쪽의 '1'은 무시되고 결과


는 예상한 것과 같이 00000000, 즉 0을 얻게 된다.
보수를 이용한 뺄셈
2의 보수를 이용한 뺄셈은 지금까지 학습한 덧셈 연산과 관련하여 간단히 학
습할 수 있다. 2의 보수는 반대 부호를 나타내므로 모든 경우에서 A-B형의
문제가 주어지면 B의 2의 보수를 취하여 더하면 주어진 뺄셈의 결과를 얻게 된
다. 예를 들어, 9-4를 계산하려 하는 경우 이 문제를 9+(4의 2의 보수)로 바
꾸어 연산을 하면 결과는 9+(-4)가 되어 원하는 뺄셈의 결과를 얻게 된다.

간단히 말해서, 음수는


모두 2의 보수로 바꿔서
더하면 된다는 거지요.

너무 어려워요.

3 보수를 이용한 연산시 주의점

8비트 기억 소자를 사용한 시스템이 양수와 음수를 표현하려 한다면, 그 사

8비트 연산을 할 때 그럼 직접 해 보면
결과가 8비트를 넘으면 결과를 알겠지.
어떻게 될까요?

글쎄요? 컴퓨터가
폭발할까요?

33
정보의 표현 / 2진수의 연산

용 영역은 -27 ~+(27 -1)이 된다. 일반적으로, N비트 기억 소자를 이용한


시스템의 사용 영역은 -2N-1 ~+(2N-1 -1)이다. 디지털 시스템에서 이 사용
범위를 벗어난 연산을 하는 경우 얻게 되는 결과는 부정확한 결과가 되며, 이
런 경우를 오버플로(overflow)라고 한다. 예를 들어, 8비트 기억 소자 시스템에
서 +100과 +30을 더하는 경우를 생각한다.
100 → 01100100
) )
+ 30 → + 00011110
130 10000010 ( +130)

구해진 답은 부호 비트가‘1’
로 음수가 되며 정답인 +130과는 다르다. 이는
연산의 결과가 8비트 기억 소자 시스템의 한계를 넘어서서 발생한 것으로, 즉
오버플로가 발생한 것이다. 이와 같이 오버플로가 발생하면 항상 그 결과는 부
정확한 값이 되며 디지털 시스템의 설계나 이용시에 항상 이와 같은 오버플로
가 발생하지 않도록 주의해야 한다.

4 2의 보수 시스템의 곱셈과 나눗셈

곱해지는 두 수가 양수인 경우 곱의 결과는 양수이고 부호 비트는 0이므로


실제로 그대로 곱하면 된다. 또, 곱해지는 두 수가 모두 음수인 경우도 곱의 결
과는 양수이므로, 두 수를 각각 2의 보수를 취해 양수로 바꾸어 연산을 하면
된다. 두 수 중의 하나가 양수이고, 또다른 하나가 음수인 경우는 음수를 2의
보수를 취해 양수로 바꾸어 곱셈을 한 다음 연산 결과를 음수로 하기 위하여
다시 2의 보수를 취한다. 부호가 있는 나눗셈의 경우는 곱셈의 경우와 같은 방
식으로 처리할 수 있다.

읽을거리

예부터 우리 나라는 모든 것을 음양으로 나누어서 따지는 음양 사상이 강했고 이런 전통은 지


금도 뿌리 깊게 살아 있다. 음양 사상이란 태양과 달, 남자와 여자, 홀수와 짝수 등과 같이 세상
의 모든 것을 음과 양으로 분류해서 생각하는 방식이다.
이러한 음양 사상은 중세에 유럽으로도 전해졌으며, 여러 위대한 철학자, 과학자들이 그 영향
을 받았다. 그 대표적인 예가 라이프니츠가 개발한 2진수인데, 서양에서 개발된 컴퓨터의 기본이
되는 2진수가 동양의 음양 사상에서 출발했다는 것은 아주 재미있는 일이다.

탐구 문제
개인용 컴퓨터(PC)에서 흔히 사용하는 Window 95/98은 자체 계산기
프로그램 calc.exe를 가지고 있고, 이 프로그램은 2진수, 8진수, 16진수의
사칙 연산을 지원한다. 이 프로그램을 이용하여 예제의 답을 확인하자.

34
3 실수의 표현
학습 목표 1. 고정 소수점 수를 부동 소수점 수로 변환할 수 있다.
2. 단정도(4바이트)와 배정도(8바이트) 부동 소수점 수를 구분할 수 있다.
3. 10진수를 부동 소수점 수 표현 방식에 따라 2진 비트 열로 전개할 수 있다.
4. 컴퓨터에서 부동 소수점 수가 사용되는 용도를 알고 응용할 수 있다.

1. 실수
실수는 아주 작은 수나 아주 큰 수의 표현에 적합하며 소수점을 포함하고 있
는데, 소수점의 위치에 따라 크기가 달라진다. 이와 같이 소수점의 위치가 고정
된 것이 아니라 크기에 따라 변동하므로, 실수는 정수의 표현 방식과는 다르게
표현한다.

디지털 시스템에서
소수점을 포함한 실수는
어떻게 표현하죠?

부동 소수점이라는
방식을 사용하게
되지요.

실수의 표현에 사용되는 방식을 부동 소수점(floating point) 방식이라 부른


다. 4바이트(32비트) 또는 8바이트(64비트)를 사용하며, 그림 Ⅱ-3과 같이 부호,
지수부, 가수부로 구성된다.

그림 Ⅱ-3 부
지수부 가수부
32비트 부동 소수점 방식 호

64비트 표현은 지수부와 가수부에 할당된 비트 수가 많으므로, 표현할 수 있


는 수의 범위가 넓다. 따라서, 이 표현은 정밀도를 요하는 수치 계산에 이용될
수 있다. 그러나 실수를 표현하는 원리는 모두 같기 때문에 여기서는 32비트
표현 방식만을 설명한다. 실수를 표현하는 한 가지 공통된 방식은 지수형으로
나타내는 것이다. 특히, 소수점의 위치를 가장 큰 유효 숫자의 왼쪽으로 옮겨서
지수와 함께 표시하는 것을 정규화(normalization)라 한다.

35
정보의 표현 / 실수의 표현

물리 시간에 유효 숫자와
지수로 물리량을 표현하는
것과 같은 방법이지요.

다음의 예는 10진수와 2진수를 정규화시킨 것이다.


10진수:2135 = 2.135×103
10진수:-2.13510 = -2.135×100
10진수:0.002135 = 2.135×10-3
12진수:-101.112 = -1.0111×22
10진수:0.0001012 = 1.01×2-4
실제 실수의 표현은 모두 2진수로 나타내므로 10진수는 먼저 2진수로 변환되
어야 한다. 위의 예와 같이 정규화된 실수는 크게 세 부분으로 나누어져 있는
데, 이를 부호, 가수, 지수라 부른다. 그림 Ⅱ-3의 32비트 표현에서 부호 1비트,
지수 8비트, 가수 23비트가 사용되며 정규화된 실수의 해당 부분을 표현한다.
㈎ 부호:표현하려는 실수가 양수이면 0, 음수이면 1로 표시한다.
㈏ 지수부:정규화된 실수의 지수 부분을 표현하며 바이어스된 지수(biased
exponent)를 사용한다. 바이어스된 지수란 정규화된 실수의 지수 0을
011111112로 나타내어, 지수 표현의 기준으로 삼으며 이를 바이어스(bias)라
부른다. 바이어스된 지수는 바이어스를 기준으로 다음과 같이 표현한다.

지수: -1 0 1 2 …
바이어스된 지수: 01111110 01111111 10000000 10000001 …
12610 12710 12810 12910 …

이 같은 바이어스된 지수는 연산을 용이하게 한다.


32비트 표현에서 바이어스된 지수는 00000001~11111110의 범위에서 사용하며
실제 표현할 수 있는 지수값의 범위는 -126~+127까지이다. 00000000과
11111111은 예외 처리를 위해 사용하지 않는다.
㈐ 가수부:정규화된 실수의 가수를 표시하는데 정규화된 실수의 가수는 항상
첫째 번 비트를 1로 가지므로, 이를 생략하고 나머지 비트들만을 표현한다.
나머지 비트들을 가수 부분에 표시한 다음 남는 비트는 0으로 표시한다.

36
정보의 표현 / 실수의 표현

바이어스된 지수를 쉽게
계산하는 방법은 정규화된
실수의 지수에 10진수 127을
더하면 되지요.

우리 선생님은
족집게야.

-0.10111×2-3을 32비트 부동 소수점 표현으로 나타내시오.


【풀이】위의 수를 정규화하면 -1.0111×2-4이 되고 다음과 같이 부호, 지수부,
가수부를 결정한다.
① 부호:음수이므로 1로 결정된다.
② 지수부:지수가 -4이므로 -4+127=123이 바이어스된 지수가 된다.
123을 8비트에 표현하면 01111011이 된다.
③ 가수부:가수 10111에서 첫째 번 비트를 생략하면 0111이 되므로 이를 23
비트에 표현하면 01110000000000000000000으로 된다. 따라서, 32비트 표현으
로 나타내면 다음과 같다.
1 01111011 01110000000000000000000
부호 지수부 가수부
때로는 위의 2진수 표현을 간결하게 나타내기 위하여 16진수로 표현한다. 이
경우, 왼쪽에서부터 4비트씩 묶어서 16진수의 한 자리로 나타내므로 그 결과는
BDB8000016으로 표현된다.

너무 어려워서 ① 10진수는 먼저 2진수로 변환한다.


이해가 안 되요. ② 변환된 2진수를 정규화된 표현으로
나타낸다.
③ 정규화된 표현에서 부호, 지수, 가수
부분을 결정한다.
다음의 예제를 풀어 보세요.

37
정보의 표현 / 실수의 표현

12.687510를 32비트 부동 소수점 표현으로 나타내시오.


【풀이】① 10진수를 2진수로 변환한다.
12.687510 =1100.10112
② 정규화된 표현으로 나타낸다.
1100.10112 =1.10010112 ×23
③ 부호:양수이므로 0
지수부:3+127=130을 8비트에 표현하면 10000010
가수부:11001011에서 첫째 번 비트 1을 생략한 다음 23비트에 표현
하면, 10010110000000000000000
따라서, 0 10000010 10010110000000000000000으로 표현된다.
이를 16진수로 나타내면 (414B0000)16으로 된다.

탐구 문제
인터넷의 여러 가지 검색 엔진을 이용하여 8바이트(64비트) 부동 소수
점 방식의 규격을 찾아보고, 예제 21을 64비트 부동 소수점 표현으로 나타
내자.
(검색어:부동 소수점, IEEE)

38
4 디지털 코드
학습 목표 1. 디지털 코드의 종류와 의미를 알고, 이를 표현할 수 있다.
2. BCD 코드로 표현한 자료끼리 연산할 수 있다.
3. 3초과 코드와 그레이 코드의 용도를 알 수 있다.
4. 영문자를 ASCⅡ 코드와 EBCDIC 코드로 표현할 수 있다.
5. 완성형 코드와 조합형 코드를 구분하여 표현할 수 있다.
6. 유니 코드의 용도를 설명할 수 있다.

1. 2진 숫자 코드
1 BCD 코드

BCD(binary coded decimal) 코드는 0에서 9까지의 10진수를 2진수인 0과 1


의 조합으로 표시하는 코드이다. 이 코드는 10진수보다 숫자의 자릿수가 많아
비효율적이지만 코드가 0과 1로만 표시되기 때문에 컴퓨터에 바로 적용할 수
있는 장점이 있다. 그리고 10진수와 동일한 방식으로 표현되기 때문에 쉽게 그
값을 알 수 있다. BCD 코드는 각 비트마다 정해진 값(23 =8, 22 =4, 21 =2,
20 =1)을 가지고 있는데, 표 Ⅱ-4와 같다.
표 Ⅱ-4 BCD 코드
BCD 코드 BCD 코드
10진수 10진수
23 22 21 20 23 22 21 20

0 0000 5 0101

1 0001 6 0110

2 0010 7 0111

3 0011 8 1000

4 0100 9 1001

2진수와 BCD 코드가


어떻게 다른지 잘
모르겠어요.

BCD 코드는 10진수를 그대로 2진수로


변환하는 것이 아니라 10진수의 각 자리마다
4비트로 구성된 2진수로 변환하는 거지.
10진수 256을 2진수와 BCD로 표현하면
표 Ⅱ-5와 같아요.

39
정보의 표현 / 디지털 코드

실제로 BCD 코드의 4개 비트로는 0000~1111까지 모두 16개를 나타낼 수 있


으나, BCD 코드에서는 이 중 10개만을 사용하고, 나머지 6개(1010, 1011, 1100,
1101, 1110, 1111)는 사용하지 않는다.

표 Ⅱ-5
10진수 2진수 BCD
256의 BCD 표현
0010 0101 0110
256 100000000
2 5 6

또, 소수점을 포함한 10진수를 BCD로 표현할 때는 소수점을 기준으로 10진


수 한 자리마다 좌우로 4비트씩 구분하여 표현하고, 소수점을 포함한 BCD를
10진수로 표현할 경우에는 소수점을 기준으로 4비트마다 10진수 한 자리로 표
현하면 된다.
5 2 ・ 7 6

0101 0010・0111 0110


BCD 코드에 의해서도 산술 연산이 가능하며 BCD 가산법에서는 다음과 같
은 두 가지 조건을 적용해야 한다.
첫째, BCD 수를 가산한 결과 각 자릿수의 4비트가 10개의 BCD 수(0000~
1001)에 포함되어 있으면 그 자체가 BCD 값이 된다.
둘째, 각 자릿수의 4비트가 10개의 BCD 수에 포함되어 있지 않거나, 자리올
림이 발생하면 그 값에 6(0110)을 더해 주어야만 BCD값이 된다. 따라서, BCD
코드에 포함되지 않는 여섯 개의 4비트 때문에 일반적인 2진 가산이 아닌 특별
한 연산법이 필요하다.

36+42를 BCD로 바꾸어서 연산하시오.


【풀이】 (10진 연산) (BCD 연산)
36 0011 0110
+ 42 + 0100 0010
78 0111 1000 (BCD 수)

40
정보의 표현 / 디지털 코드

7+5를 BCD로 바꾸어서 연산하시오.


【풀이】 (10진 연산) (BCD 연산)
7 0111
+5 + 0101 1100은 BCD
코드가 아니니까
12 1100 (BCD 수가 아님.) 6을 더해야지요.
+ 0110 (6을 더함.)
0001 0010 (BCD 수로 12)

▶ 자리올림 발생

69+85를 BCD로 바꾸어서 연산하시오.


【풀이】 (10진 연산) (BCD 연산)
69 0110 1001
+ 85 + 1000 0101
154 1110 1110 (양쪽 BCD 아님)
+ 0110 0110 (양쪽에 6을 더함)
0001 0101 0100 (BCD로 154이다.)

2 3초과 코드

3초과 코드(excess-3 code)는 BCD 코드의 변형된 형태로, BCD 코드에 10진
수 3(2진수로는 0011)을 각각 더한 것으로 표 Ⅱ-6과 같이 표현한다. 다시 말하
면 16개의 2진수 중 0011~1100까지의 10개의 코드를 10진수 0, 1, …, 9로 각각
대응시킨 것과 같다. 따라서, 나머지 6개의 코드(0000, 0001, 0010, 1101, 1110,

표 Ⅱ-6
10진수 BCD 코드 3초과 코드
3초과 코드
0 0000 0011

1 0001 0100

2 0010 0101

3 0011 0110

4 0100 0111

5 0101 1000

6 0110 1001

7 0111 1010

8 1000 1011

9 1001 1100

41
정보의 표현 / 디지털 코드

표 Ⅱ-7
10진수 BCD 3초과 코드
357의 3초과 코드
0011 0101 0111 0110 1000 1010
357
3 5 7 3 5 7

1111)는 3초과 코드에서 사용하지 않는다. 그리고 3초과 코드는 각 비트마다 자


리값을 가지지 않기 때문에 가중치 없는 코드(unweighted code)라 한다. 표
Ⅱ-7은 357의 3초과 코드이다.

3 그레이 코드

그레이 코드(gray code)는 사칙 연산에는 부적당하지만 서로 이웃하는 숫자


와 1개의 비트만 변하게 되어 있어서 입력 코드로 사용할 때 오류가 적은 특
성을 지닌다. 또, 간단히 2진수 코드로 바꿀 수 있어 입출력 장치, 데이터 전송,
아날로그-디지털 변환기 등에 이용되고 있다. 0~15까지의 10진수를 4비트의 2
진수와 그레이 코드로 나타내면 표 Ⅱ-8과 같다.

표 Ⅱ-8 10진수 2진수 그레이 코드


2진수와 그레이 코드
0 0000 0000

1 0001 0001

2 0010 0011

3 0011 0010

4 0100 0110

5 0101 0111

6 0110 0101

7 0111 0100

8 1000 1100

9 1001 1101

10 1010 1111

11 1011 1110

12 1100 1010

13 1101 1011

14 1110 1001

15 1111 1000

42
정보의 표현 / 디지털 코드

표 Ⅱ-8에서 보는 것과 와! 신기하다. 코드가 한 비


같이 그레이 코드는 2진수와는 다르게 트씩만 변하니까 그레이 코드는
앞뒤의 코드가 한 비트만 연속적인 특징을 지닌 아날로그 자료를
변화하는 특징을 가 입력으로 받는 시스템에서
지지요. 신기하죠? 적당하겠네요.

2진수에서 그레이 코드로 변환 방법


10진수 3은 2진수값이 0011이며, 이를 그레이 코드로 변환하면 다음과 같다.

② ④ ⑥
0 → 0 → 1 → 1 (2진수)
①↓ ③↓ ⑤↓ ⑦↓
0 → 0 → 1 → 0 (그레이 코드)
먼저 2진수의 최상위 비트는 그대로 그레이 코드의 최상위 비트가 되고(과정
①), 2진수의 최상위 비트와 그 다음 비트를 더하여(과정 ②), 자리올림 수를
제거한 나머지를 그레이 코드로 취한다(과정 ③). 그리고 나머지도 같은 방법
이다.

2진수 1011을 그레이 코드로 변환하시오.


【풀이】 1 → 0 → 1 → 1 (2진수)
↓ ↓ ↓ ↓
1 → 1 → 1 → 0 (그레이 코드)

2진수 0111을 그레이 코드로 변환하시오.


【풀이】 0 → 1 → 1 → 1 (2진수)
↓ ↓ ↓ ↓
0 → 1 → 0 → 0 (그레이 코드)

그레이 코드에서 2진수로 변환 방법


10진수 3은 그레이 코드값이 0010이며 이를 다시 2진수로 변환하는 과정은
다음과 같다.

43
정보의 표현 / 디지털 코드

0 0 1 0 (그레이 코드)
①↓ ② ③↓ ④ ⑤↓ ⑥ ⑦↓
0 0 1 1 (2진수)
먼저 그레이 코드의 최상위 비트를 그대로 2진수로 하고(과정 ①), 그 결과
를 그레이 코드의 다음 비트와 더하여(과정 ②) 자리올림을 제거하고 2진수로
취한다(과정 ③). 그리고 나머지 과정도 같은 방법으로 이해하면 된다.

그레이 코드 1110을 2진수로 변환하시오.


【풀이】 1 1 1 0 (그레이 코드)
↓ ↓ ↓ ↓
1 0 1 1 (2진수)

그레이 코드 0100을 2진수로 변환하시오.


【풀이】 0 1 0 0 (그레이 코드)
↓ ↓ ↓ ↓
0 1 1 1 (2진수)

4 패리티 비트와 해밍 코드

패리티 비트
문자 코드 내의 전체 1의 비트가 짝수 개가 되거나 홀수 개가 되도록 그 코
드에 덧붙이는 비트를 패리티 비트(parity bit)라고 한다. 패리티 비트는 하나
의 문자 혹은 문자 블록 내의 1비트 오류를 검사하기 위해 사용한다. 그 원리
는 그림 Ⅱ-4와 같다.

그림 Ⅱ-4 패리티 비트 데이터 패리티 비트 데이터

패리티 비트 0 10101100 1 10101100

⒜ 짝수의 규칙 ⒝ 홀수의 규칙

패리티 비트를 이용하면


그게 무슨 소릴까…
디지털 통신 등에서 오류가
발생한 것을 알 수 있지요.

패리티 비트를 이용할 때


오류가 2개 발생하면 패리티
비트가 역할을 못 할 것
같은데요.

44
정보의 표현 / 디지털 코드

해밍 코드
패리티 비트는 오류를 검출하기만 하며 이를 정정하지는 못하는 단점을 가
지고 있다. 패리티 비트의 기능을 확장하여 오류의 검출뿐만 아니라 오류를 정
정할 수 있는 코드가 있는데, 이 중 대표적인 코드가 해밍 코드이다.
해밍 코드(hamming code)는 해밍(R. W. Hamming)이 고안한 코드로서 4
개의 순수한 정보 비트에 3개의 체크 비트를 추가하여 총 7비트를 만들어 전송
하는 것이다. 비트의 구성은 왼쪽부터 1, 2, 4째 번에 패리티 비트를 두고 3, 5,
6, 7째 번 비트에 정보 비트를 둔다. 즉, 비트의 구성은 다음과 같다.
비행: 1 2 3 4 5 6 7
비트: P1 P2 D 1 P3 D 2 D 3 D 4
해밍 코드법의 구성은 패리티 비트 P1에는 1, 3, 5, 7행에 대해서 짝수 패리티
가 되도록 비트를 넣고, P2에는 2, 3, 6, 7행에 대해서 짝수 패리티가, 마지막으
로, P3에는 4, 5, 6, 7행에 대해서 짝수 패리티가 되도록 패리티 비트를 넣으면
가장 이상적인 해밍 코드가 만들어진다.

10진수 3(2진수 0011)에 대한 해밍 코드를 구하시오.


【풀이】먼저 D1D2D3D4에 2진 데이타 0011을 차례로 대응시킨 다음 P1, P2, P3
에 짝수 패리티 비트를 조사하면 다음과 같다.
비행: 1 2 3 4 5 6 7
비트: P1 P2 D 1 P3 D 2 D 3 D 4
→ P1 =1, 3, 5, 7행에 대해서 짝수 패리티를 검사하면 1이 된다.
→ P2 =2, 3, 6, 7행에 대해서 짝수 패리티를 검사하면 0이 된다.
→ P3 =4, 5, 6, 7행에 대해서 짝수 패리티를 검사하면 0이 된다.
즉, 1000011로 구성된다.

다음은 전송 데이터의 오류를 검출하고 정정하는 방법에 대해서 알아본다.


① 1, 3, 5, 7행에 대해서 짝수 패리티를 검사하여 C1으로 한다.
② 2, 3, 6, 7행에 대해서 짝수 패리티를 검사하여 C2으로 한다.
③ 4, 5, 6, 7행에 대해서 짝수 패리티를 검사하여 C3으로 한다.
④ C3 C2 C1 순으로 배열한다.
⑤ C3 C2 C1의 값이 오류가 발생한 위치가 되며 C3 C2 C1 =000은 오류가 발생하
지 않은 것이다.

45
정보의 표현 / 디지털 코드

해밍 코드는 굉장히
복잡하네요. 해밍 코드가
오류가 발생한 위치를
^^
찾아내는 원리가
이해가 안 되요.
해밍 코드는 복잡한
수학적 원리가 숨어 있는 것
이라서 쉽게 이해할 수는 없어
요. 우리 고등 학생들은 해밍 코
드가 오류 정정의 기능이 있
다는 것만 알고 있으면
되지요.

수신된 데이터가 짝수 패리티를 갖는 7비트 데이터 1000010인 경우, 오류의


발생 위치를 찾아내시오.
【풀이】 행: 1 2 3 4 5 6 7
데이 터비트:P1 P2 D1 P3 D2 D3 D4
수신 데이터: 1 0 0 0 0 1 0
① 1, 3, 5, 7행에 대해서 짝수 패리티 검사하면 C1 =1
② 2, 3, 6, 7행에 대해서 짝수 패리티 검사하여 C2 =1
③ 4, 5, 6, 7행에 대해서 짝수 패리티 검사하여 C3 =1
④ C3C2C1 =111
⑤ 2진수 111, 즉 7행에서 오류가 발생하였고 실제로는 1000011임을 알 수 있
다.

2. 2진 문자 코드
컴퓨터나 디지털 시스템에서 데이터를 처리할 때에는 항상 숫자 데이터만

특수 문자가
뭐예요? 영문자나 숫자 이외의 문자들이지요.
예를 들어, 여러분이 휴대 전화 문자
메시지에 사용하는 @, _, ^, ~ 등이
모두 특수 문자예요.

46
정보의 표현 / 디지털 코드

사용하는 것이 아니라 영문자까지도 사용한다. 이와 같은 0~9까지의 숫자와


A~Z까지의 영문자 및 +, - 등과 같은 특수 문자를 코드화한 것을 2진 문자
코드라 하며 영숫자 코드(alphanumeric code)라고도 한다.
2진 문자 코드는 4비트 BCD 코드에 2비트를 추가한 표준 BCD 코드
(standard BCD code), 미국 표준 협회(American Standard Association)에서
패리티 비트를 포함하여 8비트로 제정한 코드인 ASCII(American Standard
Code for Information Interchange) 코드 및 BCD 코드에 4비트를 추가한
EBCDIC(Extended Binary Coded Decimal Interchange Code)가 있다.

1 ASCII 코드

개인용 컴퓨터에서 주로 사용하며,


우리가 사용하는
개인용 컴퓨터 1개의 영숫자 코드가 7비트로 구성되
(PC, personal computer)는 어 있으나 실제 사용할 때에는 1비트
주로 ASCII 코드를
사용하고 있지요. 의 패리티 비트를 포함시켜서 8비트
로 전송한다.
표 Ⅱ-9는 ASCII 코드의 일부분을
나타낸 것으로 각 문자의 8진수 값과
16진수 값도 추가로 나타내었다.

표 Ⅱ-9 문자 7-비트 ASCII 8진수 16진수 문자 7-비트 ASCII 8진수 16진수


ASCII 코드의 일부분
A 100 0001 101 41 Z 101 1010 132 5A
B 100 0010 102 42 0 011 0000 060 30
C 100 0011 103 43 1 011 0001 061 31
D 100 0100 104 44 2 011 0010 062 32
E 100 0101 105 45 3 011 0011 063 33
F 100 0110 106 46 4 011 0100 064 34
G 100 0111 107 47 5 011 0101 065 35
H 100 1000 110 48 6 011 0110 066 36
I 100 1001 111 49 7 011 0111 067 37
J 100 1010 112 4A 8 011 1000 070 38
K 100 1011 113 4B 9 011 1001 071 39
L 100 1100 114 4C blank 010 0000 040 20
M 100 1101 115 4D . 010 1110 056 2E
N 100 1110 116 4E ( 010 1000 050 28
O 100 1111 117 4F + 010 1011 053 2B
P 101 0000 120 50 $ 010 0100 044 24
Q 101 0001 121 51 * 010 1010 052 2A
R 101 0010 122 52 ) 010 1001 051 29
S 101 0011 123 53 - 010 1101 055 2D
T 101 0100 124 54 / 010 1111 057 2F
U 101 0101 125 55 , 010 1100 454 1C
V 101 0110 126 56 = 011 1101 075 3D
W 101 0111 127 57 <RETURN> 000 1101 015 0D
X 101 1000 130 58 <LINEFEED> 000 1010 012 0A
Y 101 1001 131 59

47
정보의 표현 / 디지털 코드

다음 ASCII 코드가 무엇을 나타내는지 찾아보시오.


1001000 1000101 1001100 1010000
【풀이】각 7비트를 16진수로 나타내면
48 45 4C 50
표 Ⅱ-9을 보고 각 값들이 나타내는 문자를 찾아보면
H E L P
따라서, ASCII 코드를 이용하는 일반 개인용 PC에서 HELP라는 단어는
1001000 1000101 1001100 1010000
로 저장되어 있다.

2 EBCDIC 코드

IBM의 대형 컴퓨터 등에서 많이 사용되는 코드로서, 1개의 영숫자 코드가 8


비트로 구성되어 있다. 총 256개의 문자 코드를 구성할 수 있으나 실제로 사용
되는 문자 코드의 수는 ASCII 코드와 동일하다. EBCDIC 코드의 구성은 그림
Ⅱ-5와 같다.

그림 Ⅱ-5 ◀ 데이터 비트 ▶

EBCDIC 코드의 구성 ◀ 존 비트 ▶ ◀ 숫자 비트 ▶

b0 b1 b2 b3 b4 b5 b6 b7

3. 한글 코드
완성형은 한글을 음절 문자로 보아 완성형 한글로 사용하는 방식이다. 반면
조합형은 초성+중성+종성을 하나의 글자로 생각하여 하나의 글자를 초성,

한글을 구현하는 방법은


세 가지가 있어요. 완성형, 조합형,
N-바이트형의 3 가지이지요.

그런데 선생님, 한글은


컴퓨터나 디지털 시스템에서
어떻게 구현하죠?

48
정보의 표현 / 디지털 코드

중성, 종성의 결합으로 나타내는 방법이다. N-바이트형 한글은 중성 또는 종성


이 1 또는 2개의 더 작은 글자(음소)의 합성임을 생각하여 코드로 구현한 방법
이다.

N-바이트 한글 코드는 한글
자판 입력에, 조합형 코드는
한글을 내부적으로 처리하는 모든 응용
프로그램에, 그리고 완성형은
한글 처리 능력이 없는 응용 프로
그램에 주로 사용되지요.

1 2바이트 완성형 코드

완성형은 완성된 글자를 일종의 그림처럼 다루는 방식으로, 한글을 순서대로


늘어놓고 각각의 낱자에 코드를 부여하는 방식이다. 현재의 한글로 표현 가능
한 글자 11,172자 중 자주 사용하는 한글 2000~3000자 정도를 선정하고, 순서
대로 코드값을 부여하여 코드를 구성한다. 또, 8비트 완성형 코드는 영문과 구
별하기 위하여 아스키 코드 128 이상의 영역에 한글을 배당한다.
1987년 정부에서 표준으로 정한 KSC 5601도 2바이트 완성형 코드로 되어 있
다. KS 완성형 코드는 각 바이트의 ASCII 161~254(A116~FE16)까지의 영역을
사용하여 모두 8836자를 표현할 수 있는데, 이 중 사용 빈도에 따라 한글 2350
자, 한문 4888자, 특수 문자 1128자를 넣어 사용하고, 나머지 470자는 사용자 정
의 영역과 확장 영역으로 비워 두고 있다.

2 2바이트 조합형 코드

조합형은 한글 글자의 구성 원리인 초성-중성-종성의 세 갈래 음운을 코드


자료로 삼아 설계되었다.
2바이트 조합형 코드는 그림 Ⅱ-6과 같이 첫째 번 비트를 가지고 영문자와
한글을 구별하는 데 사용한다. 즉, 첫째 번 비트가 0이면 2바이트가 영문자 2
자를 표현하게 되고, 1이면 한글이 된다. 그리고 나머지 15비트를 초성, 중성,
종성별로 각각 5비트로 표현하여 글자를 표현한다.
예를 들어,‘강’
의 코드는‘ㄱ’
이 00010,‘ㅏ’
가 00011,‘ㅇ’
이 01100이고 다음
그림 Ⅱ-9와 같이 표현된다.

49
정보의 표현 / 디지털 코드

그림 Ⅱ-9 첫째 번 바이트 둘째 번 바이트


2바이트 조합형 한글 코드의
1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 0
구성 원리

초성‘ㄱ’ 중성‘ㅏ’ 종성‘ㅇ’

영문=0
한글=1

4. 유니 코드
유니 코드는 전세계 주요 컴퓨터 회사들이 업계 표준으로 규정한 만국 공통
문자 코드로서 세계 각국의 언어를 통일된 방법으로 표현할 수 있게 제안된
국제적인 코드 규약의 이름을 말한다.
영문 26자와 약간의 특수 문자를 표현하기에는 1바이트로 충분하기 때문에
모든 정보가 1바이트를 단위로 표현되고 있으나 동양 3국의 언어 표현인 한글,
한자, 일어 등의 문자는 그 구조가 영어와 달라서 1바이트로는 표현이 불가능
하기에 2바이트로 조합하여 하나의 문자를 표현하도록 설계되었다.
유니 코드 컨소시엄은 1991년 만국 공통의 문자 코드를 제정, 보급하기 위해
창설되었으며, 현재 북미, 유럽, 아시아 등에서 45개 주요 기업이 참여하여, 국
제 기구인 ISO와 공동 표준 규격 마련 및 개발자 기술 지원 서비스를 병행하
고 있다.

정부 표준인 KSC 5601 이외의


한글, 다른 언어권의 문자 등 여러 문자를
하나의 프로그램 내에서 처리하거나, 저장,
전송할 때, 모호함이 없이 유니 코드
문자 집합 관련 인코딩을 사용하여
표현할 수 있어요.

50
정보의 표현 / 단원 학습 정리

탐구 문제
⑴ 표 Ⅱ-9는 ASCII 표의 일부이다. 인터넷의 여러 가지 검색 엔진을 이용
하여 전체 ASCII 표를 찾아보자.
(검색어:아스키 코드)
⑵ 인터넷의 여러 가지 검색 엔진을 이용하여 2바이트 완성형 한글 코드
표와 2바이트 조합형 한글 코드표를 찾아보자.
(검색어:완성형 코드, 조합형 코드)

1. 진수의 변환
단원 학습 정리
•2진수를 10진수로 변환하는 경우는 2진수 각 자리의 가중치를 이용하여 전
개한다. 반대로, 10진수를 2진수로 변환하는 경우는 10진수를 2로 나누어
몫과 나머지를 구하고, 그 몫이 0이 될 때까지 그 과정을 반복한 다음 구
해진 나머지를 역순으로 써 나간다.
•2진수와 8진수 사이 변환은 2진수 세 자리를 8진수 한 자리로 변환한다.
•2진수와 16진수 사이 변환은 2진수 네 자리를 16진수 한 자리로 변환한다.
2. 2진수의 연산
•1의 보수는 모든 자리를 반전한다.
•2의 보수는 모든 자리를 반전하고 1을 더한다.
3. 실수의 표현
•실수를 표현할 때에는 지수부와 가수부로 나누어 표시한다.
4. 디지털 코드
•BCD 코드는 0에서 9까지의 10진수를 2진수인 0과 1의 조합으로 표시하는
코드이다.
•3초과 코드는 BCD 코드의 변형된 형태로, BCD 코드에 10진수 3(2진수로
는 0011)을 각각 더한 코드이다.
•그레이 코드는 서로 이웃하는 숫자와 1개의 비트만 변하는 코드로 입력 코
드로 사용할 때 오류가 적다.
•패리티 비트는 문자 코드 내의 전체 1의 비트가 짝수 개가 되거나 홀수 개
가 되도록 하여 그 코드에 덧붙이는 비트이다.
•해밍 코드는 4개의 순수한 정보 비트에 3개의 체크 비트를 추가하여 만든
코드로 오류의 검출뿐만 아니라 오류를 정정할 수 있는 코드이다.
•ASCII 코드는 개인용 컴퓨터에서 주로 사용하는 문자 코드이다.
•EBCDIC 코드는 IBM의 대형 컴퓨터 등에서 많이 사용되는 코드이다.
•완성형은 한글을 음절 문자로 보아 완성형 한글로 사용하는 방식이다. 조
합형은 초성+중성+종성을 하나의 글자로 생각하여 하나의 글자를 초성,
중성, 종성의 결합으로 나타내는 방법이다.

51
정보의 표현 / 단원 종합 문제

단원 종합 문제 1. 다음의 10진수 15210를 2진수로 변환하시오.

2. 다음의 2진수 1011102를 8진수와 16진수로 변환하시오.

3. 다음 2진수의 덧셈을 하시오.


⑴ 1101+101
⑵ 1010+1100

4. 다음은 2의 보수로 표현된 수들이다. 해당하는 10진수의 값을 구하시오.(부호


비트를 포함하여 8비트로 구성된 시스템으로 고려하라.)
⑴ 11110011
⑵ 10101010

5. 5+8을 BCD 가산 방법으로 연산한 결과를 고르시오.


① 1101 ② 00110001 ③ 1011 ④ 00010011 ⑤ 00110001

6. 2진수 110110에 대응하는 그레이 코드값을 고르시오.


① 101111 ② 101101 ③ 100011 ④ 110110 ⑤101110

7. 하나의 영숫자 코드가 7비트로 구성되어 있으며 전체 코드 수가 128인 코드


는 어느 것인가?
① 그레이 코드 ② 3초과 코드 ③ 해밍 코드
④ EBCDIC 코드 ⑤ ASCII 코드

8. 주로 IBM의 대형 장비에서 사용되는 하나의 영숫자 코드가 8비트로 구성되


어 있는 것은 어느 것인가?
① BCD8421 코드 ② 6비트 코드 ③ 3초과 코드
④ EBCDIC 코드 ⑤ ASCII 코드

52
Ⅲ. 불 대수
1. 불 대수와 기본 논리 게이트 불 대수(Boolean algebra)는 인간의 지식이
나 사고 과정의 논리를 수학적으로 해석하여
2. 불 대수와 기타 논리 게이트
어떤 명제가‘참’
인지,‘거짓’
인지를 논하는 논
3. 불 대수의 정리 리 대수로 1854년 영국 수학자 불(George
4. 논리식과 진리표 Boole)에 의해 제안된 것이다.
5. 논리식의 간소화 이것은 1938년 미국의 샤논(Claude Shannon)
에 의해 전기적인 스위치 회로에서 스위치의
ON, OFF로 표시될 수 있음이 증명되었으며,
그 이후 디지털 논리 회로의 기본적인 이론으
로 사용하고 있다.
이 단원에서는, 먼저 불 대수의 기본 연산과
실제 논리 회로에서 사용하는 게이트와의 관계
를 불 대수의 공리 및 논리식의 표현으로 살펴
본 다음에, 복잡한 논리식을 간단하게 간소화하
는 방법에 대하여 학습하기로 한다.

집적 회로

53
1 불 대수와 기본 논리 게이트
학습 목표 1. 불 대수의 기본 연산인 논리합과 논리곱 및 부정에 대하여 설명할 수 있다.
2. 논리 회로에서의 기본 게이트의 동작과 불 대수와의 관계를 알고, 이를 설명할 수 있다.

불 대수에서 사용하는 변수는 참과 거짓의 두 가지 값만을 가질 수 있고, 간


단하게 나타내기 위해서 보통 참을 1, 거짓을 0으로 나타내며, 이는 스위치의
ON과 OFF로 각각 대응할 수 있다. 이와 같이, 불 대수에서는 변수가 0과 1의
값만 가질 수 있으므로, 불 대수에서 사용하는 변수를 논리 변수 또는 2치 변
수(2-valued variable)라고 하며, 0과 1을 논리 상수라 한다. 그리고 이들의 논
리 연산 관계를 식 또는 함수의 형태로 입출력 관계를 나타낼 때 논리 함수라
하고, 불 대수는 논리 함수와 논리 변수 사이의 관계를 나타내기 위하여 사용
한다.
현재 불 대수는 논리 회로를 다룰 때 기본적으로 사용하고 있는데, 그 이유
는 논리 변수가 가지는 0과 1의 값이 논리 회로에서 전기 신호 상태와 서로 대
응되기 때문이다. 즉, 2개의 전압 레벨을 표현할 때 낮은 전압(0V)을 0, 높은
전압(5V)을 1로 대응되는 것을 의미한다.
이와 같은 표현을 정논리라 하고, 반대로 낮은 전압(0V)을 1, 높은 전압(5V)
을 0으로 표기하는 방법을 부논리라 한다. 앞으로 특별한 경우 이외에는 정논
리로 표현한다.
불 대수의 기본 연산으로는 논리곱(AND), 논리합(OR), 논리 부정(NOT)의
세 가지가 있다. 이와 같이, 각각의 불 연산을 할 수 있도록 구성된 회로를 게
이트(gate)라 부르며, 세 가지의 기본 연산은 논리 회로에서 AND, OR, NOT
게이트에 의해 실현된다.

음, 내가 갈 수 있는
길은 참과 거짓의
두 길밖에 없군!

54
불 대수/ 불 대수와 기본 논리 게이트

1. AND 연산
2개 이상의 논리 변수들을 논리적으로 곱하는 연산으로서, 그 정의는“논리
변수가 동시에 모두 1이면 그 결과는 1이고, 이 외의 결과는 0이다.”
이며, 연산
기호로는 ・, ×를 사용하며 생략할 수도 있다.
논리 변수 A, B를 AND 연산하고, 그 결과를 Y에 나타내는 논리식은 다음
과 같다.
Y=A・B …………………………………………………………(Ⅲ-1)
이 논리식은 Y=A×B 또는 Y=AB로도 표현한다.
AND 연산의 결과는 표 Ⅲ-1과 같으며, 이를 진리표로 나타내면 표 Ⅲ-2와
같다.

표 Ⅲ-1 표 Ⅲ-2
연산의 결과표 AND 연산의 진리표

A×B=Y A B Y

0×0=0 0 0 0

0×1=0 0 1 0

1×0=0 1 0 0

1×1=1 1 1 1

A B
진리표는 논리식에 사용된 변수들이 가질 수 있는 모든 경우의
값에 대한 결과값을 보여 주는 것으로 불 대수 식을 증명하거나 논
E 리 회로의 입출력 관계를 나타내는 데 주로 사용된다.
Y
AND 연산을 전기적인 스위치 회로로 구성하면 그림 Ⅲ-1과 같이
할 수 있다. 이 회로의 동작 상태는 스위치가 직렬로 연결되어 있으
그림 Ⅲ-1
AND 스위치 회로
므로, 스위치 A, B가 모두 닫힐 때만 전등이 켜진다. 스위치 A, B
중에서 어느 하나가 열리거나 A와 B 모두 열릴 때 전등은 꺼지게
되어 AND 연산을 하게 된다.

+5V
그림 Ⅲ-2게
다이오드 AND 회로
0 0 1 1
R A
D1
A
0 1 0 1
B
B Y
D2 0 0 0 1
Y

⒜ 회로도 ⒝ 입・출력 파형

55
불 대수/ 불 대수와 기본 논리 게이트

AND 연산 회로는 반도체 소자인 다이오드로 그림 Ⅲ-2의 ⒜와 같이 구성할


수 있다. 다이오드 AND 회로의 동작은 그림 Ⅲ-2 ⒝와 같이 입력 A, B에 모
두 5V가 가해질 때에만 출력은 5V이다. A, B 중 어느 한쪽이 0V이거나, 또는
입력 A와 B 모두 0V일 때에는 출력도 0V이다.
AND 게이트의 기호와 논리식 및 진리표는 그림 Ⅲ-3과 같다.
실제로 많이 사용하는 AND 게이트의 IC로 TTL에서는 7408(2 입력), 7411(3
입력), 7421(4 입력)이 있으며, CMOS에서는 4081(2 입력), 4073(3 입력), 4082(4
입력) 등이 있다.

그림 Ⅲ-3
A Y=A・B
AND 게이트 Y
B Y=A×B
Y=AB
⒜ 논리 기호 ⒝ 논리식

2. OR 연산
2개 이상의 논리 변수들을 논리적으로 합하는 연산으로서, 그 정의는“논리
변수 중에서 어느 것이라도 1이면 그 결과는 1이 된다.”
이며, 연산 기호로는 +
를 사용한다. 논리 변수 A, B를 OR 연산하고, 그 결과를 Y에 나타내는 논리식
은 다음과 같다.
Y=A+B …………………………………………………………(Ⅲ-2)
이 논리식에서“+”
의 의미가 대수적인 덧셈이 아니라는 점을 주의해야 한
다. OR 연산의 결과는 표 Ⅲ-3과 같으며, 이를 진리표로 나타내면 표 Ⅲ-4와
같다.

표 Ⅲ-3 표 Ⅲ-4
OR 연산의 결과표 OR 연산의 진리표

A+B=Y A B Y

0+0=0 0 0 0

0+1=1 0 1 1

1+0=1 1 0 1

1+1=1 1 1 1

OR 연산을 전기적인 스위치 회로로 구성하면 그림 Ⅲ-4와 같다. 스위치가


열린 상태는‘0’
, 닫힌 상태를‘1’
로 나타내고, 또 전등이 꺼진 상태를‘0’
,켜
진 상태를‘1’
로 나타낸다.
이 회로의 동작 상태는 스위치가 병렬로 연결되어 있으므로, 스위치 A, B 모

56
불 대수/ 불 대수와 기본 논리 게이트

A 두 열려 있을 때에만 전등이 꺼진다. 스위치 A, B 중에서 어느 하

B
나가 닫히거나 A와 B 모두 닫힐 때에는 전등은 켜지게 되어 OR
연산을 하게 된다. OR 연산 회로를 반도체 소자인 다이오드로 그
E Y
림 Ⅲ-5의 ⒜와 같이 구성할 수 있다
다이오드 OR 회로의 동작은 그림 Ⅲ-5의 ⒝와 같이 입력 A, B
그림 Ⅲ-4 중 어느 한쪽, 또는 A와 B 모두에 5V가 가해지면 출력은 5V이며,
OR 스위치 회로 입력 A와 B 모두 0V일 때만 출력은 0V이다.
그림 Ⅲ-5게 D1

다이오드 OR 회로 A
0 0 1 1
A
B Y
D2
0 1 0 1
R B

0 1 1 1
Y
GND

⒜ 회로도 ⒝ 입・출력 파형

논리 회로에서 OR 연산을 하는 OR 게이트의 기호와 논리식 및 진리표는 그


림 Ⅲ-6과 같다.
실제로 많이 사용하는 OR 게이트의 종류로는 TTL IC인 7432(2 입력)와
CMOS IC인 4071(2 입력), 4075(3 입력), 4072(4 입력) 등이 있다.

그림 Ⅲ-6게
A
OR 게이트 Y Y=A+B
B

⒜ 논리 기호 ⒝ 논리식

3. NOT 연산
NOT 연산은 하나의 논리 변수에 대하여 부정을 하는 연산으로서 논리 변수
가 1이면 그 결과는 0이고, 논리 변수가 0이면 그 결과는 1이다.
논리 변수 A를 부정한 결과를 Y에 나타낸다면 논리식은 다음과 같다.
- ………………………………………………………………(Ⅲ-3)
Y=A
이 논리식은 Y=A′
와 같이 쓰기도 하며,“Y는 A의 부정이다”
라는 의미이
다. 즉, A가 0이면 Y는 1이고, A가 1이면 Y는 0이 된다. NOT 연산에 대한 진
표 Ⅲ-5 리표는 표 Ⅲ-5와 같으며, 트랜지스터로 NOT 연산 회로를 그림 Ⅲ-7 ⒜와 같
진리표 이 구성할 수 있으며, 논리 기호는 그림 Ⅲ-7 ⒝와 같이 나타낸다.
A Y 트랜지스터로 구성한 NOT 연산 회로의 입력 A에 0(0V)을 가하면 트랜지스
0 1 터의 베이스 전류가 흐르지 않아서 차단 상태(OFF)이며, 이 때 출력 Y는 전원
1 0 전압인 5V가 나타남으로 출력은 1이다. 이와 반대로 입력 A에 1(5V)을 가하

57
불 대수/ 불 대수와 기본 논리 게이트

면 트랜지스터의 베이스 전류가 충분히 흐르고, 트랜지스터는 포화 상태(ON)


가 되며, 이 때 출력 Y는 접지와 같은 전압인 0V가 나타남으로 출력은 0이 된
다.
NOT 게이트는 일반적으로 인버터(inverter)라고도 부르며, 입력에 대한 보
수(complement)를 얻을 수 있다.
실제로 많이 사용하는 NOT 게이트의 IC로는 TTL의 7404, 7405, 7406과
CMOS의 4049, 4069 등이 있다.
그림 Ⅲ-7게 +5Y
NOT 게이트 R
5kW
A Y

E A Y 10kW GND ⒞ 논리 회로
A
GND C1815 --
Y=A

⒜ 스위치 NOT 회로 ⒝ 트랜지스터 NOT 회로 ⒟ 논리식

실습 과제 Ⅲ-1 AND, OR, NOT 연산

사용 재료 명 칭 규 격 수 량

IC(AND 게이트) 7408 1개

IC(OR 게이트) 7432 1개

IC(NOT 게이트) 7404 1개

스위치 토글 스위치 2개

IC 기판 28×28 1장

실습 기기 명 칭 규 격 수 량

직류 전원 공급 장치 5V/1A 1대

회로 시험기 VOM 1대

논리 회로 실험 장치 1대

안전 및 유의 사항 1. IC는 열에 약하므로 취급시 매우 주의해야 하며 몸체 부분을 잡는다.


2. 결선할 때에는 공급 전원을 차단시킨 상태에서 한다.
3. IC의 핀 번호에 유의해서 결선한다.
4. IC의 핀에서 접지 및 VCC 연결핀을 확인하고 반드시 연결한다. 일반적으로
회로상에서는 표시되어 있지 않다.
5. 모두 결선을 한 다음 VCC 단자와 GND 단자 사이를 단락 측정하여 단락되지
않았으면 전원을 공급한다.

58
불 대수/ 불 대수와 기본 논리 게이트

실습 순서 1 AND 연산

그림 Ⅲ-8과 같이 7408 IC 1개를 사용하여 회로를 결선한다. 그림 Ⅲ-9는


7408 IC의 핀 배치도이다.
이 때, IC의 VCC는 직류 전원 장치(+5V)에서 14번 핀에 연결하고
GND(ground)는 7번 핀에 연결한다[IC 회로를 구성할 때에는 IC 종류에 따
라 전원 단자(VCC) 및 GND 단자의 핀 번호가 다른 경우도 있으므로 항상
규격표(manual)의 IC 핀 배치도를 활용한다.].
입력 A, B 단자는 각각 IC 의 1, 2번 핀에, 출력 Y 단자는 3번 핀에 정확히
연결되었는지 확인한 다음 직류 전원 공급 장치의 전원을 켜고 전원(+5
V)을 회로에 공급한다.
두 입력 A, B에 따른 출력 Y의 전압을 회로 시험기를 사용하여 측정하고
(+5V=high =1, 0V=low =0), 그 결과를 표 Ⅲ-6에 기록한다.

VCC(+5V) VCC(+5V)

A 1 14 13 12 11 10 9 8
3
2 7408 Y

1 2 3 4 5 6 7

GND

그림 Ⅲ-8핀AND 연산 실습 회로 그림 Ⅲ-9핀7408 핀 배치도

2 OR 연산

그림 Ⅲ-10과 같이 7432 IC 1개를 사용하여 회로를 결선한다. 그림 Ⅲ-11은


7432 IC의 핀 배치도이다.
실습 1 의 , , 와 같은 방법으로 측정하여 표 Ⅲ-7에 기록한다.

VCC(+5V) VCC(+5V)

A 1 14 13 12 11 10 9 8
3
2 7432 Y

1 2 3 4 5 6 7

GND

그림 Ⅲ-10핀OR 연산 실습 회로 그림 Ⅲ-11핀7432 핀 배치도

59
불 대수/ 불 대수와 기본 논리 게이트

3 NOT 연산

그림 Ⅲ-12와 같이 7404 IC 1개를 사용하여 회로를 결선한다. 7404 IC의 핀


배치도는 그림 Ⅲ-13과 같다.
실습 1 의 , , 와 같은 방법으로 측정하여 표 Ⅲ-8에 기록한다. 단,
입력 A 단자는 IC 1번 핀, 출력 Y 단자는 2번 핀에 연결한다.
VCC(+5V) VCC(+5V)

14 13 12 11 10 9 8

A 1 2
7404 Y

1 2 3 4 5 6 7

GND

그림 Ⅲ-12핀NOT 연산 실습 회로 그림 Ⅲ-13핀7404 핀 배치도

결과 정리 표 Ⅲ-6참AND 연산 결과표 표 Ⅲ-7참OR 연산 결과표 표 Ⅲ-8참NOT 연산 결과표


입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y A B Y A Y

0 0 0 0 0

0 5 0 5 5

5 0 5 0

5 5 5 5

심화 과제 1. 논리 회로 실험 장치를 사용하여 위의 실습을 하여 보자.


2. 실습 1 , 2 와 같은 방법으로 3입력 IC를 사용하여 회로를 구성하고, 3

입력에 대한 출력을 측정하여 진리표를 작성하여 보자.


3. 다이오드를 이용한 AND, OR 연산 회로와 트랜지스터를 이용한 NOT 연산
회로를 각각 구성하고, 입력과 출력 관계를 측정하여 각각의 진리표를 작성
하여 보자.

60
2 불 대수와 기타 논리 게이트
학습 목표 1. 기본 논리 게이트를 조합한 NAND 연산과 NOR 연산을 알고, 이를 설명할 수 있다.
2. XOR 연산과 XNOR 연산을 설명할 수 있고, 응용 회로를 이해할 수 있다.
3. 버퍼 기능에 대하여 이해하고, 이를 설명할 수 있다.

OR

AND+NOT=NAND

NOT
결국, 기본 논리
소자의 조합으로
AND
제품이 구성되었
다고 볼 수 있겠
군!

1. NAND 연산
NAND 연산은 AND 연산의 결과에 NOT 연산을 결합한 것으로 AND 연산
에 대하여 부정(또는 보수)한 것이다. 즉, 이것은 입력 중 어느 것 하나라도 0
이면 출력이 1인 연산을 하고 모든 입력이 1일 때에만 0을 출력한다.
논리 변수 A, B를 입력으로 하고, 그 결과를 Y에 나타내는 NAND 연산에
대한 게이트의 구성과 기호, 논리식 및 진리표, 입출력 파형을 그림 Ⅲ-14에 나
타내었다.

그림 Ⅲ-14 Y=A・B
A A
NAND 연산 Y Y
B B Y=AB
Y=A×B
⒜ 게이트 구성 ⒝ 논리 기호 ⒞ 논리식

A B Y
0 0 1 1
0 0 1 A

0 1 1
0 1 0 1
B
1 0 1

1 1 0 1 1 1 0
Y

⒟ 진리표 ⒠ 입출력 파형

61
불 대수/ 불 대수와 기타 논리 게이트

NAND 게이트는 실제로 가장 많이 이용되는 것 중의 하나로 이것은 AND,


OR, NOT 게이트 등의 여러 조합으로도 구성할 수 있다.
많이 사용하는 NAND 게이트의 IC로 TTL에서는 7400(2 입력), 7410(3 입
력), 7420(4 입력) 등이 있으며, CMOS에서는 4011(2 입력), 4023(3 입력),
4012(4 입력) 등이 있다.

2. NOR 연산
NOR 연산은 OR 연산의 결과에 NOT 연산을 결합한 것이다. 이것은 입력
중 어느 것 하나라도 1이면 출력이 0인 연산을 하고 모든 입력이 0일 때에만
출력이 1이다. 즉, OR 연산의 부정(보수)임을 알 수 있다. NOR 게이트는
NAND 게이트처럼 많이 이용되는 논리 소자이며 AND, OR, NOT 게이트로도
조합이 가능하다.
논리 변수 A, B를 입력으로 하고, 그 결과를 Y에 나타내는 NOR 연산에 대
한 게이트의 구성과 기호, 논리식 및 진리표, 입출력 파형을 그림 Ⅲ-15에 나타
내었다.

그림 Ⅲ-15
A A
NOR 연산 Y Y Y=A+B
B B

⒜ 게이트 구성 ⒝ 논리 기호 ⒞ 논리식

A B Y
0 0 1 1
0 0 1 A

0 1 0
0 1 0 1
B
1 0 0

1 1 0 1 0 0 0
Y

⒟ 진리표 ⒠ 입출력 파형

실제로 많이 사용되는 NOR 게이트의 IC로 TTL에서는 7402(2 입력), 7427(3


입력), 74260(5 입력)과 CMOS에서는 4001(2 입력), 4025(3 입력), 4002(4 입력)
등이 있다.

3. XOR 연산
XOR(배타적-OR, exclusive-OR, EXOR 등으로도 표기) 연산은 두 입력 변수
의 값이 같을 때에는 출력이 0이 되고 서로 다른 입력일 때에는 출력이 1이 되
는 연산이다. 이것은 반일치 회로라고도 하며, 보수 회로에 응용된다.
그림 Ⅲ-16에 XOR 연산에 대한 게이트의 구성, 논리 기호, 논리식, 진리표,

62
불 대수/ 불 대수와 기타 논리 게이트

그림 Ⅲ-16
A
XOR 연산 --+A
--B
A Y=AB
Y Y
B Y=A⊕B
B

⒜ 게이트 구성 ⒝ 논리 기호 ⒞ 논리식

A B Y
0 0 1 1
0 0 0 A

0 1 1 0 1 0 1
B
1 0 1
0 1 1 0
1 1 0 Y

⒟ 진리표 ⒠ 입・출력 파형

입출력 파형을 나타내었다.


실제 많이 사용하는 XOR 게이트의 IC로 TTL에서는 7486(2 입력)과 CMOS
에서는 4030(2 입력), 4070(2 입력) 등이 있다.

4. XNOR 연산
XNOR(배타적-NOR, exclusive-NOR, EXNOR 등으로 표기) 연산은 XOR 연
산을 부정한 것으로, 두 입력이 같을 때는 출력이 1이 되고, 다르면 0이 된다.
이것은 일치 회로라고도 하며, 비교 회로에 응용된다.
두 입력에 대한 XNOR 연산의 게이트 구성, 논리 기호, 논리식, 진리표, 입출
력 파형을 그림 Ⅲ-17에 나타내었다.
대표적인 XNOR 게이트의 IC로는 TTL의 74266(2 입력)이 있다.

그림 Ⅲ-17
A
XNOR 연산 B -- B
--+AB
A Y=A
Y Y
B Y=A⊕B
Y=A◯・B

⒜ 게이트 구성 ⒝ 논리 기호 ⒞ 논리식

A B Y
0 0 1 1
0 0 1 A

0 1 0 0 1 0 1
B
1 0 0
1 0 0 1
1 1 1 Y

⒟ 진리표 ⒠ 입출력 파형

63
불 대수/ 불 대수와 기타 논리 게이트

5. 버퍼
버퍼(buffer)는 입력값이 출력에 그대로 나타나는 것으로, 논리적으로 무의
미해 보이나 실제로 회로에서는 중요한 기능을 가진다.
그 기능은 첫째, 감쇄 신호의 회복 기능으로 도선 및 여러 게이트의 통과로
약해진 신호를 버퍼의 출력으로 감쇄된 신호가 회복된다. 즉, 5V의 논리 1의
상태가 긴 도선의 고유 저항 등에 따른 전압 강하로 인하여 논리 0의 상태가
될 수도 있다. 이 때 버퍼 회로를 통과하면 원래의 논리 1(5V)이 정격대로 출
력된다.
따라서, 버퍼는 입력 신호를 그대로 통과시키는 것이 아니라 입력 신호(데이
터)를 감지해서 정격의 출력 신호(데이터)를 내보내는 것이다.
둘째, 지연 시간(delay time) 기능으로 입력된 신호가 버퍼를 통과해서 출력
되는데 전달 지연 시간이 있게 된다.
그 밖에 팬 아웃(fan out)의 확대나 CMOS의 출력을 여러 개의 TTL에 접
속할 때에도 버퍼를 사용할 수 있다.

잠깐!
팬 아웃이란 한 개의 게이트 출력 단자에
정상적으로 구동시킬 수 있는 부하 입력의 최대수이다.
따라서, 팬 아웃보다 많은 수의 부하를
접속할 때에는 버퍼가 필요하다.

그림 Ⅲ-18은 버퍼의 논리 기호, 논리식, 진리표를 나타내었다.

그림 Ⅲ-18게
A Y
버퍼 회로 A Y Y=A 0 0

1 1

⒜ 논리 기호 ⒝ 논리식 ⒞ 진리표

표 Ⅲ-9는 논리 게이트의 논리 기호, 논리식, 진리표, IC 명칭을 나타낸 것이


다, 여기서 A, B는 게이트의 입력이고, Y는 출력을 말한다.

64
불 대수/ 불 대수와 기타 논리 게이트

표 Ⅲ-9
게이트 논리 기호 논리식 진리표 IC명칭
논리 게이트의 종류
A B Y
Y=A・B
0 0 0 TTL:7408 등
A
AND Y =AB 0 1 0
B
1 0 0 CMOS:4081 등
=A×B
1 1 1

A B Y
A 0 0 0 TTL:7432 등
OR Y Y=A+B 0 1 1
B
1 0 1 CMOS:4071 등
1 1 1

Y=A A Y TTL:7404 등
NOT A Y 0 1
=A′ CMOS:4049 등
1 0

A B Y
0 0 1 TTL:7400 등
A Y=A・B
NAND Y 0 1 1
B
=AB 1 0 1 CMOS:4011 등
1 1 0

A B Y
0 0 1 TTL:7402 등
A
NOR Y Y=A+B 0 1 0
B CMOS:4001 등
1 0 0
1 1 0

A B Y
Y=A ⊕B 0 0 0 TTL:7486 등
A
XOR Y 0 1 1
B --B+AB
=A --
1 0 1 CMOS:4030 등
1 1 0

A B Y
Y=A ◯
・B
A
0 0 1
--B
=A --+AB 0 1 0
XNOR Y TTL:74266 등
B
1 0 0
=A⊕B
1 1 1

A Y TTL:7434 등
버퍼 A Y Y=A 0 0
1 1 CMOS:4050 등

65
불 대수/ 불 대수와 기타 논리 게이트

실습 과제 Ⅲ-2 NAND, NOR, XOR, XNOR 연산

사용 재료 명 칭 규 격 수 량

IC(NAND 게이트) 7400 1개

IC(NOR 게이트) 7402 1개

IC(EXOR 게이트) 7486 1개

IC(NOT 게이트) 7404 1개

IC(AND 게이트) 7408 1개

IC(OR 게이트) 7432 1개

토글 스위치 4개

IC 기판 28×28 6장

실습 기기 명 칭 규 격 수 량

직류 전원 공급 장치 5V/1A 1대

회로 시험기 VOM 1대

오실로스코프 20M 이상 1대

논리 회로 실험 장치 1대

안전 및 유의 사항 1. 모든 단자를 확인하고 IC의 핀 번호에 유의해서 결선한다.


2. 모든 결선을 마친 다음 항상 VCC 단자와 GND 단자 사이의 저항 측정을 하
여 단락되지 않았으면 전원을 인가한다.

실습 순서 1 NAND 연산

그림 Ⅲ-19와 같이 7400 IC 1개를 사용하여 회로를 결선한다. 7400 IC의 핀


배치도는 그림 Ⅲ-20과 같다.

Vcc(+5V) VCC(+5V)

A 14 13 12 11 10 9 8
1 3

7400 Y

B 2

1 2 3 4 5 6 7

GND

그림 Ⅲ-19핀NAND 연산 실습 회로 그림 Ⅲ-20핀7400 핀 배치도

66
불 대수/ 불 대수와 기타 논리 게이트

그림 Ⅲ-21 Vcc(+5V)

NAND 게이트 조합 회로
1
A 3
2
9 8
10 Y
4
B 6
5

VCC는 14번 핀에, GND는 7번 핀에 연결하고, 직류 전원 공급 장치에서 +5V


를 회로에 공급한다.
두 입력 A, B에 따른 출력 Y의 전압을 회로 시험기를 사용하여 측정하고
그 결과를 표 Ⅲ-10에 기록한다.
그림 Ⅲ-21과 같이 3개의 NAND 게이트를 서로 결선하고, , 과 같은 방
법으로 측정하고, 그 결과를 표 Ⅲ-11에 기록한다. 이 때, 진리표의 결과가
무슨 연산의 결과와 같은지 기록한다.

2 NOR 연산

그림 Ⅲ-22와 같이 7402 IC 1개를 사용하여 회로를 결선한다. 7402 IC의 핀


배치도는 그림 Ⅲ-23과 같다.
실습 1 의 , 과 같은 방법으로 측정하여, 그 결과를 표 Ⅲ-12에 기록
한다.
그림 Ⅲ-24와 같이 3개의 NOR 게이트를 서로 결선하고, 위와 같은 방법으
로 측정하여 그 결과를 표 Ⅲ-13에 기록한다. 이 때, 진리표의 결과가 무슨
연산의 결과와 같은지 기록한다.

VCC (+5V)

14 13 12 11 10 9 8

VCC (+5V)

A 2
1
7402 Y
1 2 3 4 5 6 7
B 3
GND

그림 Ⅲ-22핀NOR 연산 실습 회로 그림 Ⅲ-23핀7402 핀 배치도

67
불 대수/ 불 대수와 기타 논리 게이트

그림 Ⅲ-24게 VCC (+5V)

NOR 게이트 조합 회로
A 2 1
7402
8
3 10
7402 Y
5
B 4
7402 9
6

3 XOR, XNOR 연산

그림 Ⅲ-25와 같이 7486 IC 1개와 7404 IC 1개를 사용하여 회로를 결선한다.


두 개의 입력 A, B에 따른 출력 X와 Y의 전압을 회로 시험기를 사용하여
측정하고, 그 결과를 표 Ⅲ-14에 기록한다. 그리고 그림 Ⅲ-26은 7486 IC의
핀 배치도이다.
그림 Ⅲ-27의 ⒜, ⒝와 같이 회로를 구성하고, 출력 X, Y를 표 Ⅲ-15에 기록
한다.
그림 Ⅲ-28은 패리티 검사 회로이다. 회로를 구성하고 출력 Y를 측정하여
표 Ⅲ-16에 기록한다. 이 때, 출력 Y가 짝수 패리티인 것을 확인한다.

VCC(+5V) VCC(+5V)

1 14 13 12 11 10 9 8
A
X 1 2
B 7486 Y
3
2 7404

1 2 3 4 5 6 7
GND

그림 Ⅲ-25핀XOR, XNOR 연산 회로 그림 Ⅲ-26핀7486 핀 배치도

그림 Ⅲ-27게 VCC(+5V) VCC(+5V)

기본 논리 게이트로 구성된
XOR, XNOR 회로(IC 7404, A 1 21 A 9 89
3 8
7408, 7432) B 2 B 11 1010
1 4
3 6
4 2 Y Y
12 5
6 11
3 45 13

⒜ XOR 회로 ⒝ XNOR 회로

68
불 대수/ 불 대수와 기타 논리 게이트

그림 Ⅲ-28게 VCC (+5V)

패리티 검사 회로(IC 7486)


A 1
3 4
B 2 6 9
5 8
Y
C 10

결과 정리 표 Ⅲ-10참NAND 연산 결과표 표 Ⅲ-11참NAND 게이트 조합 회로 결과표


입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y A B Y

0 0 0 0

0 5 0 5

5 0 5 0

5 5 5 5

( ) 연산의 결과와 동일

표 Ⅲ-12참NOR 연산 결과표 표 Ⅲ-13참NOR 게이트 조합 회로 결과표


입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y A B Y

0 0 0 0

0 5 0 5

5 0 5 0

5 5 5 5

( ) 연산의 결과와 동일

표 Ⅲ-14참XOR, XNOR 연산 결과표


입력 전압(V) 출력 전압(V)

A B X Y

0 0

0 5

5 0

5 5

69
불 대수/ 불 대수와 기타 논리 게이트

표 Ⅲ-15참
입력 전압(V) 출력 전압(V)
패리티 검사 회로 결과표
A B C D Y

0 0 0 0

0 0 0 5

0 0 5 0

0 0 5 5

0 5 0 0

0 5 0 5

0 5 5 0

0 5 5 5

5 0 0 0

5 0 0 5

5 0 5 0

5 0 5 5

5 5 0 0

5 5 0 5

5 5 5 0

5 5 5 5

심화 과제 1. 실습 1 을 오실로스코프로 측정하여 결과를 확인하여 보자.

2. 논리 회로 실험 장치를 사용하여 위의 실습을 하여 보자.


3. 보수 회로와 비교 회로를 각각 구성하고, 기판에 조립하여 결과를 측정하여
보자.

70
3 불 대수의 정리
학습 목표 1. 불 대수의 공리, 정리, 법칙과 기본적인 원리를 설명할 수 있다.
2. 불 대수를 적용하여 논리식을 처리하는 방법을 설명할 수 있다.
3. 드 모르간의 정리를 이해하고 활용할 수 있다.

-- + A
AB + AB --B

A+B

1. 불 대수의 기본 성질
불 대수는 0 또는 1의 요소와 AND, OR, NOT의 기본 논리를 이용하는 대수
로 다음과 같은 기본 가설에서 전개된다.
<공리>

ⓛA --=0
0이면 A=1, A
ⓛA --=1
1이면 A=0, A
② 0・0=0, 0・1=1・0=0, 1・1=1
③ 0+0=0, 0+1=1+0=1, 1+1=1
④ --
0 =1, --
1 =0

<기본 정리>

① A・0=0, A+0=A
② A・1=A, A+1=1
③ A・A=A, A+A=A
--=0, A+A
④ A・A --=1

71
불 대수/ 불 대수의 정리

<기본 법칙>

① 교환 법칙:A+B=B+A
A・B=B・A
② 결합 법칙:A+(B+C)=(A+B)+C
A・(B・C)=(A・B)・C
③ 분배 법칙:A+(B・C)=(A+B)・(A+C)
A・(B+C)=(A・B)+(A・C)
④ 흡수 법칙:A+(A・B)=A
A・(A+B)=A
=
⑤ 2중 부정:A=A

A+A--B=A+B임을 증명하시오.

【풀이】A+A --B=(A+A
--)・(A+B):분배 법칙

= 1・(A+B)
= A+B

진리표를 이용하여 다음의 분배 법칙이 성립함을 증명하시오.


1) A+(B・C)=(A+B)・(A+C)
2) A(B+C)=(AB)+(AC)
【풀이】
1) A B C BC A+BC A+B A+C (A+B)・(A+C)

0 0 0 0 0 0 0 0

0 0 1 0 0 0 1 0

0 1 0 0 0 1 0 0

0 1 1 1 1 1 1 1

1 0 0 0 1 1 1 1

1 0 1 0 1 1 1 1

1 1 0 0 1 1 1 1

1 1 1 1 1 1 1 1

그러므로 A+BC의 진리표 값과 (A+B)(A+C)의 진리표 값이 변수 A,


B, C의 모든 값에 대해 일치하므로 성립된다.

72
불 대수/ 불 대수의 정리

2) A B C B+C A(B+C) AB AC AB+AC

0 0 0 0 0 0 0 0

0 0 1 1 0 0 0 0

0 1 0 1 0 0 0 0

0 1 1 1 0 0 0 0

1 0 0 0 0 0 0 0

1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1

1 1 1 1 1 1 1 1

그러므로 A(B+C)의 진리표 값과 AB+AC의 진리표 값이 변수 A, B, C


의 모든 값에 대해 일치하므로 성립된다.
이와 같이 불 대수는 논리적 판단을 하기 위한 수학적 기법으로, 디지털 회
로에서 논리식의 취급에는 다음과 같은 약속이 있다.

① 연산할 때에는 부정(NOT), 논리곱(AND), 논리합(OR)의 순서대로 한다.


② 괄호([ ], { }, ( ) 등)는 일반 대수학에서의 규칙과 같다.
③ 일반 대수학에서처럼 통분이나 부호를 바꾼 이항은 할 수 없다.
④ 변수 A, B, C, …, Y, Z 등은 어느 문자라도 기호로서 사용된다. 단, 변
수가 가지는 값은‘0’또는‘1’
만을 가진다.

2. 드 모르간의 정리
드 모르간(De Morgan)의 정리는 논리 부정에 관한 정리이다. 논리식을 간
소화시키는 데 널리 이용하는 것으로, 논리식에서 논리곱의 표현은 논리합으
로, 논리합의 표현은 논리곱으로 상호 교환이 가능하도록 응용할 수 있는 정리
이다.
제 1정리:논리합의 전체 부정은 각각 변수의 부정을 논리곱한 것과 같다.

A+B=A・B ……………………………………………………(Ⅲ-4)

제 2정리:논리곱의 전체 부정은 각각 변수의 부정을 논리합한 것과 같다.

A・B=A+B ……………………………………………………(Ⅲ-5)

진리표를 이용하여 제 1 정리와 제 2 정리를 증명하면 다음과 같다.

73
불 대수/ 불 대수의 정리

A B A B A+B A+B A・B A・B A・B A+B

0 0 1 1 0 1 1 0 1 1

0 1 1 0 1 0 0 0 1 1

1 0 0 1 1 0 0 0 1 1

1 1 0 0 1 0 0 1 0 0

제1정리 제2정리

따라서 두 정리는 변수 A, B의 모든 값에서 서로 일치하므로 성립된다.

선생님
변수가 여러 개일 때에는
어떻게 되나요?
드 모르간의 정리는 변수의
수에 관계 없이 항상 성립된다.
다음과 같이 나타낼 수가 있지.
(A + B + C + … + Y)
= A・B・C … Y
(A・B・C … Y)
=A + B + C + … + Y

드 모르간의 정리는 논리식의 보수를 구할 때에도 사용된다.


어떤 논리식에서 그 보수(부정)를 구할 때에는 식 (Ⅲ-4)와 식 (Ⅲ-5)로부터
얻을 수 있다. 그 방법은 다음과 같다.

첫째, 논리식의 전체 부정을 각 논리 변수의 부정으로 바꾼다.


둘째, 논리곱은 논리합으로, 논리합은 논리곱으로 각각 바꾼다.
셋째, 논리 상수가 있으면 1은 0으로, 0은 1로 바꾼다.

다음 논리식의 보수를 구하시오.


--・C
1) A+B --・B)+C・D
2) (A
--・C의 보수는 A+B
【풀이】1) A+B --・C이다. 즉,

A+B--・C=A・(B
--・C)
-- +C)
=A・(B
=A・(B+C)

74
불 대수/ 불 대수의 정리

--・B)+C・D의 보수는 (A
2) (A --・B)+C・D이다. 즉,
--・B)+C・D=(A
(A --・B)・C・D
--+B)・(C
=(A --+D
--)

=(A+B-- )・(C
--+D
--)

3. 논리식의 쌍대성
불 대수에서 두 논리식 사이에 다음과 같은 관계가 성립하면 두 논리식은 쌍
대 관계(duality)에 있다고 하며, 쌍대 관계는 다음의 방법에 따라 대치하면 만
들어진다.

① 논리곱(AND)은 논리합(OR)으로, 논리합(OR)은 논리곱(AND)으로 대


치한다.
②“0”
은“1”
로,“1”
은“0”
으로 대치한다.
③ 논리 변수의 문자는 그대로 사용한다.

이와 같은 관계의 두 논리식은 그 중 하나의 성립 여부가 증명되면 나머지


하나도 증명 없이 적용된다.

--B+C+0・D(1+E
다음의 논리식 Y=A -- +F)을 쌍대 관계로 변환하시오.

【풀이】위의 ①, ②, ③과 같은 방법으로 각각 대치하여 바꾸면


-- +B)・C・(1+D+(0・E
Y=(A -- ・F))가 된다.

실습 과제 Ⅲ-3 불 대수의 정리

사용 재료 명 칭 규 격 수 량

IC(AND 게이트) 7408 1개

IC(OR 게이트) 7432 1개

IC(NOT 게이트) 7404 1개

IC(NOR 게이트) 7402 1개

IC(NAND 게이트) 7400 1개

토글 스위치 6개

IC 기판 28×28 4장

실습 기기 명 칭 규 격 수 량

직류 전원 공급 장치 5V/1A 1대

회로 시험기 VOM 1대

논리 회로 실험 장치 1대

75
불 대수/ 불 대수의 정리

안전 및 유의 사항 1. 전원을 회로에 연결할 때에는 항상 전원이 OFF된 상태에서 해야 한다.


2. 전원 연결시 극성에 주의해야 한다.

실습 순서 1 분배 법칙:A+ (B・C)=(A+B)・(A+C)

그림 Ⅲ-29의 ⒜, ⒝ 두 회로를 7408 IC 1개와 7432 IC 1개로 결선한다.


두 IC의 VCC는 14번 핀에, GND는 7번 핀에 연결하고, 직류 전원 공급 장치
에서 +5V를 회로에 공급한다.
입력 A, B, C에 따른 각각의 출력 Y1, Y2의 전압을 회로 시험기(또는 오실로
스코프)로 측정하고, 그 결과를 표 Ⅲ-17에 기록한다.

그림 Ⅲ-29게 Vcc Vcc

분배 법칙
A 4
6
A 1 7432
3 4 6
5
7432 Y1 B 7408 Y2
B 1 9
3 2 8 5
7408 7432
C 2 C 10

⒜ A+(B・C)의 회로 ⒝ (A+B)・(A+C)의 회로

2 다중 부정

그림 Ⅲ-30과 같이 7404 IC 1개를 사용하여 회로를 결선한다.


VCC와 GND를 연결하고, 직류 전원 공급 장치에서 +5 V를 회로에 공급
한다.
입력 A에 따른 출력 Y1, Y2, Y3의 전압을 회로 시험기(또는 오실로스코프)로
측정하여 표 Ⅲ-18에 기록한다.

그림 Ⅲ-30게 VCC

다중 부정

A 2 3 4 5 6
Y1 Y2
7404 7404 7404 Y3

3 드 모르간의 정리

그림 Ⅲ-31과 같이 3개의 IC를 사용하여 ⒜, ⒝의 회로를 결선한다.


각 IC 의 VCC와 GND를 연결하고, 직류 전원 공급 장치에서 +5V를 회로에
공급한다.

76
불 대수/ 불 대수의 정리

그림 Ⅲ-31게 VCC VCC

드 모르간의 제 1 정리
A 1 2
A 2 7404
1 1
7402 Y1 3
2 7408 Y2
B 3 4
B 3 7404

⒜ A+B의 회로 --・B
⒝ (A --)의 회로

그림 Ⅲ-32게 VCC
VCC
드 모르간의 제 2 정리
A 1 2
A 1 7404
3 1
7400 Y3 3
7432 Y4
2 B 3 4 2
B 7404

⒜ A・B의 회로 --+B
⒝ (A --)의 회로

입력 A, B에 따른 출력 Y1, Y2의 전압을 회로 시험기(또는 오실로스코프)로


측정하여 표 Ⅲ-19에 기록한다.
위의 , , 과 같은 방법으로 그림 Ⅲ-32의 ⒜, ⒝ 회로를 측정하여 출력
Y3, Y4를 표 Ⅲ-19에 기록한다.

결과 정리 표 Ⅲ-16참분배 법칙 결과표 표 Ⅲ-17참다중 부정 결과표


입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B C Y1 Y2 A Y1 Y2 Y3

0 0 0 0

0 0 5 5

0 5 0 표 Ⅲ-18참드 모르간의 정리 결과표


0 5 5 입력 전압(V) 출력 전압(V)
5 0 0 A B Y1 Y2 Y3 Y4
5 0 5 0 0
5 5 0 0 5
5 5 5 5 0
5 5

심화 과제 논리 회로 실험 장치를 사용하여 위의 실습을 해 보자.

77
4 논리식과 진리표
학습 목표 1. 진리표의 작성 방법과 불 대수로 표현되는 논리 함수의 관계를 이해하고 설명할 수
있다.
2. 논리 함수의 표현 방식과 종류 및 내용을 알고, 설명할 수 있다.

진리표와 논리식은 논리 회로의 기능을 나타낼 수 있다. 논리 함수는 논리


회로의 연결 관계, 즉 입력과 출력의 관계를 구체적으로 나타낸 것이다. 입력은
각 논리 변수, 출력은 논리식의 결과로 볼 수 있다. 따라서, 논리식의 의미를
해석하기 위해서는 논리식을 구성하는 각 논리 변수들의 모든 가능한 논리값
의 조합에 대해 논리식이 가지는 값을 얻어야 하므로 진리표를 사용한다. 따라
서, 논리 회로의 설계는 진리표에서 논리식을 구한 다음 논리 회로를 구성하게
된다.

(입력)

A B C

(출력)
Y

Y=f(A, B, C)

1. 최소항과 최대항
논리 변수가 n개일 때 n개의 논리 변수가 모두 포함된 논리곱항을 최소항
(minterm)이라 하며, 논리 변수의 형태는 원래 또는 부정의 형태 중 한 번만
--, --
포함된다. 즉, 논리 변수 A, B일 때 만들 수 있는 최소항은 AB, AB AB, --
AB --

의 4개이다.
논리 변수가 n개 일 때 n개의 논리 변수가 모두 포함된 논리합항을 최대항
(maxterm)이라 하며, 논리 변수의 형태는 원래 또는 부정의 형태 중 한 번만
-- +B),
포함된다. 즉, 논리 변수 A, B일 때 만들 수 있는 최대항은 (A+B), (A
--), (A
(A+B --+B
--)의 4개이다.

논리 변수가 3개(A, B, C)인 최소항과 최대항을 표 Ⅲ-19에 나타내었다. 최


소항의 값이 1일 때에는 각 변수가 가질 수 있는 값은 1가지이다. 즉, A-- B
----
C가

78
불 대수/ 논리식과 진리표

1일 때에는 A=0, B=0, C=0일 때뿐이다.


최대항의 값이 0일 때에는 각 변수가 가질 수 있는 값은 1가지이다. 즉, A+
--가 0일 때에는 A=0, B=0, C=1일 때뿐이다.
B+C
최소항의 기호는 mj, 최대항 기호는 Mj 이며, j는 최소항 또는 최대항에 해당
하는 2진수를 10진수로 바꾼 숫자이다. 그리고 논리 변수가 n개이면 2n개의 최
소항 또는 최대항이 존재한다는 것을 알 수 있다.
또, 표 Ⅲ-19에서 알 수 있듯이 최소항은 그에 대응하는 최대항과 서로 보수
이다. 즉, mj와 Mj 는 서로 보수 관계이다.
예를 들면, m0 인 -- ----
AB --의
C의 보수는 M0, 즉 A+B+C이고, M1인 A+B+C
보수는 m , 즉 --
1 AB--C이다.

표 Ⅲ-19 최소항 최대항


3변수의 최소항과 최대항 A B C
항 표시 기호(mj) 항 표시 기호(Mj)
0 0 0 --
AB ----
C m0 A+B+C M0

0 0 1 --B
A --C m1 --
A+B+C M1

0 1 0 --BC
A -- m2 --+C
A+B M2

0 1 1 --BC
A m3 --+C
A+B -- M3

1 0 0 ----
AB C m4 --+B+C
A M4

1 0 1 --C
AB m5 --+B+C
A -- M5

1 1 0 --
ABC m6 --+B
A --+C M6

1 1 1 ABC
C m7 --+B
A --+C
-- M7

2. 논리곱의 합형
논리 함수의 표현 방식으로는 진리표에 주어진 입출력 조건에 따라 논리 함
수, 즉 논리식을 유도하는 방법으로는 논리곱의 합(sum of products)형과 논
리합의 곱(product of sums)형으로 나타낼 수 있다.
표 Ⅲ-20
A B C Y
논리곱의 합형은 논리 함수를 최소항
합의 Y의 진리표 의 합, 즉 논리곱 항들의 합으로 나타내
0 0 0 0
0 0 1 --B
1→A --C 는 방식이다. 진리표를 보고 이에 대한
0 1 0 --BC
1→A -- 논리 함수를 유도하기 위해서는 출력이
0 1 1 0 1인 최소항들을 OR 연산, 즉 합하면 된
1 0 0 ----
1 → AB C 다. 예를 들면, 표 Ⅲ-20에서 Y=1인 최
1 0 1 0 소항을 논리적으로 합하면 된다.
----
Y=A --BC
BC+A --+AB
----
C+ABC
1 1 0 0
1 1 1 1 → ABC

79
불 대수/ 논리식과 진리표

--B+AC를 논리곱의 합형으로 표현하시오.


논리 함수 Y=A
【풀이】논리 함수 --
AB+AC는 A, B, C 3개의 변수를 사용하는데, 첫 항 --
AB에
는 C가 빠져 있고 둘째 번 항 AC는 B가 빠져 있다. 따라서,
--
AB=A--B(C+C--) -- =1)
:(C+C
--
AB=A--BC+A--BC--
--)
AC=AC(B+B -- =1)
:(B+B
AC=ABC+AB--C

그러므로
--B+AC
Y=A
--BC+A
Y=A --+ABC+AB
--BC --C

3. 논리합의 곱형
논리 함수를 최대항의 곱, 즉 논리합 항들의 곱으로 나타내는 방식이다. 진리
표를 보고 이에 대한 논리 함수를 유도하기 위해서는 출력이 0인 최대항들을
AND 연산, 즉 곱하면 된다.
진리표로부터 논리 함수를 유도하는 논리곱의 합형과 논리합의 곱형은 그
때의 상황에 따라서 더 간편하고 논리 게이트 수를 작게 할 수 있는 방법을 찾
아 선택하는 것이 좋다.

논리 함수 Y=A+BC를 논리합의 곱형으로 표현하시오.


【풀이】A+BC가 논리곱의 합형이므로 논리합의 곱형으로 바꾼다.
A+BC=(A+B)・(A+C)
이 논리 함수는 A, B, C 3개의 입력 변수를 사용하므로, (A+B)는 C
가 빠져 있고, (A+C)는 B가 빠져 있다. 따라서,
A+B=A+B+(C・C --) :C・C-- =0

A+B=(A+B+C)・(A+B+C --)
-- )
A+C=A+C+(B・B -- =0
:B・B
-- +C)
A+B=(A+B+C)・(A+B
그러므로 Y=A+BC
그러므로 Y=(A+B) (A+C)
--)(A+B+C)(A+B
그러므로 Y=(A+B+C)(A+B+C -- +C)
--)(A+B
그러므로 Y=(A+B+C)(A+B+C -- +C)

80
불 대수/ 논리식과 진리표

4. 정형과 표준형
1 정형의 논리 함수

정형(canonical form)의 논리 함수는 반드시 최소항이나 최대항으로만 구성


되는데 각 항에는 입력 변수가 모두 포함되어야 한다.
-- B
즉, Y(A, B, C)=A --C+A
--BC+AB
----
C +ABC
-- +C
Y(A, B, C)=(A+B+C)・(A+B --)・(A
-- +B+C
--)・(A
--+B
--+C)

진리표에서 Y = 0인 최대항은
--+ --
(A + B + C), (A + B --+ B + --
C), ( A C),
--+ B
(A --+ C)이므로 이것을 각각 곱하면 됩니다.
--+ --
즉, Y= (A + B + C)・(A + B C)・
--+ B + --
(A --+ B
C)・( A --+ C)

‘표 Ⅲ-21’을 예로
들어서 설명해 주세요.

2 표준형의 논리 함수

표준형(standard form)의 논리 함수는 최소항이나 최대항이 아닌 다른 항도


포함되어 있다. 즉 정형의 간소화된 형태라고 할 수 있다.
-- B
즉, Y(A, B, C)=A --+A
--C+AB
----
C+C
--・(B+C)・(A+B+C
즉, Y(A, B, C)=A --)

81
5 논리식의 간소화
학습 목표 1. 논리 회로의 간소화를 위해 논리식을 단순화하는 방법을 설명할 수 있다.
2. 불 대수, 카르노 도 등을 활용하여 논리식이 간소화됨을 설명할 수 있다.
3. 최소항의 곱이나 최대항의 합, 쌍대 관계 등에 의한 간소화 방법을 설명할 수 있다.

A
A
B Y Y

C B

와! 정말 두 회로가
같은 거야?

1. 논리식의 간소화 방법
불 대수로 표현된 논리식은 논리 소자를 구현하여 디지털 논리 회로로 구성
할 수 있다. 따라서, 디지털 논리 회로의 간소화는 논리 소자와 입출력선의 개
수를 줄이는 것이다. 이것은 그만큼 회로가 간단하고 단순해서 장치의 크기와
제작 비용 등을 줄이는 결과가 된다. 따라서 논리식은 논리 소자의 입력인 논
리 변수와 논리 소자인 각 항으로 구성되어 있으므로 논리 소자를 줄이기 위
해 논리식의 간소화가 필요하다.
논리식은 동일한 논리(출력)이면서도 다양하게 표현되는데, 여기서 불필요한
항과 변수를 제거하여 표현하는 것을 논리식의 간소화(minimization)라고 한
다. 논리식을 간소화하는 방법은 아래와 같은 방법들이 있다.

① 불 대수를 이용하는 방법
② 카르노 도(karnaugh map)를 이용하는 방법
③ 도표법(Quine-McCluskey법)을 이용하는 방법

82
불 대수/ 논리식의 간소화

불 대수를 이용하는 방법은 불 대수의 정리나 법칙 등을 이용


하여 간소화시키는 대수적인 변환 방법으로, 논리식이 비교적 단
순한 형태일 때에 사용됩니다.

카르노 도를 이용하는 방법은 논리 변수의 개수가 4개 이하일


때에 주로 사용되는데, 불 대수를 이용하는 방법에 비해서 상대
적으로 복잡한 논리식을 간소화시키므로 많이 사용되죠.

도표법은 처음 고안한 사람의 이름을 따서 퀸 맥클루스키(Quine


McCluskey)법이라고도 하는데, 지루하고 단조로운 절차 등으로 오
류가 발생하기 쉽기 때문에 실용적으로 거의 사용되지 않는다.
이 방법을 적용하여 컴퓨터로 간소화시키는 방법을 만들어서
이용되기도 하는데, 이것은 알고리듬(algorithm)에 의한 방법으로
초대규모 집적 회로(VLSI) 등의 설계 환경에서는 CAD 툴을 일반
적으로 사용합니다.

2. 불 대수에 의한 논리식의 간소화


불 대수에 의한 논리식의 간소화 방식은 일정한 규칙으로 적용하는 것이 아
니므로 모든 불 대수의 공리와 정리 및 법칙을 잘 이해하여 논리 변수나 항의
수를 줄이는 데 적절히 활용해야 한다.
그러면 불 대수의 기본 성질과 드 모르간의 정리, 논리식의 쌍대성 등을 이
용하여 간소화시켜 보자.

83
불 대수/ 논리식의 간소화

Y=AB+AB-- +A
--B를 간소화하시오.

【풀이】Y=AB+AB -- +A
--B

Y=A(B+B--)+A
--B :(3. 기본 법칙③)
Y=A+A--B :(3. 기본 정리④)
--B
Y=A(1+B)+A :(3. 기본 정리②)
Y=(A+AB)+A--B :(3. 기본 법칙③)
--)
Y=A+B(A+A :(3. 기본 법칙④)
Y=A+B

Y=A+AC+AC--+A
--B+ABC+A --BC를 간소화하시오.

【풀이】Y=A+AC+AC --+A
--B+ABC+A --BC

Y=A+A(C+C--)+A
--B+BC(A+A
--) :(3. 기본 정리③)
Y=A+A+A--B+BC :(3. 기본 정리④)
Y=A+A--B+BC :(3. 기본 법칙③)
Y=(A+A--)(A+B)+BC :(3. 기본 법칙③)
Y=A+B+BC :(3. 기본 법칙④)
Y=A+B(1+C) :(3. 기본 법칙③)
Y=A+B :(3. 기본 법칙②)

3. 카르노 도에 의한 논리식의 간소화


카르노 도는 진리표를 도식적으로 나타내어 적은 수의 변수(2개에서 4개 또
는 5개 정도)를 가지는 논리식를 단순화시키는 데 편리하다. 카르노 도는 n변
수로 표현될 수 있는 최소항 또는 최대항을 나타내기 위한 2n개의 사각형(셀:
cell)들로 구성된다. 여기에서 n은 변수의 개수를 나타낸다. 상하 또는 좌우에
인접된 셀에는 하나의 변수값만이 다르게 표현된 최소항 또는 최대항이 배치
되도록 한다. 2변수 일 때, 그림 Ⅲ-33과 같이 구성하며, 그림 Ⅲ-33에서 ⒜, ⒝
는 최소항을 ⒞, ⒟는 최대항을 나타낸다.

그림 Ⅲ-33게 B B B B
0 1 0 1 0 1 0 1
A A A A
최대항과 최소항의 2변수 -- -- -- -
0 m0 m1 0 AB AB 0 M0 M1 0 A+B A+B
카르노 도
m2 m3 --
AB AB M2 M3 --+B
A --+ B
A --
1 1 1 1

⒜ 최소항 ⒝ 최소항 ⒞ 최대항 ⒟ 최대항

84
불 대수/ 논리식의 간소화

카르노 도를 이용하여 논리식(논리 함수 또는 불 대수)을 단순화하기 위해서


는 다음과 같은 순서를 가진다.

카르노 도로 논리식의 최소항을 1로 표


논리식을 최소항의 합 형태로 전개
시, 나머지는 0으로 표시

--= 1 및 A・A = A인 불 대수의


A+A
최소항이 1인 인접된 항을 가능하면 16
정리를 이용하여 인접항과의 변수 단순
개, 8개, 4개, 2개 순으로 그룹을 형성
화 작업

논리식의 최대항 함수:0으로 된 항을


묶고 소거한 함수에 드 모르간의 정리
(보수)를 적용

최소항으로 표시된 임의의 논리식


--B+AB
Fmin =A -- +AB=m +m +m =S(m , m , m )와 최대항으로 표시된
1 2 3 1 2 3

임의의 논리식
--)(A
Fmax(A, B)=(A+B -- +B)(A
-- +B
--)=M ・M ・M =P(M , M , M )
1 2 3 1 2 3

를 보자.
그림 Ⅲ-34의 ⒜와 ⒝는 2변수 카르노 도로 22=4, 즉 4개의 최소항과 최대항
으로 구성되어 있다. 그림 Ⅲ-34의 ⒜는 최소항의 위치 m1, m2 , m3에 1을 표시
하였고 인접한 항끼리 그림 Ⅲ-34의 ⒜와 같이 2개 또는 ⒞와 같이 4개 단위로
묶음을 만들 수 있다.
그러나 그림 Ⅲ-34의 ⒟와 같이 인접한 항을 대각선으로 묶을 수는 없다.

잠깐! 인접한 항을 묶을 때의
원칙을 알아봅시다. ① 서로 인접한 항은 2n개씩 최대로 묶는다. 단, 대
각선 항은 묶지 못하고, 상하좌우, 사방의 모서
리는 서로 마주한 인접항으로 생각합니다.
② 어떤 항이 두 번 이상 묶여도 좋습니다.
③ 묶이지 않은 항이 없을 때까지 ①을 반복합니다.
④ 인접한 항이 없으면 그 항만 묶는다.

85
불 대수/ 논리식의 간소화

그림 Ⅲ-34게
카르노 도를 사용한 최소항 A는 소거되고
과 최대항 간소화 B만 남는다.
F=A+B - =(A+B)=AB
Fmax=F
B B B B
0 1 0 1
A B는 소거되고 A
0 0 1 A만 남는다. 0 1 0
A A
1 1 1 1 0 0

⒜ 최소항 묶음 ⒝ 최대항 묶음

인접항을 대각선으로
4개 단위로 묶음 묶을 수는 없다.
B B
0 1 0 1
A A
1 1 F=1 1 1
0 0

1 1 1 1 1 1

⒞ 4개항 묶음 ⒟ 비소거되는 묶음

그림 Ⅲ-34의 ⒜는 최소항으로 구성되어 있으므로 남아 있는 변수들을 더하


므로 결과는 A+B가 된다. 이것을 불 대수 식으로 계산해 보면,
--B+AB=B(A
F =m +m =A --+A)=B(1)=B
13 1 3

-- +AB=A(B
F23 =m2 +m3 =AB -- +B)=A(1)=A

Fmin =F13 +F23 =B+A=A+B


가 되어 카르노 도를 이용한 간소화 결과와 일치한다. 그림 Ⅲ-34의 ⒝에서 0으
로 표시되는 최대항을 묶고 소거하는 방법은 최소항과 같으나 결과에 드 모르
간의 정리를 적용하는 것이 다르다. 따라서, 이 논리식은
F=A+B
가 되며, 이 논리식 F에 드 모르간의 정리를 적용하여 보수를 취하면 다음 식
과 같이 된다.
F =F-- =(A+B)=A
-- B
--
max

즉, 그림 Ⅲ-34의 ⒝을 이용한 최대항으로 된 논리식 F는 --


AB --가 된다. 이것

을 불 대수 식으로 계산해 보면
--)(A
F =M ・M =(A+B -- +B
--)=B
--
13 1 3

-- +B)(A
F23=M2・M3=(A -- +B
--)=A
--

F =F ・F =A -- B
--
max 13 23

가 되어 이것 또한 카르노 도를 이용한 간소화 결과와 일치한다. 위의 묶음과


소거를 자세히 설명하기 위하여 그림 Ⅲ-35를 보자. 그림 Ⅲ-35는 2변수 카르노
도에서 논리식의 간소화 방법으로서 각 항이 한 묶음이 되었을 때 변수가 0,0
이나 1,1 이면 남기고 1,0 이나 0,1은 소거한다.

86
불 대수/ 논리식의 간소화

그림 Ⅲ-35게 B
0 따라서, 4개의 변수항(m0, m1, m2,
변수의 간소화 A
0 1
{ A:0,
B:0, 1
--
따라서 A
1 m3)을 간소화하면 1이 되고 (m0,
0 m0 m1
{ A:0,
B:1, 1
따라서 B
1 m1), (m0, m2), (m1, m3), (m2, m3)
{ A:0, --
따라서 B
를 각각 간소화하면 -- --, B, A가
1 m2 m3 B:0, 0
1 A, B
{ A:1,
B:0, 1
따라서 A
된다.
⒜ 최소항 묶음

그림 Ⅲ-36게 B B
00 01 11 10 00 01 11 10
A A
3변수 카르노도 --B---- --B--C --BC --BC--
0 m0 m1 m3 m2 0 A C A A A

m4 m5 m7 m6 ----
AB C --C
AB ABC --
ABC
1 1

그림 Ⅲ-36은 3변수 카르노 도로 23 =8개의 최소항을 표현할 수 있다.


카르노 도에서 변수 BC의 순서는 그레이 코드의 순서 00→01→11→10으로
배치되기 때문에 인접 최소항들은 오직 한 비트씩만 다르게 되어서 인접 최
소항끼리의 간소화가 가능해진다.

다음 논리식들을 카르노 도를 사용하여 간소화해 보자.


--B
F =A --C+A
--BC=m +m
1 1 3

F2 =m0 +m4 +m6


F3 =m1 +m3 +m5 +m6 +m7
【풀이】위의 논리식 F1, F2, F3을 카르노 도로 나타내면 그림 Ⅲ-37과 같이 묶
어 간소화할 수 있으며 ⒟는 논리식 F3을 ⒞와 같이 2개의 묶음이 아니
고 3개로 묶을 때의 결과이다.
따라서, 논리식 F1은 다음과 같이 간소화된다.
--C
F =A 1

논리식 F2는 그림 Ⅲ-37의 ⒝와 같이 2개의 묶음이 만들어지고 각 변


수는 1개씩 제거되어 ①은 B ---- --로 표현되므로 다음과 같이 간
C, ②는 AC
소화된다.
----
F =B --
C+AC
2

식 F3는 그림 Ⅲ-37의 ⒞와 같이 ①은 AB, ②는 변수 A, B가 제거되


어 C로 표현된 2개 항의 합으로 표현되어 다음과 같이 된다.
F3 =AB+C
그림 Ⅲ-37의 ⒟에서 ①은 AB, ②는 AC, ③은 --
AC로 표현되어 F3
--
=AB+AC+AC가 된다. 따라서 논리식을 최대한 간소화하기 위해서
는 가능하면 묶음을 크게 해야 한다. 2개 묶음은 변수 하나를 제거하고,

87
불 대수/ 논리식의 간소화

--C
F1 = A 1 ----
F2 = B --
C +AC
그림 Ⅲ-37게 BC BC
00 01 11 10 00 01 11 10
A A
3변수의 간소화
0 0 1 1 0 0 1

1 0 0 0 0 1 1 1 2

⒜ F1의 간소화 ⒝ F2 의 간소화

2 F3 = AB + C --C
F3=AB+AC+A
3
BC BC
00 01 11 10 00 01 11 10
A A
0 0 1 1 0 0 0 1 1 0
1

1 0 1 1 1 1 0 1 1 1 1

⒞ F3의 간소화 ⒟ F3 의 간소화

4개의 묶음은 변수 2개를 제거하고, 8개의 묶음은 변수 3개를 제거할 수


있다. 따라서, 카르노 도의 묶음은 2n개 단위로 묶어서 n개의 변수를 제
거하여야 한다.
그림 Ⅲ-38의 ⒜는 4변수 카르노 도로서 다양하게 인접한 항을 묶는 것
을 나타내었으며, ⒝는 이를 이용한 논리식 간소화를 도시한 것으로서 8
개의 인접한 1들을 묶을 수 있는 경우이며,
F(A, B, C, D)=S(m1, m3 m5, m7, m8, m9, m10, m11, m12, m13, m14, m15)
와 같이 된다. 그림 Ⅲ-38에서 F1, F2는 각각 8개 묶음으로 변수 3개가
제거되어서 F1 =A, F2 =D가 된다. 논리식의 간소화 결과는
F=F1 +F2 =A+D가 된다.
F=F1+F2=A+D
그림 Ⅲ-38게 CD CD
00 01 11 10 00 01 11 10
AB AB A 1, 0
4변수 카르노 도와 간소화
00

01
m

m
m

m
m

m
m

m
00

01
m

m
1

1
1

1
m

m
F2
{ B 1, 0
C 1, 0
D 1, 1 → D
A 1, 1 → A

{
11 m m m m 11 1 1 1 1
B 1, 0
F1
m m m m 1 1 1 1 C 1, 0
10 10
D 1, 0
⒜ 4변수 카르노 도 ⒝ 논리식 간소화

다음의 논리식 F를 카르노 도로 간소화하여 보자.


--BC+AB
F=A --C
--+ABC+ABC
--

【풀이】① 3변수 항의 카르노 도를 그리고 위의 최소항에 해당되는 항을 1로


한다.
② 1로 된 항을 기본 법칙에 따라 묶어 논리식을 그림 Ⅲ-39와 같이 간

88
불 대수/ 논리식의 간소화

그림 Ⅲ-39 BC 소화한다.
00 01 11 10
A
3변수 간소화 BC
0 1
--
③ 간소화된 논리식은 다음 식과 같다.
AC
1 1 1
--
F=BC+AC
1

논리식 F의 진리표가 표 Ⅲ-21과 같다. 이 진리표를 보고 카르노 도를 이용


하여 논리식 F를 최소항과 최대항의 형식으로 간소화하여 보자.
【풀이】① 표 Ⅲ-21에서 최소항을 이용한 논리식 Fmin는 아래와 같다.
Fmin(A, B, C)=S(m1, m3, m4, m6)
② 위의 식을 이용한 카르노 도는 그림 Ⅲ-40과 같다. 이것을 묶고 소
거하여 간소화하면 다음 식 Fmin과 같다.
--C+AC
F =A --
min

표 Ⅲ-21참F의 진리표
입력 출력

A B C F

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 0

그림 Ⅲ-40 BC
00 01 11 10
A
Fmin 의 카르노 도
0 0 1 1 0

1 1 0 0 1

그림 Ⅲ-41 BC
00 01 11 10
A
(Fmin)′의 카르노 도
0 0 1 1 0

1 1 0 0 1

③ 표 Ⅲ-21의 최대항을 이용한 논리식 Fmax는 다음 식과 같다.


Fmax(A, B, C)=P(M0, M2, M5, M7)
④ 논리식 (Fmin)′
의 카르노 도는 그림 Ⅲ-41과 같이 묶어지고 소거되며
간소화된 논리식은 보수를 취하여 Fmax를 만든다. 즉, 간소화된 논리

89
불 대수/ 논리식의 간소화

식 Fmin는
--C+AC
Fmin =A --

가 된다. 이것을 보수화하여 다음 식이 된다.


----
F =(F )′=(A -- +C
C+AC)′=(A+C)(A --)
max min

실습 과제 Ⅲ-4 논리식의 간소화

사용 재료 명 칭 규 격 수 량

IC(NOR 게이트) 7402 1개

IC(NOT 게이트) 7404 1개

IC(NAND 게이트) 7400 1개

IC(OR 게이트) 7432 1개

IC(AND 게이트) 7408 1개

토글 스위치 3개

IC 기판 28×28 4장

실습 기기 명 칭 규 격 수 량

직류 전원 공급 장치 5V/1A 1대

회로 시험기 VOM 1대

논리 회로 실험 장치 1대

안전 및 유의 사항 1. 오배선이 되지 않도록 주의를 기울인다.


2. 모든 결선을 마친 다음 전원 단자(VCC)와 접지 단자(GND) 사이의 저항 측정
을 하여 단락되지 않았으면 전원을 인가한다.

실습 순서 1 논리식의 간소화 실습 1

그림 Ⅲ-42의 회로를 결선한다(7404 IC 1개, 7402 IC 1개).


두 IC의 전원 단자(VCC)와 접지 단자(GND)를 연결하고, 직류 전원 공급 장
치에서 +5V를 회로에 공급한다.

그림 Ⅲ-42 VCC

논리 회로 Y1
A 1 2 2 1
3 4 3 7402 Y1

B
7404

90
불 대수/ 논리식의 간소화

그림 Ⅲ-43 VCC

논리 회로 Y2
A 1 3
1 2
7400 Y2

B 2 7404

입력 A, B에 따른 출력 Y1의 전압을 회로 시험기(또는 오실로스코프)로 측


정하고, 그 결과를 표 Ⅲ-22에 기록한다. 그리고 Y1의 논리식을 작성한다.
그림 Ⅲ-43의 회로를 결선한다(7404 IC 1개, 7400 IC 1개).
위의 , 과 같은 방법으로 출력 Y2를 측정하여 표 Ⅲ-22에 기록하고, Y2
의 논리식을 작성한다. 그리고 Y1과 Y2의 논리식을 비교한다.

2 논리식의 간소화 실습 2

그림 Ⅲ-44의 회로를 결선한다(7432 IC 1개, 7408 IC 1개).


1 의 , 과 같은 방법으로 출력 Y1을 측정하고, 그 결과를 표 Ⅲ-23에
기록한다. 그리고 Y1의 논리식을 작성한다.
그림 Ⅲ-45의 회로를 결선한다(7408 IC 1개, 7432 IC 1개).
1 의 , 과 같은 방법으로 출력 Y2를 측정하여 그 결과를 표 Ⅲ-23에
기록하고, Y2의 논리식을 작성한 다음 Y1과 Y2의 논리식을 비교한다.

그림 Ⅲ-44 VCC

논리 회로 Y1
A 1
3
2 7432
1 3
B
4 2 7408 Y1
6
5 7432

그림 Ⅲ-45 VCC

논리 회로 Y2
A
9
8
4 7432 Y2
6 10
B 5 7408
C

91
불 대수/ 논리식의 간소화

결과 정리 표 Ⅲ-22참결과표 표 Ⅲ-23참결과표
입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y1 Y2 A B C Y1 Y2

0 0 0 0 0
0 5 0 0 5
5 0 0 5 0
5 5 0 5 5

Y1 =( ) 5 0 0
Y2 =( ) 5 0 5

5 5 0

5 5 5

Y1 =( )
Y2 =( )

심화 과제 논리 회로 실험 장치를 사용하여 논리식의 간소화를 해 보자.

92
불 대수/ 단원 학습 정리

1. 불 대수와 기본 논리 게이트
단원 학습 정리
‘표 Ⅲ-9 논리 게이트의 종류’
에 제시된 논리 기호, 논리식, 진리표, IC 명칭
을 확인하여 본다.
2. 불 대수와 기타 논리 게이트
‘표 Ⅲ-9 논리 게이트의 종류’
에 제시된 논리 기호, 논리식, 진리표, IC 명칭
을 확인하여 본다.
3. 불 대수의 정리
가. 불 대수의 기본 성질
<공리>, <기본 정리>, <기본 법칙> 참고
나. 드 모르간의 정리
제 1 정리:A+B=A・B
제 2 정리:A・B=A+B
다. 논리식의 쌍대성
<쌍대 관계(duality)>
① 논리곱(AND)은 논리합(OR)으로, 논리합(OR)은 논리곱(AND)으로 대
치한다.
②“0”
은“1”
로,“1”
은“0”
으로 대치한다.
③ 논리 변수의 문자는 그대로 사용한다.
4. 논리식과 진리표
가. 최소항과 최대항
・최소항(minterm):논리 변수가 n개일 때, n개의 논리 변수가 모두 포
함된 곱항
・최대항(maxterm):논리 변수가 n개일 때, n개의 논리 변수가 모두 포
함된 합항
나. 논리곱의 합형
논리 함수를 최소항의 합, 즉 논리곱 항들의 합으로 나타내는 방식
다. 논리합의 곱형
논리 함수를 최대항의 곱, 즉 논리합 항들의 곱으로 나타내는 방식
라. 정형과 표준형
・정형(canonical form):논리 함수는 반드시 최소항이나 최대항으로만
구성됨.
・표준형(standard form):논리 함수는 최소항이나 최대항이 아닌 다른
항도 포함되어 있음.
5. 논리식의 간소화
가. 논리식의 간소화 방법
① 불 대수를 이용하는 방법

93
불 대수/ 단원 종합 문제

② 카르노 도(karnaugh map)를 이용하는 방법


③ 도표법(Quine-McCluskey법)을 이용하는 방법
나. 불 대수에 의한 논리식의 간소화
:불 대수의 공리와 정리 및 법칙을 잘 이해하여 논리 변수나 항의 수를
줄이는 데 적절히 활용함.
다. 카르노 도에 의한 논리식의 간소화
:카르노 도는 진리표를 도식적으로 나타내어 적은 수의 변수(2개에서 4
개 또는 5개 정도)를 가지는 논리식를 단순화시키는 데 편리함.

단원 종합 문제 11. 기본 논리 회로(AND, OR, NOT)의 논리 기호, 논리식, 진리표를 각각 작성


하여 보자.

12. 다이오드와 트랜지스터 등을 이용하여 NAND와 NOR 연산 회로를 구성하


여 보자.

13. NAND와 NOR 게이트를 기본 논리 게이트를 이용하여 구성하여 보자.

14. NAND 게이트를 사용하여 AND, OR, NOT 게이트를 구성하여 보자.

15. NOR 게이트를 사용하여 AND, OR, NOT 게이트를 구성하여 보자.

16. NAND 게이트를 사용하여 XOR 회로를 구성하여 보자.

17. 다음의 논리식에 대한 진리표를 작성하여 보자.


1) Y=AB+C --C+BC
2) Y=AB --

--D+BCD+ACD+A
18. Y=(A, B, C, D)=AC --BD를 진리표를 이용하여

논리곱의 합형으로 표시하여 보자.

--+BC’
19. 논리 함수‘Y=A 을 논리곱의 합형으로 변환하여 보자.

--’
10. 논리 함수‘Y=B+AC 을 논리합의 곱형으로 변환하여 보자.

94
Ⅳ. 조합 논리 회로
1. 조합 논리 회로의 설계 디지털 시스템을 구성하는 논리 회로는 크게
조합 논리 회로(combinational logic circuits)와
2. 가산기와 감산기
순서 논리 회로(sequential logic circuits)로 구
3. 비교기 분할 수 있다. 조합 논리 회로는 과거의 입력
4. 해독기와 부호기 조합에 관계 없이 현재의 입력 조합에 의해서
5. 멀티플렉서와 디멀티플렉서 만 출력이 직접 결정되는 논리 회로로 주로 논
리 게이트로 구성된다. 순서 논리 회로는 기억
6. 병렬 가산기
소자와 그의 주변 요소들의 상태 및 입력 함수
7. 코드 변환기 로서, 현재의 입력 변수와 회로의 내부 상태에
의하여 출력이 결정된다.
이 단원에서는 임의 시스템의 진리표를 작성
하고 카르노 도를 사용하여 출력 함수를 간소
화하여 조합 논리 회로를 설계하고 구성하는
방법에 대하여 학습하기로 한다.

Vcc=5V
10
0 A0
11
1 A1
12
2 A2
13
3
1 GS
4
2
5
3
6 EO
4
7 TD

TB
330

330

부호기를 이용한 조합 논리 회로

95
1 조합 논리 회로 설계
학습 목표 1. 시스템을 분석하고 진리표를 작성할 수 있다.
2. 최소항을 이용하여 출력 함수를 유도할 수 있다.
3. 출력 함수를 이용하여 조합 논리 회로를 구성할 수 있다.

조합 논리 회로의 개요도(block diagram)를 그림 Ⅳ-1에 나타냈다. n개의 입


력 변수가 외부로부터 입력되어 처리된 다음 그 결과가 m개의 출력 변수를 통
하여 외부로 보내어지며 조합 논리 회로의 종류에는 연산 장치(가산, 감산 등),
코드 변환기, 비교기, 멀티플렉서와 디멀티플렉서 등이 있다.

그림 Ⅳ-1
조합 논리 회로의 개요도
입력 출력
조합 논리 회로
(n개) (m개)

조합 논리 회로의 설계는 진리표를 가지고 디지털 회로를 구성하는 것이다.

입력
출력
A B

0 0 0

0 1 1

1 0 1

1 1 1

진리표 디지털 회로

조합 논리 회로를 설계하는
예.
순서는 다음과 같음을
이해하고 꼭
기억하세요.

96
조합 논리 회로 / 조합 논리 회로 설계

[1] 설계하고자 하는 시스템의 [2] 입・출력 변수 간의 진리


분석과 변수 정의 표 작성

[4] 출력 함수를 만족하는 조


[3] 간소화된 출력 함수 유도
합 논리 회로도 구성

1. 조합 논리 회로의 설계 순서
1 시스템의 분석과 변수 정의

설계하고자 하는 시스템의 분석과 변수 정의는 조합 논리 회로를 설계하기


위하여 입력 변수의 수와 출력 변수의 수를 정하고 각각에 적당한 변수를 할
당하는 것을 의미한다. 다음의 그림 Ⅳ-2는 저항 R에 전류 I가 흐르기 위한 시
스템의 분석과 변수를 정의하기 위한 것으로 OR 시스템이라고 한다.

5V 5V
그림 Ⅳ-2
OR 시스템의 구성과 변수
정의

SW1 SW1=A

I I
SW2 SW2=B
R R

GND GND

⒜ 기본 회로도 ⒝ 변수 A, B 정의

A F
조합 논리 회로
B
그림 Ⅳ-2 (b)는 각 스위치의 이름(변수)을 A와 B로 정의할 수 있고, 이러

그림 Ⅳ-3 한 시스템은 다음과 같이 입출력 변수를 사용하여 그림 Ⅳ-3과 같이 블록도


OR 시스템의 블록도 를 구성하며 F는 전류의 유무를 나타낸다.

2 시스템의 입출력 변수 간의 진리표 작성

그림 Ⅳ-2에서 저항 R에 전류가 흐르는 경우를 가정하여 입출력 변수를 사


용한 OR 시스템의 진리표는 표 Ⅳ-1과 같다. 출력에 전류가 흐르는 경우에 시
스템의 출력이 있다고 하고, 이것을 출력 F가 1이라고 한다.

97
조합 논리 회로 / 조합 논리 회로 설계

표 Ⅳ-1
10진수 A B 표시 출력(F)
OR 시스템의 진리표 ─ ─
0 A B m0 0

1 A B m1 1

2 A B m2 1
3 A B m3 1

3 간소화된 출력 함수 유도

간소화된 출력 함수 유도는 입력 변수를 사용하여 출력 함수를 만들고, 그


출력 함수를 최대한 간소화된 함수가 되는 출력 함수를 구하는 것이다. 출력
함수는 시스템의 진리표에서 출력이 1이 되는 경우를 모두 나타내면 아래의
식과 같다.

F(A, B)=m1+m2+m3=-
AB +A-
B +AB=S(1, 2, 3)

여기서, F는 함수(function)를 의미하고, 이것을 출력 함수(output function)


라 한다. 이 출력 함수는 불 대수의 기본 정리를 이용하면 아래와 같이 간단히
된다.

- +(AB
F =AB -+AB)= AB
- +A(B
-+B)=AB
- +A⑴

- +A=B A+A=B
F =AB - +A=A+B

뿐만 아니라 그림 Ⅳ-4와 같이 카르노 도를 사용하더라도 같은 결과가 된다.

그림 Ⅳ-4
F=A+B
카르노 도 응용 B B
0 1
A
0 0 1
A
1 1 1

4 출력 함수를 만족하는 조합 논리 회로도 구성

다음은 간소화된 출력 함수를 만족하는 조합 논리 회로를 구성하여야 한다.


지금까지 설명한 OR 시스템의 출력 함수를 간소화하기 전의 조합 논리 회로
는 그림 Ⅳ-5의 ⒜와 같고 출력 함수를 간소화한 다음의 조합 논리 회로는 그
림 Ⅳ-5의 ⒝와 같다.

98
조합 논리 회로 / 조합 논리 회로 설계

그림 Ⅳ-5
A
OR 시스템의 조합 논리 회로
B

A
F F
B

⒜ 간소화 전의 조합 논리 회로 ⒝ 간소화된 회로

2. 간소화된 함수를 사용한 조합 논리 회로의 구성


다음 수식 F는 3변수 함수 카르노 도나 불 대수를 사용하면 다음과 같이 간
소화된다.

- +A-
간소화 전:F = ABC B-
C +ABC +AB-
C

간소화 후:F =BC +A-


C

이 수식들은 그림 Ⅳ-6과 같이 설계된다.

그림 Ⅳ-6 A
함수 F의 조합 논리 회로

B
-- ----
F=ABC+ABC
C --
+ABC+ABC

⒜ 간소화 전의 함수 F의 조합 논리 회로

A
--
F=BC+AC

B
C

⒝ 간소화 후의 조합 논리 회로

따라서, 복잡한 수식을 단순하게 하면 복잡한 회로가 아주 간소화되고, 간소


화된 함수를 조합 논리 회로로 설계하면 시스템이 적어지고 경제적이다.

99
조합 논리 회로 / 조합 논리 회로 설계

3. 조합 논리 회로 설계 응용
2진수로 된 2개의 입력이 모두 논리 1일 때만 1이 출력되는 시스템을 설계해
보면 조합 논리 회로 설계 순서에 따라 다음과 같이 설계할 수 있다.

1 설계하고자 하는 시스템의 변수 정의와 분석

이러한 시스템은 다음 그림 Ⅳ-7과 같은 시스템 블록도를 그릴 수 있다.

그림 Ⅳ-7
입력=2진수 2개
시스템의 블록도
출력=2진수 1개
입력=A, B
출력=Y

조합
A
논리 Y
B
회로

2 시스템의 입출력 변수 간의 진리표 작성

시스템의 입출력 변수 간의 진리표를 작성하면 표 Ⅳ-2와 같다.

표 Ⅳ-2 입력 출력
입출력 진리표
A B Y 입력의 종류=00, 01, 10, 11
출력=입력이 11일 때에만 1
0 0 0

0 1 0

1 0 0

1 1 1

즉, 입력 AB는 00 01 10 11의 입력이 있으며, 입력이 11일 때에만 출력에 1이


나타난다.

3 간소화된 출력 함수 유도
B
A
0 1 위의 진리표를 이용하여 간소화된 함수로 표시되는 출력 함수를 유도하기
0 0 0
AB 위하여 그림 Ⅳ-8과 같이 카르노 도를 이용하여 간소화된 출력 함수를 구할 수
1 0 1
있다.
그림 Ⅳ-8 따라서, 출력 함수 Y=AB가 된다.
출력 함수 Y

100
조합 논리 회로 / 조합 논리 회로 설계

4 간소화된 출력 함수를 만족하는 조합 논리 회로도 구성

A 위의 출력 함수는 그림 Ⅳ-9와 같이 구성된다.


Y 따라서, 그림 Ⅳ-9의 입력 AB에 2진수 00부터 01 10 11까지 입력을 시키면
B
그림 Ⅳ-9 출력 Y는 입력이 11일 때에 1이 되고 나머지는 0이 출력된다.
Y 의 구성

조합 논리 회로를
① 시스템의 분석과 변수 정의
설계하는 순서를 다시 잘 알겠습니다.
② 시스템의 입출력 변수 간의
한 번 요약하겠어요.
진리표 구성
③ 간소화된 함수로 표시되는 출력
함수 유도
④ 출력 함수를 만족하는 조합 논리
회로도의 설계

0에서 7까지 2진수로 변화된 데이터를 임의 시스템에


입력하여 출력시킬 때, 홀수는 출력되고 짝수는 0으로
출력시키는 시스템을 설계해 봅시다.

조합 논리 회로 설계 순서에 따라 다음 그림 Ⅳ-10과 같은 시스템 블록도를


그릴 수 있다.

그림 Ⅳ-10 시스템 입출력=2진수 3비트


시스템의 블록도 입력과 출력=각 3개
입력 2진수=X2X1X0
출력 2진수=Y2Y1Y0

X0 조합 Y0

X1 논리 Y1

X2 회로 Y2

101
조합 논리 회로 / 조합 논리 회로 설계

표 Ⅳ-3
입 력 출 력
입출력 진리표
X2 X1 X0 Y2 Y1 Y0

0 0 0 0 0 0

0 0 1 0 0 1 홀수=1, 3, 5, 7
X2X1X0 =001, 011, 101, 111
0 1 0 0 0 0
Y2Y1Y0 에 입력 데이터 출력
0 1 1 0 1 1 짝수=0, 2, 4, 6
1 0 0 0 0 0 X2X1X0 =000, 010, 100, 110
Y2Y1Y0 에 000 출력
1 0 1 1 0 1

1 1 0 0 0 0

1 1 1 1 1 1

입출력 변수 간의 진리표는 표 Ⅳ-3과 같다. 즉, 3비트 데이터 X2X1X0 =001,


011, 101, 111의 4가지 경우에는 출력에 입력 데이터가 그대로 통과되고, 짝수일
경우는 000을 출력시키는 진리표이다. 예를 들면, 입력 X2X1X0 =010일 때 10진
수로 2이므로 출력 Y2Y1Y0 =000이 된다.
표 Ⅳ-3에서 출력 함수 Y2, Y1, Y0는 다음과 같다
-- - -
Y0 =X2X1 X0 + X2 X1 X0+X2X1 X0+X2 X1 X0

Y1 =X2 X1 X0 +X2 X1 X0

Y2 =X2X1 X0 +X2 X1 X0
Y0, Y1, Y2 의 각각에 대한 카르노 도를 이용하여 간소화된 출력 함수를 구하면
그림 Ⅳ-11과 같다

그림 Ⅳ-11 Y0 =X0 Y1=X1X0 Y2=X2X0


출력 Y0, Y1, Y2 에 대한 X1 X0 X1 X0 X1 X0
카르노 도 X2 00 01 11 10 X2 00 01 11 10 X2 00 01 11 10

0 1 1 0 1 0

1 1 1 1 1 1 1 1

⒜ Y0 ⒝ Y1 ⒞ Y2

위의 간소화된 출력 함수는 논리 게이트를 이용하여 그림 Ⅳ-12와 같이 구성


할 수 있다.

그림 Ⅳ-12 X0 Y0

Y0, Y1, Y2 에 대한 회로도


Y1
X1

X2
Y2

102
조합 논리 회로 / 조합 논리 회로 설계

따라서, 그림 Ⅳ-12의 입력에 2진수 000부터 111까지 입력을 시키면 출력은


위의 표 Ⅳ-3의 진리표와 같이 홀수의 입력은 출력에 나타나지만 짝수의 입력
은 출력에 나타나지 않는다.

[1] 다음 3변수 함수 Fmin는 다음과 같이 간소화된다. 논리 게이트를 사용하여


간소화 전과 후의 회로를 구성하여 보자.
-BC
간소화 전:Fmin(A, B, C)=A - + ABC
- +A-
B-C +AB -
C

-C +A-
간소화 후:Fmin(A, B, C)=A C

[2] 다음 그림 Ⅳ-13의 KA 시스템에서 디지털 입력 데이터 X와 Y가 같은 경


우는 0을 출력하고 다른 경우는 1을 출력하는 조합 논리 회로를 구성하여
보자.

그림 Ⅳ-13
X
KA 시스템

Y
KA
F

[3] 그림 Ⅳ-14의 KT 시스템에서 디지털 입력 데이터 X와 Y가 같은 경우는


F와 F1에 1을 출력하고 다른 경우는 F와 F1에 0을 출력하는 조합 논리 회
로를 구성하여 보자.

그림 Ⅳ-14
X F
KT 시스템

Y
KT F1

읽을거리

실제 회로에 대하여 실험을 하기 전에 컴퓨터로 시뮬레이션을 실시하여 회로의 출력 결과나


문제점 등을 미리 파악하는 프로그램이 많이 있다. 그 중에서 아날로그나 디지털 신호 해석에
많이 쓰이는 소프트웨어를 사용하여 그림 Ⅳ-5의 간소화되기 전 회로인 ⒜와 간소화된 후의 회
로 ⒝에 대하여 해석을 하여 보자.
그림 Ⅳ-15와 그림 Ⅳ-16은 Pspice의 편집기에 그림 Ⅳ-5 ⒜와 ⒝ 회로를 작성한 것이며, 이것들

103
조합 논리 회로 / 조합 논리 회로 설계

을 해석하기 위하여 입력 A는 5ms마다 0과 1을 B는 10ms마다 0과 1을 인가하여 20ms까지 인가


하였고, 해석을 위하여 그림 Ⅳ-17과 같이 transient는 프린터 스텝 1ms, 지속 기간 25ms를 적용
하였다. 그림 Ⅳ-18은 입력과 출력 결과이며, 첫째 번 플롯은 입력 A의 데이터, 둘째 플롯은 입력
B의 데이터, 셋째는 간소화되기 전의 출력 F, 넷째는 간소화된 회로의 출력 F1을 나타내고 마지
막 플롯은 전체를 한 플롯에 나타내었다.
여기에서 간소화 전의 회로와 간소화된 후의 회로가 모양은 차이가 있더라도 출력 결과가 일
치하는 것을 알 수 있다

그림 Ⅳ-15 그림 Ⅳ-5의 ⒜ 회로 구성

그림 Ⅳ-16 그림 Ⅳ-5의 ⒝ 회로 구성

104
조합 논리 회로 / 조합 논리 회로 설계

그림 Ⅳ-17 회로 해석을 위한 조건 설정

그림 Ⅳ-18 입력 A, B와 출력 F, F1 의 결과

105
2 가산기와 감산기
학습 목표 1. 반가산기와 전가산기의 구조와 원리를 설명할 수 있다.
2. 반감산기와 전감산기의 구조와 원리를 설명할 수 있다.
3. 설계된 가산기와 감산기를 실험하여 동작 원리를 설명할 수 있다.

1. 가산기
가산기는 2진수로 된 두 수를 더하는 회로로서 반가산기와 전가산기가 있다.
두 비트의 덧셈 연산은 0+0=0, 0+1=1, 1+0=1, 1+1=10으로 정의된다.
처음 3개의 연산은 한 비트의 합을 출력시키나 피가수와 가수가 둘 다 1일 때,
즉 1+1=10 일 때 합은 2비트로 구성되며 앞의 수 1은 자리올림 수(carry)라
고 한다. 2개의 2진수 A와 B의 가산 회로는 계산기를 구성하는 중요한 회로의
하나로 다음과 같은 종류가 있다.

가산기?
인간은 수를 계산할 때
아래와 같이 계산하지만…….
전가산기
5 101
반가산기 + 2 + 10
7 십진수 이진수

가산기의 종류를
말씀해 주세요.

가산기는 반가산기와
전가산기 그리고 이것들을
결합한 n비트 가산기가
있습니다.

106
조합 논리 회로 / 가산기와 감산기

[1] 2개의 2진수를 덧셈하는 반가산기(2개 비트 덧셈 수행)

[2] 자리올림 수도 포함하여 2개의 2진수를 덧셈하는 전가산기(3개


비트 덧셈 수행)

[3] n비트로 이루어진 2개의 2진수를 덧셈하는 n비트 가산 회로

1 반가산기

두 비트를 덧셈하는 가산기를 반가산기(half adder:HA)라 하며, 이 회로는


2개의 2진 입력과 2개의 2진 출력을 가진다. 입력 변수들은 피가수와 가수가
있으며, 출력 변수들은 합(sum)과 자리올림 수(carry)가 있다.
입력 변수에 A(피가수), B(가수)를 출력 변수에 S(합), C(자리올림 수) 문
자를 각각 할당하여 표 IV-4에 반가산기 진리표를 나타내었다.

표 Ⅳ-4 입력 출력
반가산기 진리표 반가산기
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

그림 Ⅳ-19는 반가산기의 진리표 Ⅳ-4을 카르노 도에 나타낸 것이다. 그림


Ⅳ-19의 카르노 도로부터 S와 C의 논리식을 구하면 아래와 같다.

S= -
AB +A-
B =A⊕B
C=AB
그림 Ⅳ-20의 ⒜는 위의 두 식을 2입력 AND 게이트와 2입력 XOR 게이트로
구성시킨 반가산기의 논리 회로도이고, ⒝는 반가산기의 블록도이다. 이러한
반가산기는 1비트의 2진수나 LSB(최하위 자리 비트)의 덧셈 연산만을 수행할
수 있다.

B B A
0 1 0 1 S(Sum)
A A B A S(Sum)
반가산기
0 1 0
(HA)
B C(Carry)
1 1 1 1 C(Carry)

⒜S ⒝C ⒜ 회로 ⒝ 블록도
그림 Ⅳ-19 그림 Ⅳ-20
반가산기의 카르노 도 표현 반가산기의 회로와 블록도

107
조합 논리 회로 / 가산기와 감산기

2 전가산기

전가산기(full adder:FA)는 바로 전에 생성된 자리올림 수와 현재의 2비트


를 덧셈하는 가산기다.

전가산기가 전가산기란 최하위 비트를


무엇인가요? 제외한 나머지 비트를 더하는 디지털
회로입니다.
FA HA
↓↓ 전가산기는 하위 비트에서 계산된
1
1 1 자리올림 수(carry in),
+ 0 1 현재 비트에서 계산된
자리올림 수(carry out),
1 0 0
합(sum)의 3가지로 구성

표 Ⅳ-5 입력 출력 따라서, 전가산기의 진리표에서 A와 B


전가산기의 진리표
A B Ci S CO 로 표시된 두 입력 변수들은 합해져야
0 0 0 0 0 할 현재 위치의 비트이며, Ci 로 표시된
0 0 1 1 0 입력 변수는 바로 전 비트 단에서 발생
0 1 0 1 0 된 자리올림 수이다.
0 1 1 0 1
두 출력 변수들의 합은 S로 자리올림
1 0 0 1 0
수는 C0(출력 캐리)로 표시하였다. 그림
1 0 1 0 1
Ⅳ-21은 표 Ⅳ-5의 진리표를 이용하여 합
1 1 0 0 1
S와 자리올림 수 C0의 간소화된 논리식
1 1 1 1 1
을 구하기 위해서 3변수(입력 변수 A,
B, Ci ) 카르노 도로 나타낸 것이다.
그림 Ⅳ-21의 카르노 도로부터 S와 C0의 논리 함수를 곱의 합 형식으로 구하면
-- - - --
S= A B Ci + AB Ci +A B Ci +ABCi
- - - --
S=(AB+AB) Ci +(A B +AB)Ci

S=(A⊕B) Ci +(A⊕B)Ci
S=(A⊕B)⊕Ci

그림 Ⅳ-21 BCi BCi


전가산기의 카르노 도 표현 A 00 01 11 10 A 00 01 11 10

0 0 1 0 1 0 0 0 1 0

1 1 0 1 0 1 0 1 1 1

⒜S ⒝ C0

108
조합 논리 회로 / 가산기와 감산기

그림 Ⅳ-22 A
반가산기와 전가산기 B
S
Ci A S
전가산기
B
Ci (FA) CO
CO

⒜ 전가산기의 회로도 ⒝ 전가산기의 블록도

A A C
HA CO
B A C
B S
HA
Ci B S S

⒞ 전가산기의 구성

가 되며 C0는 아래와 같은 식으로도 나타낸다.


C0=AB+(A⊕B)Ci =AB+ACi+BCi
그림 Ⅳ-22의 ⒜는 전가산기의 회로도이고, ⒝는 블록도이며, ⒞와 같이 전가
산기 회로는 2개의 반가산기와 1개의 OR 게이트로 구성할 수도 있다.

2. 감산기
2진수 A와 B를 감산하는 회로를 감산기라 하며, 계산기를 구성하는 중요한
회로의 하나로 다음과 같은 종류가 있다.
[1] 2개의 2진수를 감산하는 반감산기

[2] 빌림도 포함하여 1비트로 이루어진 2진수를 감산하는 전감산기

[3] n비트로 이루어진 2개의 2진수의 감산 회로

반감산기는 최하위 비트 2진수


뺄셈으로서 차와 자리빌림으로 구성됩니다.
00 10 10
- 00 - 00 - 10
00 10 00 ← 차(D:difference bit)
↱ 10 ← 자리빌림(b:borrow bit)
00 1 00
- 10 - 1 10
?0 10 → 차(D:difference bit)

109
조합 논리 회로 / 가산기와 감산기

1 반감산기

반감산기(half subtracter:HS)는 2비트의 뺄셈을 수행하는 조합 논리 회로


로서 A는 피감수, B는 감수로 나타낼 때에 A-B를 수행하여 그 차와 1을 빌려
왔는지의 여부를 나타내는 출력을 가진다. 따라서 반감산기는 2개의 출력이 필
요하며, 하나는 차를 나타내는 D로 표시하고 다른 하나는 앞 위치의 비트로부
터 1을 빌려왔는지의 여부를 나타내는 빌림에 대한 b로 나타낸다.

표 Ⅳ-6
반감산기의 진리표와 카르노 도를 표
입력 출력
반감산기의 진리표 Ⅳ-6과 그림 Ⅳ-23에 나타내었다. 그림 Ⅳ-
A B D b
23의 카르노 도로부터(또는 진리표) 차
0 0 0 0
D와 빌림 수 b의 불 대수를 구하면 아래
0 1 1 1
와 같다.
1 0 1 0
- - -
D= AB+AB=A⊕B b= AB
1 1 0 0
그림 Ⅳ-24의 ⒜는 위의 식에서 변수 D
와 b를 구하기 위해서 2입력 AND와 NOT 및 2입력 XOR 게이트로 구성시킨
반감산기의 논리 회로도이고, ⒝는 반감산기의 블록도이다. 이러한 반감산기는
1비트의 2진수나 LSB의 감산만을 수행할 수 있다.

그림 Ⅳ-23 B B
0 1 0 1
A A
반감산기의 카르노 도
0 1 0 1

1 1 1

⒜D ⒝b

그림 Ⅳ-24 A
반감산기의 회로와 블록도 B
D
A D
반감산기
(HS)
B b
b

⒜ 반감산기의 회로도 ⒝ 반감산기의 블록도

2 전감산기

전감산기(full subtracter:FS)는 바로 아래단의 비트에 빌려 준 1을 고려하


여 두 비트의 뺄셈을 수행하는 조합 논리 회로이며, 3개의 입력과 2개의 출력
을 가진다. 입력 변수 A, B, Bi 는 피감수, 감수, 바로 아랫단의 비트에 빌려 준
빌림 수를 나타내고 출력 변수 D와 B0는 현 위치의 뺄셈에서의 차와 빌림을
표시한다.

110
조합 논리 회로 / 가산기와 감산기

전감산기는 하위 비트에 빌려 준 빌림 수와 현재 비트의


빌림 수 및 차로 구성되고 최하위 비트를 제외한 비트의
계산에 사용됩니다.
FS HS
↓ ↓ ↱ 10 → 하위 비트의 빌림 수:B i

1 00 1 00

-1 10 - 1 10
? ?0 10 → 차:

↱ 10000
→ 현재 비트의 빌림 수:B O

1 0 00

-- 1 x0
10000
→ 차:D

표 Ⅳ-7 입력 출력
전감산기의 진리표
A B Bi D BO

0 0 0 0 0

0 0 1 1 1

0 1 0 1 1

0 1 1 0 1

1 0 0 1 0

1 0 1 0 0

1 1 0 0 0

1 1 1 1 1

그림 Ⅳ-25 BBi BBi


전감산기의 카르노 도 표현 A 00 01 11 10 A 00 01 11 10

0 1 1 0 1 1 1

1 1 1 1 1

⒜D ⒝ B0

표 Ⅳ-7은 전감산기의 진리표이며, 그림 Ⅳ-25는 전감산기의 진리표를 3변수


카르노 도에 나타낸 것이다.

111
조합 논리 회로 / 조합 논리 회로 설계

그림 Ⅳ-25의 카르노 도로부터 D와 BO의 논리 함수를 곱의 합 형식으로 구


하면,
-- - - --
D=A B Bi + AB Bi +A B Bi +ABBi
- - - --
=(AB+A B) Bi +(A B +AB)Bi

=(A⊕B) Bi +(A⊕B)Bi
=(A⊕B)⊕Bi
-- - - -
BO=A B Bi + ABBi + ABBi +ABBi
-- - -
=( A B +AB)Bi + AB (Bi +Bi )
-- -
=Bi (A B +AB)+ AB

=Bi (A⊕B)+ AB
- -
또는 BO=AB+ ABi +BBi
가 된다. 그림 Ⅳ-26의 ⒜는 전감산기의 회로도이고, ⒝는 전가산기의 블록도
이며, ⒞는 2개의 반감산기와 1개의 NOT, 1개의 OR 게이트로 구성된 전감산
기이다.

HS
그림 Ⅳ-26
A HS
전감산기와 구성도 B
D
Bi
A 전감산기 D
B (FS)
Bi BO
BO

⒜ 전감산기의 회로도 ⒝ 전감산기의 블록도

A A b
HS BO
B A b
B D
HS
Bi B D D

⒞ 반감산기로 구성한 전감산기

읽을거리

DIP 스위치와 푸시 버튼 스위치 및 선택 스위치에 대하여 알아봅시다.


일반적으로, DIP 스위치는 스위치를 아래위로 밀거나 당겨서 on 또는 off 상태로 만들 수 있으
며 푸시 버튼 스위치는 스위치를 밑으로 한 번 누르면 on 두 번 누르면 off 상태로 변한다. 그리
고 선택 스위치는 일극 일출력(single pole single through:SPST)이나 일극 이출력(single pole
double through:SPDT) 등이 있으며, 그림 Ⅳ-27과 같이 표시되고 선택할 수 있다.

112
조합 논리 회로 / 조합 논리 회로 설계

그러나 DIP 스위치나 푸시 버튼 스위치 및 선택 스위치는 간단히 선으로 연결하거나 개방시킴


으로써 대치할 수 있다.

SW PUSHBUTTO

SW DIP-2

SW SPST SW SPDT

그림 Ⅳ-27스스위치의 종류

실습 과제 Ⅳ-1 전가산기와 전감산기 회로 실습

사용 재료 명 칭 규 격 수 량

IC(XOR 게이트) 7486 1

IC(AND 게이트) 7408 1

IC(NOT 게이트) 7404 1

IC(OR 게이트) 7432 1

LED(발광 다이오드) 적색 f5 2

SWITCH DIP-3 1

배선 0.6mm 0.5m

330W 2
저항
4.7kW 3

실습 기기 명 칭 규 격 수 량

디지털 트레이너 IC 보드 내장 1

전원 공급기 DC 20V 이하 1

안전 및 유의 사항 1. 전원 +5V 및 GND가 서로 접촉되지 않도록 주의한다.


2. 배선을 효과적으로 한다.
3. TTL을 사용할 때 전원 전압이 5V를 넘지 않게 한다.

113
조합 논리 회로 / 가산기와 감산기

실습 순서 사용 재료에 적용된 부품을 준비한 다음 그림 Ⅳ-28의 전가산기와 전감산


기 회로도를 보면서 제작한다.
IC를 일정한 간격으로 유지하면서 배선이 최대한 짧게 연결될 수 있도록 배
치한다.

그림 Ⅳ-28 VCC 5V
전가산기와 전감산기 회로
4.7k
A
B
7486
7486

Ci
6
5
4

7408
7432

CO S
1
2
3

7408
330 330

⒜ 전가산기

VCC 5V

4.7k
A
B
7486
7486

Bi 7404
6
5
4

7408
7432
7404
BO D
1
2
3

7408
330 330

⒝ 전감산기

IC의 GND를 보드판의 GND에 연결한다.


IC의 VCC 단자를 +5V에 연결한다.
각 부분들의 단자를 서로 연결한 다음 회로도에 연결한 부품을 표시한다.
각 부품들의 단자가 모두 연결되었는지 회로도와 비교한다.
전원을 공급해 준다.
전가산기의 입력 스위치를 on과 off로 전환하여 입력 A, B, Ci을 000부터
111까지 입력하여 출력 S와 CO의 LED 출력을 확인하여 표 Ⅳ-8에 기록한다.

114
조합 논리 회로 / 가산기와 감산기

전감산기의 입력 스위치를 on과 off로 전환하여 입력 A, B, Bi을 000부터


111까지 입력하여 출력 D, BO을 LED 출력으로 점검하여 표 Ⅳ-9에 기록한
다.
적색 LED가 켜지면 출력이 1이고 꺼지면 0이다.
표 Ⅳ-8참전가산기 결과표 표 Ⅳ-9참전감산기 결과표
결과 정리
입 력 출 력 입 력 출 력

A B Ci S CO A B Bi D BO
0 0 0 0 0 0
0 0 1 0 0 1
0 1 0 0 1 0
0 1 1 0 1 1
1 0 0 1 0 0
1 0 1 1 0 1
1 1 0 1 1 0
1 1 1 1 1 1

심화 과제 1. 1개의 반 가산기와 2개의 전가산기로 구성된 가산기를 설계하여 3비트 데이


터 A2, A1, A0와 B2, B1, B0를 가산하여 보자.
2. 가산기와 감산기 전용 IC에는 어떤 것들이 있는지 알아보자.

115
3 비교기
학습 목표 1. 디지털 데이터로 된 두 수의 대소 비교를 설명할 수 있다.
2. 반비교기와 전비교기를 이해하고 설계할 수 있다.
3. n비트 비교기에 대하여 설명할 수 있다.

두 수의 비교기(magnitude comparator)는 한 수가 다
디지털 회로로 른 수보다 큰지, 작은지 또는 같은지를 결정하는 조합 논
비교기는
리 회로로서 2진수의 입력 A, B의 크기를 비교하는 회로
어떻게 구성할까?
를 2진 비교기라 하며, 두 입력 수 A와 B를 비교하여
A>B, A=B, A<B를 판정하는 회로로서 다음과 같은
종류로 나눈다.

[1] 1비트만으로 이루어지는 2개의 수 A와 B를


비교하는 회로인 반 비교기

[2] 하위 자릿수까지의 비교 판정 결과도 포함하는 1비트로 이루어진


2개의 수 A와 B의 비교 회로인 전비교기

[3] n비트로 이루어진 2개의 수 A와 B를 비교하는 n비트 비교기

1. 반비교기
n개의 입력 신호가 일치되었는지 그렇지 않은지를 검출하는 회로를 일치 회
로라 한다. 1비트의 일치 회로는 1비트 크기 비교기로 사용되며 두 입력 A, B
가 모두‘1’또는 모두‘0’
으로 일치하였을 때 출력이‘1’
이 되는 회로이다.
이것의 진리표는 표 Ⅳ-10과 같고 카르노 도는 그림 Ⅳ-29와 같고, 1의 값인
최소항들은 대각선으로 분포되어 있으므로 변수가 소거되지 않는다.
표 Ⅳ-10에서 출력이 1인 것을 불 대수로 표현하면 아래와 같고, 두 수의 크
표 Ⅳ-10 1비트 일치 회로 진리표 입력 출력

A B A=B B
0 1
A
0 0 1
0 1 0
0 1 0

1 0 0 1 0 1

1 1 1
그림 Ⅳ-29 일치 회로 카르노 도

116
조합 논리 회로 / 비교기

표 Ⅳ-11 A>B인 경우의 진리표 표 Ⅳ-12 A<B인 경우의 진리표

입력 출력 입력 출력

A B A>B A B A<B

0 0 0 0 0 0

0 1 0 0 1 1

1 0 1 1 0 0

1 1 0 1 1 0

기가 같기 때문에 E(equal)라 하자.


-- - -
E=A B+AB=+(A⊕B)= AB+AB
위의 식 E에 대한 회로는 그림 Ⅳ-30에 나타내었다. 입력이 A, B인 두 수의
크기를 비교해 보자. A가 B보다 큰 경우의 진리표는 다음 표 Ⅳ-11과 같다. 표
Ⅳ-11의 진리표를 불 대수로 표현하면 아래와 같고, 이것을 H(high)라 하자.

H=AB
위의 식 H에 대한 회로는 그림 Ⅳ-30에 나타내었다. 마지막으로, 입력이 A,
B인 두 수의 크기가 A<B인 경우의 진리표을 표 Ⅳ-12에 나타내었다. 표 Ⅳ-
12의 진리표를 불 대수로 표현하면 아래와 같고 이것을 L(low)이라 하자.

L= AB
위의 식 L과 H 및 E에 대한 회로는 그림 Ⅳ-30에 나타내었다.

그림 Ⅳ-30 반비교기

반비교기의 블록도와 회로 (HC)

A H(A>B)

E(A=B)

B L(A<B)

⒜ 반비교기 블록도

A
E
B

⒝ 반비교기 회로

위의 회로에서 입력 A, B에 임의 데이터를 입력하여 H가 1이면 A가 B보다


큰 수이고, E가 1이면 A와 B는 크기가 같으며, L이 1이면 A가 B보다 적은
수를 의미한다.

117
조합 논리 회로 / 비교기

2. 전비교기
전비교기는 하위 자릿수까지의 비교 판정 결과도 포함하는 1비트로 이루어
진 2개의 수 A와 B의 비교 회로를 전비교기라고 한다. 반비교기에서 비교 결
과를 H, E, L로 표현했지만 여기서는 G(greater), Z(zero), S(small)로 표기하
자. 전비교기(full comparator)에서 A>B인 경우인 Gi+1의 진리표는 표 Ⅳ-13
이고 카르노 도는 그림 Ⅳ-31과 같다.
표 Ⅳ-13에서 Gi+1가 1이라는 것은 현재의 비교 데이터 Ai와 Bi및 Gi를 사용
하여 비교된 결과가 크다는 것을 의미한다.

표 Ⅳ-13 Bi G i
Ai Bi Gi Gi+1
Ai 00 01 11 10
Gi+1의 진리표
0 0 1 1
0 0 1 0 0
0 1 × 0

1 0 × 1
1 1 1 1 0
1 1 1 1

그림 Ⅳ-31 Gi+1의 카르노 도

표 Ⅳ-13에서 A i와 B i는 현재의 입력 데이터이고 G i는 하위 비트의 비교기로


계산된 것이다. Gi 가 1이라는 것은 하위 A i-1와 B i-1 비트의 비교값이 A i-1가 더
크다(A i-1>B i-1)는 것을 의미하며 가산기의 자리올림 수와 같다. 그리고 표
IV-13에서 현재의 입력 데이터를 사용하여 크기를 비교할 때 G i가‘×’
된 곳
은 무정의 항으로서 어떤 값일지라도 G i+1의 결과에 영향을 주지 못함을 나타
낸다. G i+1이 1이 되는 것은 A i=1, B i=0 일 때 또는 A i=B i일 경우에는 G i=1
일 때로서 이것의 대수식은 아래와 같고, 회로도는 그림 Ⅳ-34와 같다.
-- -
Gi+1=AiBiGi+AiBi+AiBi Gi=AiBi+(Ai ⊕Bi)Gi
- - -
=AiBi+(AiBi+AiBi)Gi
A와 B의 비교 결과가 같은 경우로서 Zi+1의 결과에 대한 진리표는 표 Ⅳ-14
와 같고 카르노 도는 그림 Ⅳ-32와 같다.
표 Ⅳ-14에서 Zi는 하위 비트에서 비교된 결과가 같다(Ai-1=Bi-1)는 것을 의
미하고 Zi+1은 A i Bi Zi을 입력으로 사용하여 비교된 결과를 의미한다. Zi+1이 1

표 Ⅳ-14 Ai Bi Zi Zi+1 Bi Zi
Zi+1 의 진리표 00 01 11 10
Ai
0 0 1 1
0 0 1 0 0
0 1 × 0
1 0 0 1 0
1 0 × 0

1 1 1 1
그림 Ⅳ-32 Zi+1 의 카르노 도

118
조합 논리 회로 / 비교기

표 Ⅳ-15 Ai Bi Si Si+1 B i Si
00 01 11 10
Si+1 의 진리표 Ai
0 0 1 1
0 0 1 1 1
0 1 × 1
1 0 0 1 0
1 0 × 0

1 1 1 1 그림 Ⅳ-33 Si+1의 카르노 도

이 되는 것은 A i=Bi일 경우에 Zi=1일 때로서 이것의 대수식은 아래와 같으


며, 회로는 그림 Ⅳ-34와 같다.
--- -- - -
Zi+1=AiBiZi+AiBiZi=(AiBi+AiBi)Zi=(AiBi+A iBi)Zi
비교 결과가 A가 B보다 작은 경우인 A<B인 S i+1의 진리표는 표 Ⅳ-15과
같고 카르노 도는 그림 Ⅳ-33과 같다.
표 Ⅳ-15에서 S i는 하위 비트의 비교기로 계산된 것으로서 하위 Ai-1와 Bi-1
비트의 비교값이 A i-1가 Bi-1보다 더 작다(A i-1<Bi-1)는 것을 의미하며 Si+1이
1이 되는 것은 Ai=0, Bi=1일 때 또는 A i=Bi일 경우에는 Si=1일 때로서 이
것의 대수식은 아래와 같고, 이것에 대한 회로와 전비교기의 블록도는 그림
Ⅳ-34와 같다.

그림 Ⅳ-34 Ai
전비교기의 블록도와 회로 Bi 전비교기

Gi G1 G0 G i+1

Zi Z1 Z0 Zi+1

Si S1 S0 Si+1

⒜ 전비교기의 블록도

Ai

Bi

G i+1
Gi

Zi+1
Zi

Si Si+1

⒝ 전비교기의 회로

119
조합 논리 회로 / 비교기

-- - - --
S i+1=AiBi Si+ AiBi+AiBiSi=AiBi+(AiBi+AiBi)S i
- - -
S i+1=AiBi+(A iBi+A i Bi)Si
블록도에서 G1 Z1 S1은 하위 비트에서 비교된 결과를 의미하고 G0 Z0 S 0(G i+1
Z i+1 S i+1)는 비교 데이터 Ai와 Bi 및 G1 Z1 S1(Gi Zi Si)를 사용하여 비교된
결과를 의미한다.

3. n비트 비교기
전비교기 4개를 조합한 그림 Ⅳ-35의 블록도를 4비트 비교기라고 하며 n비트
로 구성된 비교 회로는 n비트 비교기라고 한다.
4비트 비교기인 그림 Ⅳ-35의 블록도에서 최하위 자리 비교기의 G, Z, S 입
력을 각각 0, 1, 0에 설정해 두면 첫째 번 단의 전비교기는 입력 A0와 B0가 입
력되더라도 아무런 영향을 주지 않는 반비교기가 된다. 따라서, 첫째 단의 전비
교기 입력에 의하여 비교된 결과가 다음 단으로 전달되어 A1 및 B1 데이터까
지 비교한다. 이 결과가 상위 단으로 전달되어 A3와 B3 데이터까지 비교하고
이 결과가 다시 최상위 전비교기의 G4, Z4, S4에 영향을 주어 전체가 비교된다.
실제 4비트 비교기인 74LS85는 그림 Ⅳ-36에서 15, 13, 12, 10번 핀은 A의 데
이터 A3A2A1A0을 입력하며 1, 14, 11, 9번 핀은 B의 데이터 B3B2B1B0을 입력한
다. 비교된 데이터의 결과는 5, 6, 7번 핀으로 출력된다.

그림 Ⅳ-35 FC FC FC FC

4비트 데이터의 비교 회로 A0 A1 A2 A3
블록도
B0 B1 B2 B3

0 G1 G0 G4

1 Z1 Z0 Z4

0 S1 S0 S4

그림 Ⅳ-36
B3 1 16 VCC
74LS85 4비트 비교기
B3
Ai<Bi 2 Ai<Bi A3 15 A3

하위 Ai=Bi 3 Ai=Bi B2 14 B2
입력
Ai>Bi 4 Ai>Bi A2 13 A2

Ai>Bi 5 Ai>Bi A1 12 A1 비교 데이터

출력 Ai=Bi 6 Ai=Bi B1 11 B1

Ai<Bi 7 Ai<Bi A0 10 A0
B0
GND 8 9 B0

120
조합 논리 회로 / 비교기

4비트 비교기인
74LS85에서 2, 3, 4번 핀과
5, 6, 7번 핀의 역할은 2, 3, 4번 핀은 정답입니다.
무엇일까요? 하위 비트에서
비교된 결과를
나타내고 5, 6, 7번
핀은 4비트 데이터
A와 B의 결과를
출력합니다.

실습 과제 Ⅳ-2 4비트 비교기 회로 실습

사용 재료 명 칭 규 격 수 량

IC(비교기) 74LS85 1

LED(발광 다이오드) 적색 f5 3

SWITCH 푸시 버튼(선택 스위치) 8

배선 0.6mm 0.5m

실습 기기 명 칭 규 격 수 량

디지털 트레이너(브레드 보드) IC 보드 내장 1

전원 공급기 DC 20V 이하 1

안전 및 유의 사항 1. 실습에 적용된 각 부품을 확인한다.


2. 회로의 전원 단자인 VCC 및 GND가 서로 접촉되지 않도록 주의한다.
3. 전원의 스위치가 off되어 있는지 확인한다.
4. 입력 스위치가 ON이면 논리 1이고 off이면 논리 0으로 정의한다.

실습 순서 사용 재료에 적용된 부품을 준비한 다음 그림 Ⅳ-37의 비교기 회로를 디지


털 트레이너나 IC 보드에 구성한다.
각 부품들의 단자가 모두 연결되었는지 회로도와 비교한다.
IC의 GND와 VCC를 전원의 GND와 VCC에 연결한다..
전원의 스위치를 on한다.
비교기의 입력 스위치를 변화시켜 입력 A는 0101고정시켜 두고 입력 B를
차례로 1000, 0101, 0011로 입력하여 S, Z, G의 LED가 차례로 점등되었는지
확인한다. 차례로 점등되지 않으면 회로를 점검하여 수정한다.
입력 A, B를 표 Ⅳ-16의 내용으로 변화시키면서 출력 LED의 점등을 확인하
여 표에 결과를 작성한다. 적색 LED가 켜지면 출력이 1이고 꺼지면 0이다.

121
조합 논리 회로 / 비교기

그림 Ⅳ-37 VCC=5V

4비트 비교기 A0

U1
A1 10 16
A0 VCC
12
A1 GND 3
A2 13
A2
15
A3
A3 19
B0
11
B1
B0 14
B2
11
B3
12 S
B1 A 4<B4 A 0<B0 7
13 6
A 4=B4 A 0=B0
14 5 Z
B2 A 4>B4 A 0>B0

74LS85 G
B3

표 Ⅳ-16참4비트 비교기의 결과표


결과 정리
순 A B
Ai<Bi Ai=Bi Ai>Bi G Z S
번 A3 A2 A1 A0 B3 B2 B1 B0

1 0 0 0 1 0 0 0 0 0 0 0
2 1 1 0 0 1 1 0 0 0 0 0
3 0 1 1 1 1 0 0 0 0 0 0
4 0 1 1 0 0 0 1 1 0 0 0
5 0 0 0 0 0 0 0 0 0 0 0
6 0 1 0 0 1 0 0 0 0 0 0
7 0 0 1 1 0 0 1 0 0 0 0

1 0 0
8 0 0 0 0 0 0 0 0 0 1 0

0 0 1

1 0 0
9 0 0 0 1 0 0 0 0 0 1 0

0 0 1

1 0 0
10 0 0 1 0 0 0 0 0 0 1 0

0 0 1

심화 과제 74LS85를 사용하여 8비트 데이터를 비교하는 회로를 구성하고 실습하여 보자.

122
4 해독기와 부호기
학습 목표 1. 해독기와 부호기의 원리와 구성을 설명할 수 있다.
2. 2 × 4, 3 × 8 해독기를 설계할 수 있다
3. 4 × 2, 8 × 3 부호기를 설계할 수 있다

해독기(decoder)는 2진수를 10진수로 변환하는 조합 논리 회로로써 n비트의


2진수를 입력하여 최대 2 n 비트로 구성된 정보를 출력한다. 부호기(encoder)는
해독기의 반대로서 10진수를 2진수로 변환하는 조합 논리 회로이며, 2n 비트로
구성된 정보를 입력하여 n비트의 2진수로 변환하여 출력한다.

1. 해독기
반대
해독기 부호기

decoder encoder

n개의 입력 2n개의 입력
2n개의 출력 n개의 출력

1비트 2진 해독기 2비트 BCD 부호기

x --
X(0) 0

0
-- X
X(1) 1

1×2 해독기 2×1 부호기

해독기는 n개의 입력으로부터 코드화된 2진 정보를 최대 2n개의 고유 출력


으로 만들어 주는 조합 논리 회로로서 n비트의 정보 중에서 사용되지 않거나
무정의 조건이 있으면 출력 수는 2n보다 적게 된다.
n×m 해독기란 n개의 입력과 m개의 출력을 가지는 해독기를 말하며, 이 때
m≦2 n이다.

1 2×4 해독기

2×4의 해독기의 동작을 생각하여 진리표를 구해 보면 표 Ⅳ-17과 같다. 이


때, 2개의 입력은 4개의 출력으로 해독되어지며, 각 출력은 2개 입력 변수들의
최소항 중 어느 하나를 나타내고, 이 진리표를 2변수 카르노 도에 표현하면 그
림 Ⅳ-38과 같다.

123
조합 논리 회로/ 해독기와 부호기

표 Ⅳ-17참
입 력 출 력
2×4 해독기의 진리표
A B D0 D1 D2 D3 B
0 1
A
0 0 1 0 0 0
0 D0 D1
0 1 0 1 0 0
1 D2 D3
1 0 0 0 1 0
1 1 0 0 0 1
그림 Ⅳ-38해2×4 해독기

그림 Ⅳ-38의 카르노 도에는 4개의 출력을 하나의 카르노 도에 나타낸 것이


다. 즉, 각 출력 변수는 배타적으로 동작하므로 D0, D1, D2, D3는 오직 한 번씩
만 1의 값을 가질 수 있다. 1값을 가지는 출력은 입력에 현재 제공된 2진수와
등가인 최소항을 나타낸다.
따라서, 위의 카르노 도로부터 각 출력의 불 대수를 구해 보면
-- B
D =A --
0

--B
D1 =A
D =AB --
2

D3=AB
이 되며, 이 불 대수를 조합 논리 회로로 그리면 그림 Ⅳ-39와 같이 된다.

그림 Ⅳ-39게 A B
2 × 4 해독기의 회로도와
블록도
D0

D1

D2 D0
A 2×4 D1
B 해독기 D2
D3
D3

⒜ 회로도 ⒝ 블록도

그림 Ⅳ-39 나타낸 해독기는 흔히 n to m 해독기 또는 n×m 해독기라 하며


n=2, m=4인 경우에 해당한다. 여기에서 m≦2 n이고, n개의 입력 변수에 대
해 2n개 또는 그보다 적은 수의 최소항을 만들어 내는 것이다.
그리고 여기에 해독기을 동작하게 하거나 선택할 수 있게 하는 인에이블
(enable) 기능을 부가한 인에이블 해독기가 실제로 사용된다.

124
조합 논리 회로/ 해독기와 부호기

읽을거리

그림 Ⅳ-40에서 1번 핀은 해독기가
1개의 IC 칩에 2개의 2×4 동작하게 하는 선택 핀, 2, 3번 핀은
해독기가 있는 74HC139에 입력 신호핀이며 4, 5, 6, 7은 입력
대하여 알아보자. 신호 데이터에 따라 출력되는 출력핀
이다. 즉, A, B의 데이터에 따라 출력
Y3 Y2 Y1 Y0가 결정된다.

그림 Ⅳ-40게
74HC139 2 × 4 해독기
En G 1 16 VCC

G
1A 2 A G 15 2G En


1B 3 B A 14 2A


1Y0 4 Y0 B 13 2B

1Y1 5 Y1 Y0 12 2Y0


1Y2 6 Y2 Y1 11 2Y1


1Y3 7 Y3 Y2 10 2Y2
Y3

GND 8 8 2Y3

74HC139

74HC139에서
9, 10, 11, 12, 13, 14, 15번 핀의
역할은 각각 무엇일까요?

15번 핀은 해독기 선택,


13, 14번 핀은 입력 신호, 9, 10,
11, 12번은 출력 핀이지요.

125
조합 논리 회로/ 해독기와 부호기

탐구 문제
74HC139에 대하여 설명된 URL을 검색하여 입출력 진리표를 알아보자.

2 3×8 해독기

3×8 해독기의 동작은 표 Ⅳ-18에 열거된 진리표와 같이 구성할 수 있으며,


이것의 각 불 대수는 다음과 같다.
표 Ⅳ-18게 D0 D1 D2 D3 D4 D5 D6 D7
x y z
3×8 해독기의 진리표
0 0 0 1 0 0 0 0 0 0 0

0 0 1 0 1 0 0 0 0 0 0

0 1 0 0 0 1 0 0 0 0 0

0 1 1 0 0 0 1 0 0 0 0

1 0 0 0 0 0 0 1 0 0 0

1 0 1 0 0 0 0 0 1 0 0

1 1 0 0 0 0 0 0 0 1 0

1 1 1 0 0 0 0 0 0 0 1

----
D0 =x y --
z ----
D1 =x yz
--yz
D2 =x -- --yz
D3 =x
----
D4 =xy z --z
D5 =xy
--
D6 =xyz D7 =xyz

위의 수식을 사용하여 조합 논리 회로를 설계하면 그림 Ⅳ-41의 3×8 해독


기 회로가 된다. 여기에서 3개의 입력이 8개의 출력으로 해독되는데, 각 출력은
AND 게이트를 통하여 3입력 변수에 대한 최소항의 하나를 나타내고 3개의 인
버터는 입력들의 보수를 제공한다.
그림 Ⅳ-41게
----
D0 =x y --
z
3 × 8 해독기

Z ----
D1 =x yz

--yz
D2 =x --

Y
--yz
D3 =x

----
D4 =xy z
X

--z
D5 =xy

--
D6 =xyz

D7 =xyz

126
조합 논리 회로/ 해독기와 부호기

2. 부호기
부호기는 입력 단자에 나타난 정보를 2진 코드로 변환하여 출력으로 내보내
는 회로로서 m개 입력의 각각에 대하여 m≦2n의 관계인 n비트의 2진 코드를
출력하는 조합 논리 회로이다. 부호기의 m개 입력 중에서 한 입력에‘1’
이인
가되면 부호기 회로는‘1’
로 나타난 입력 정보에 부여된 2진 코드값을 출력한
다. 부호기에는 일반적으로 2×1, 4×2, 8×3 등의 부호기가 있으며, 2×1 부
호기에서 2는 입력의 개수를 나타내고 1은 출력 개수를 의미한다.

1 2×1 부호기

2×1의 부호기의 경우 입력은 2개이며, 출력은 1개로서 1비트의 2진수를 만


들어 낸다. 이것의 진리표는 표 Ⅳ-19와 같고, 진리표로부터 출력 함수 Y=D1
가 되며 그림 Ⅳ-42와 같이 구성된다. 여기서 D0는 의미가 없으며 단지 D1이 1
일 때에만 Y의 출력이 1이다

그림 Ⅳ-42 D0 표 Ⅳ-19참2 × 1 부호기 진리표


2 × 1 부호기 D1 Y 입 력 출 력

D0 D1 Y

1 0 0

0 1 1

2 3×2 부호기

3×2의 부호기는 입력은 3개고 출력은 2개로서 2비트의 2진수를 만들어 낸


다. 이것의 진리표는 표 Ⅳ-20과 같고 출력 Y0 =D1, Y1 =D2가 되며, 이것은 그
림 Ⅳ-43과 같이 구성된다. 그림 Ⅳ-43에서 D0는 아무 곳에도 연결되어 있지 않
아서 D0 에 해당되는 출력은 모두‘0’
이다. D1이 1일 때에는 Y0 가 1이며 D2가 1
일 때에는 Y1이 1이다.

그림 Ⅳ-43 표 Ⅳ-20참3 × 2 부호기의 진리표


D0
3 × 2 부호기
입 력 출 력
D1 Y0
D0 D1 D2 Y1 Y0

1 0 0 0 0

0 1 0 0 1
D2 Y1
0 0 1 1 0

127
조합 논리 회로/ 해독기와 부호기

3 4×2 부호기

4×2 부호기는 4개의 입력과 부호화된 신호를 출력하는 2개의 출력을 가진


장치이다. 그림 Ⅳ-44 ⒜의 블록도에서 D0, D1, D2, D3은 입력 단자이고, Y0 , Y1은
출력 단자이며, 진리표는 그림 Ⅳ-44의 ⒝와 같으나 2개 이상의 입력이 동시에
1이 되지 않는 것으로 한다. 이 진리표에 의한 출력은 각각 다음과 같다.
Y0 =D1 +D3
Y1 =D2 +D3
위의 수식을 사용하여 그림 Ⅳ-44의 ⒞와 같은 회로를 구성할 수 있다.

그림 Ⅳ-44 D0 D1 D2 D3 Y0 Y1
4 × 2 부호기 D0 Y0
1 0 0 0 0 0
D1
0 1 0 0 1 0
D2
0 0 1 0 0 1
D3 Y1 0 0 0 1 1 1

⒜ 블록도 ⒝ 진리표

D3 D2 D1 D0

Y0

Y1

⒞ 회로

4 8×3 부호기

표 Ⅳ-21날 입 력 출 력 8×3의 부호기의 경우 입력은 8개이


8 × 3 부호기의 진리표
D0 D1 D2 D3 D4 D5 D6 D7 X Y Z 며, 출력은 3개로서 3비트의 2진수를
1 0 0 0 0 0 0 0 0 0 0 만들어 낸다. 표 Ⅳ-21의 진리표로부터
0 1 0 0 0 0 0 0 0 0 1 출력 함수식은
0 0 1 0 0 0 0 0 0 1 0 Z=D1 +D3 +D5 +D7
0 0 0 1 0 0 0 0 0 1 1 Y=D2 +D3 +D6 +D7
0 0 0 0 1 0 0 0 1 0 0 X=D4 +D5 +D6 +D7
0 0 0 0 0 1 0 0 1 0 1 가 되며, 그림 Ⅳ-45와 같이 3개의 OR
0 0 0 0 0 0 1 0 1 1 0 게이트로 구성된다.
0 0 0 0 0 0 0 1 1 1 1
표 Ⅳ-21에서 정의한 해독기의 제한

128
조합 논리 회로/ 해독기와 부호기

그림 Ⅳ-45 D0 D1 D2 D3 D4 D5 D6 D7

8 × 3 부호기

X=D4 +D5 +D6 +D7

Y=D2 +D3 +D6 +D7

Z=D1 +D3 +D5 +D7

은 언제나 1개의 입력만 1이 되어야 한다.


그림 Ⅳ-45에서 D0은 아무 곳에도 연결되어 있지 않아서 D0=1일 때 출력은 모
두‘0’
이다. 8개의 입력들 중 어떤 시점에서 어느 하나만‘1’
일 때에는 정상적으
로 동작하지만 그렇지 않은 경우 이 회로의 출력은 의미가 없어지게 된다.

읽을거리

그림 Ⅳ-46에서 5번 핀은 부호기가 동
8×3 부호기 IC인 74LS148에
대하여 알아봅시다. 작하게 하고, 10, 11, 12, 13, 1, 2, 3, 4번
핀은 8개의 입력 신호핀이며, 9, 7, 6번은
입력에 따라 부호화 출력이 나타난다.

그림 Ⅳ-46 출력 입력 출력
74LS148 8 × 3 부호기
Vcc EO GS 3 2 1 0 A0
16 15 14 13 12 11 10 9

EO GS 3 2 1 0

4 A0

5 6 7 E1 A2 A1

1 2 3 4 5 6 7 8

4 5 6 7 E1 A2 A1 GND

입력 출력

129
조합 논리 회로/ 해독기와 부호기

74LS148에서 14번
GS와 15번 EO의 역할은 14번 GS와 15번 EO도 입력 대응 출력으로서
무엇일까요? EI가 1일 때 입력이 0이 입력되면 GS는 0이 EO는
1이 출력됩니다. 단 EI가 논리 1이 입력되면
GS=EO=1입니다.

실습 과제 Ⅳ-3 8×3 부호기와 2×4 해독기 회로

사용 재료 명 칭 규 격 수 량

IC(2×4 해독기) 74HC139 1

IC(8×3 부호기) 74LSI148 1

LED(발광 다이오드) 적색 f5 7

스위치 SW MAG-SPDT 11

배선 0.6mm 0.5m

실습 기기 명 칭 규 격 수 량

디지털 트레이너 IC 보드 내장 1

전원 공급기 DC 20V 이하 1

안전 및 유의 사항 1. 실습에 사용할 각 부품의 이상 유무를 확인한다.


2. 회로의 전원 단자인 Vcc 및 GND가 서로 연결되지 않도록 주의한다.
3. 전원의 스위치가 off되어 있는지 확인한다
4. 스위치가 on(5V)이면 논리 1이고 off(0V)이면 논리 0으로 정의한다.

실습 순서 그림 Ⅳ-40과 그림 Ⅳ-46에서 제시된 핀 배열을 참고로 하여 그림 Ⅳ-47의


8×3 부호기 ⒜ 회로와 2×4 해독기와 ⒝ 회로를 구성한다.
각 부품의 단자가 모두 연결되었는지 회로도와 비교한다.
전원을 공급해 준다.

130
조합 논리 회로/ 해독기와 부호기

그림 Ⅳ-47게

16
U2 Vcc=5V
D0 10 9
8 × 3 부호기와 2 × 4 해독기 0 Vcc A0
11 7 X
1 A1
D1 12 6
2 A2
13 Y
3 14
D2 1 GS
4 Z
2
5
D3 3 15
6 EO
4
7
D4
74LS148

D5

GND
EI
D6

5
8
D7

EI

⒜ 8×3 부호기

Vcc=5V 16

2 4
Vcc

A A Y0 D0
3 5
B Y1 D1
B 8 6
GND Y2 D2
1 7
G Y3
G D3
74HC139
GND

⒝ 2×4 해독기

그림 Ⅳ-47의 ⒜ 8×3 부호기 스위치를 변화시켜 부호기의 입력 D7, D6,


D5, D4, D3, D2, D1, D0을 표 Ⅳ-22와 같이 변화시켜 출력부의 LED X Y
Z를 확인한 다음, 그 결과를 표 Ⅳ-22에 기입한다. 단, 스위치가 on이면
논리 1로 하고 off이면 논리 0으로 한다. 그리고 LED가 켜지면 논리 1이
고 꺼지면 논리 0이다.
⒝의 2×4 해독기 스위치를 변화시켜 입력 A, B를 표 Ⅳ-23과 같이 변화시
켜 출력부의 LED D3, D2, D1, D0를 확인한 다음 결과를 표 Ⅳ-24에 기입한
다. 단, 스위치가 on이면 논리 1로 하고 off이면 논리 0으로 한다. 그리고
LED가 켜지면 논리 1이고 꺼지면 논리 0이다.

131
조합 논리 회로/ 해독기와 부호기

결과 정리 입 력 출 력

EI D7 D6 D5 D4 D3 D2 D1 D0 X Y Z
표 Ⅳ-22게
1 1 1 1 1 1 1 1 0 1 1 1
8×3 부호기의 입출력 결과표
1 1 1 1 1 1 1 0 1 1 1 1

0 1 1 1 1 1 1 1 0 1 1 1

0 1 1 1 1 1 1 0 1

0 1 1 1 1 1 0 1 1 1 0 1

0 1 1 1 1 0 1 1 1

0 1 1 1 0 1 1 1 1 0 1 1

0 1 1 0 1 1 1 1 1

0 1 0 1 1 1 1 1 1

0 0 1 1 1 1 1 1 1 0 0 0

표 Ⅳ-23게
입 력 출 력
2×4 해독기의 결과표
G B A D3 D2 D1 D0
1 0 0

1 0 1

1 1 0

1 1 1

0 0 0

0 0 1

0 1 0

0 1 1

심화 과제 1. 74LS154의 입력과 출력을 적색 LED로 연결하여 구성된 4×16 해독기를 실


습하여 보자.
2. 74LS145을 사용하여 BCD-10진 부호기를 구성하여 보자.

132
5 멀티플렉서와 디멀티플렉서
학습 목표 1. 멀티플렉서와 디멀티플렉서의 구조와 동작 원리를 설명할 수 있다.
2. 4×1 멀티플렉서를 설계할 수 있다.
3. 1×4 디멀티플렉서를 설계할 수 있다.

멀티플렉서(multiplexer:MUX)는 여러 개의 입력선 중에서 하나를 선택하


여 단일 출력선으로 연결하는 조합 회로이다. 디멀티플렉서(demultiplexer:
DeMUX)는 이와는 반대로 하나의 입력선으로부터 정보를 받아 여러 개의 출
력 단자 중 하나의 출력선으로 정보를 출력하는 회로이다.

멀티플렉서 반대 디멀티플렉서
MUX DeMUX

a a

b b

입력 c c 출력
Y I
d d
출력 입력
e e
멀티플렉서와 디멀티플렉스

1. 멀티플렉서
멀티플렉서는 여러 개의 입력선 중에서 하나를 선택 멀티플렉서는 다중 입력 데이터를
하여 한 개의 출력선으로 연결하는 조합 회로
단일 출력하므로 데이터 셀렉터(data
selector)라고도 한다. 2n개의 입력 중
입 a 2×1

출 에서 하나를 선택하여 하나의 출력선
b MUX y

에 내보내기 위해서는 최소 n비트의
선택 입력이 필요하며, 이 n개의 선
S0(선택)
택 입력 조합에 의해 입력을 선택하
MUX 구성도
게 된다.

1 2×1 멀티플렉서

2×1 멀티플렉서 회로는 그림 Ⅳ-48과 같고 진리표는 표 Ⅳ-24와 같다.

133
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

그림 Ⅳ-48게 S
표 Ⅳ-24참2 × 1
2 × 1 멀티플렉서 멀티플렉서의 진리표

Y 선택 입력 출 력
I0
S Y
I1
0 I0

1 I1

그림 Ⅳ-48에서 I0와 I1은 2개의 입력 신호이고, S는 2개 입력 중 1개의 입력


을 선택하는 선택 입력이고, Y는 출력이다. 즉, 표 Ⅳ-24에서 입력 I0와 I1은 선
택 입력선 S가 0이면 I0가 선택되고, S가 1이면 I1이 선택되는 것을 나타낸다.

2 4×1 멀티플렉서

멀티플렉서의 크기는 데이터 입력선에 따라 결정되며, 데이터 입력선의 수가


2n이라면 데이터 선택 입력은 최소 n비트가 필요하며, 선택선의 비트 조합에
의하여 어느 입력이 선택될 것인지를 결정한다.

그림 Ⅳ-49게 S1 S0
4 × 1 멀티플렉서

I0

I1 I0
Y I1 4×1
Y
I2 멀티플렉서
I2 I3

I3 S1 S0

⒜ 4×1 멀티플렉서 ⒝ 블록도

그림 Ⅳ-49는 멀티플렉서를 나타내는 회로이며 ⒜는 4개의 입력선(22)과 2 개


의 선택 입력 및 1개의 출력으로 구성된 4×1 멀티플렉서 회로이고, ⒝는 블
록도이다. ⒜의 4×1 멀티플렉서에는 4개의 입력선 I0, I1, I2, I3가 각각 4개의
AND 게이트에 입력되고, 선택선 S0와 S1의 신호가 해독되어 하나의 특정
AND 게이트가 선택되어 그 AND 게이트에 연결된 입력이 출력된다. ⒜의 점
선 내부의 선택 신호를 AND 게이트
표 Ⅳ-25날 선택 입력 출 력 로 구성된 회로는 보통의 2×4 해독
4×1 멀티플렉서의 진리표
S S0 Y 기 회로와 동일하며, 이 부분은 S1, S0
0 0 I0 에 의해서 선택된 AND 게이트만 활
0 1 I1 성화시키고 나머지 AND 게이트들의
1 0 I2 출력은 모두‘0’
으로 만들어 준다.
1 1 I3
따라서, OR 게이트의 출력 Y는 S1,

134
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

S0에 의해서 선택된 최소항을 구성하는 AND 게이트에 연결된 입력 IX가 표


Ⅳ-25와 같이 나타나게 된다. 표 Ⅳ-25에서와 같이 만일 선택 신호 S1, S0에 0 1

이 입력되면 입력 I1이 출력 Y에 나타난다.

읽을거리 그림 Ⅳ- 50는 2개의 4×1 멀티플렉서가 있는


실제 4×1 멀티플렉서
74LS153의 핀 배치도이며, 1번 멀티플렉서에 대하
회로에 적용되는 74LS153에
여 알아보면 1번 핀은 멀티플렉서 선택, 2번과 14
대하여 알아봅시다.
번 핀은 입력 선택, 3번, 4번, 5번, 6번 핀은 데이
터 입력, 7번 핀은 출력으로 사용된다.

STROBE A DATA INPUTS OUTPUT


Vcc 2G SELECT 2Y

그림 Ⅳ-50 16 15 14 13 12 11 10 9

74LS153 4×1 멀티플렉서


2C3 2C2 2C1 2C0 2Y
2G -- --
BB AA

-- --
1G BB AA
1G3 1G2 1G1 1G0 1Y

1 2 3 4 5 6 7 8

STROBE B OUTPUT GND


1G SELECT DATA INPUTS 1Y

실제로 74LS153을 제조한 회사에서 제시하는 진리표는 다음과 같다.

표 Ⅳ-26 선택 입력 데이터 입력 스트로브 출력


74LS153의 진리표
B A C0 C1 C2 C3 G Y

X X X X X X H L

L L L X X X L L

L L H X X X L H

L H X L X X L L

L H X H X X L H

H L X X L X L L

H L X X H X L H

H H X X X L L L

H H X X X H L H

그리고 진리표에서 x는 don’t care, H는 high, L은 low를 의미하며, strobe가 H이면 출력이 나타나지 않으며 선

택 입력에 따라 출력이 결정된다.

135
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

2. 디멀티플렉서
디멀티플렉서는 하나의 입력선으로부터 데이터를 받 디멀티플렉서는, 하나의 입력선으
아 여러 개의 출력선 중의 한 곳으로 데이터를 출력
하는 조합 회로 로부터 데이터를 입력하여 2n개의 출
력선 중에서 n비트의 선택 신호에

I 1×2 a 의하여 선택된 하나의 출력선으로 데


DeMUX b 력 이터를 내보내는 논리 회로를 말하
며, 데이터 분배기(data distributor)
라고도 한다. 디멀티플렉서에서 2n개
S0(선택) 의 출력 중에서 하나의 출력을 선택
1×2 DeMUX 구성도
하기 위해서는 최소 n개의 선택선이
필요하게 된다.

1 1×4 디멀티플렉서

다음 표 Ⅳ-27은 1×4 디멀티플렉서의 진리표이다. 여기서, 선택되는 출력 D


와 선택 입력 S의 관계는
-- --
D0 =S -- --
1 S0, D1 =S1 S0, D2 =S1S0, D3 =S1 S0

가 된다.
표 Ⅳ-27날 선택 입력 출 력
1×4 디멀티플렉서의 진리표 이것을 이용한 논리 회로는 다음
S1 S0 D
그림 Ⅳ-51과 같고, I가 입력되면 선
0 0 D0
택 입력 S0, S1에 의해서 출력 D0, D1,
0 1 D1
D2, D3의 어느 한 출력에 입력 I가 출
1 0 D2
력된다.
1 1 D3

그림 Ⅳ-51게 S1 S0

1 × 4 디멀티플렉서 회로
D0
I D0 A 2×4 D1
B 해독기 D2
입력 D3
D1

E
D2
(제어 입력)

그림 Ⅳ-52날
D3
인에이블 2 × 4 해독기

대부분의 해독기들은 회로의 작동을 제어하기 위한 1개 이상의 인에이블 입


력을 가지고 있다.
그림 Ⅳ-52는 하나의 인에이블 입력을 가진 2×4 해독기의 블록도이며, 입력

136
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

E는 인에이블 단자로서 E=0일 때 해독기가 작동됨을 나타내고 있으며, 출력


의 작은 원들은 모든 출력들이 보수로 표현됨을 뜻한다.
따라서, 1개의 인에이블 입력을 가지는 해독기는 디멀티플렉서로 사용할 수
있으며, 하나의 입력선으로 들어오는 정보를 모든 출력선 중 하나를 선택하여
출력시키며, 출력선의 개수가 2n개라면 n개의 선택 제어선이 있어야 한다.

그림 Ⅳ-53게
D0 D0
디멀티플렉서 블록도와
회로도 1×4 D1 D1
E 디멀티 A
입 플렉서 D2 D2
B

D3 D3

E
A B

⒜ 블록도 ⒝ 회로도

표 Ⅳ-28날 E A B D0 D1 D2 D3 해독기를 이용하면 디멀티플렉서를


1×4 디멀티플렉서의 진리표
1 X X 1 1 1 1 쉽게 만들 수 있으며, 그림 Ⅳ-52의 2
0 0 0 0 1 1 1 ×4 해독기를 이용하여 구성한 1×4
0 0 1 1 0 1 1 디멀티플렉서를 그림 Ⅳ-53에 나타내었
0 1 0 1 1 0 1 다. 이것의 진리표는 표 Ⅳ-28과 같다.
0 1 1 1 1 1 0 해독기에서 E를 정보 입력선으로 A
B를 선택선으로 생각하면 디멀티플렉
서와 같은 기능을 수행한다.
그림 Ⅳ-52와 그림 Ⅳ-53의 블록도 구성은 동일하다. 각 입력 단자와 출력 단
자의 기호 표시만 새롭게 할당한 것을 확인할 수 있으며, 따라서‘인에이블 입
력을 가진 해독기’
와‘디멀티플렉서’
는 완전히 동일한 것이다. 즉, 해독기 입력
을 선택부로 이용하고 인에이블 단자를 입력 데이터로 이용한 것이다.

읽을거리

다음 그림 Ⅳ-54는 74HC139 2×4 해독기를 선택하여 동작 가능하게 하

해독기이며, 이것을 디멀티플렉서로 사 는 En(1번 핀) 핀이 디멀티플렉서에서는


용하려면 다음과 같이 핀을 고려해야 데이터 입력 핀으로 사용되고 나머지는
합니다.
해독기와 같이 사용한다.

137
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

데이터 입력
En G 1 16 VCC
데이터 입력
1A 2 A G G 15 2G En

력 B A
1B 3 14 2A

1Y0 4 Y0 B 13 2B 력

1Y0 5 Y1 Y0 12 2Y0

력 Y2 Y1
1Y0 6 11 2Y1

Y3 Y2 력
1Y0 7 Y3 10 2Y2

GND 8 9 2Y3

74HC139

그림 Ⅳ-54을74HC139을 사용한 디멀티플렉서

2 7-세그먼트 해독기

7-세그먼트 해독기는, 4비트 BCD 데이터를 입력받아서 7-세그먼트에 BCD


데이터에 해당하는 10진수를 표시하는 데 필요한 7비트 제어 신호를 만들어
주는 조합 논리 회로이다.
그림 Ⅳ-55는 10진수 0~9를 표현하는 방법을 나타낸 것이다.
a
그림 Ⅳ-55게
f g b
7-세그먼트의 10진수 표현
e d c

⒜0 ⒝1 ⒞2 ⒟3 ⒠4 ⒡5 ⒢6 ⒣7 ⒤8 ⒥9

표 Ⅳ-29는 10진 숫자를 표시하는 7-세그먼트의 각 세그먼트에 기호 a~g를


할당하고 숫자 0~9를 표시하기 위하여 활성화되어야 할 조건을 표로 나타낸
BCD 7-세그먼트 해독기의 진리표이다.

표 Ⅳ-29 BCD 제어 입력 BCD 제어 입력


7-세그먼트 해독기의 진리표 7-세그 7-세그
먼트 gfedcba --------------
g f e d c b a 먼트 gfedcba --
g --
f ------
ed c --
b a--
숫자 DCBA DCBA
(캐소드 공통) (애노드 공통) 숫자 (캐소드 공통) (애노드 공통)

0 0000 0111111 1000000 5 0101 1101101 0010010

1 0001 0000110 1111001 6 0110 1111100 0000011

2 0010 1011011 0100100 7 0111 0000111 1111000

3 0011 1001111 0110000 8 1000 1111111 0000000

4 0100 1100110 0011001 9 1001 1100111 0011000

138
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

여기서, 제어 입력이 gfedcba인 경우와 --


g --
f ------
ed c --
b a-- 수식인 경우는 7-세그
먼트가 캐소드 공통인 경우와 애노드 공통인 경우에 각각 적용된다.

7세그먼트의 구성에 대하여 알아보자.


세그먼트 LED 표시 소자에는 애노드 공통형과 캐소드 공통형이 있으며, 그
림 Ⅳ-56과 같이 구성되어 있다.

그림 Ⅳ-56게 a

7-세그먼트 LED 구성도


f g b

e d c

COM a b c d e f g dt
⒜ 세그먼트 LED 표시 ⒝ 캐소드 공통형
소자의 구조

10
9
8
7
6
COM
G
F

A
B
COM

DOT
D

C
E
COM a b c d e f g dt
1
2
3
4
5
⒞ 애노드 공통형 ⒟ FND의 핀 접속

그림 Ⅳ-56 ⒝의 캐소드 공통형은 숫자를 표시하기 위해서는 COM에 0V가


접속되고 LED 세그먼트에‘H’레벨, 즉‘1’
이 가해져야 된다. 그림 ⒞의 애노
드 공통형은 COM에 VCC가 접속되고 점등시키고자 하는 LED 세그먼트에‘L’
레벨, 즉‘0’
이 가해져야 된다.
BCD를 7세그먼트 표시 데이터로 변환해 주는 해독기인 7447에 대하여 알아
보자.
7447 7-세그먼트 해독기는 4비트 BCD 데이터를 입력하면 7-세그먼트 표시기
에 10진수를 표시하는 7비트 제어 신호를 만들어 주는 조합 논리 회로이다.
7447의 구성도는 그림 Ⅳ-57과 같다. 7447에서 LT(Lamp Test)가 0이면 7-세그
먼트의 전 세그먼트가 켜지게 하므로 세그먼트의 동작 여부를 판단하며 평상시
에는 1로 둔다. 그리고 BI/RBO는 0이면 세그먼트가 모두 꺼지며 평상시 1로
둔다. RBI는 종속 접속시 사용하며, BI/RBO와 RBI는 아래와 같이 여러 숫
자를 표시할 때에 사용한다.

139
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

그림 Ⅳ-57날 OUT PUTS


Vcc f g a b c d e
7447의 구성도
16 15 14 13 12 11 10 9

f g ab c d e
BI
B C LT RBO RBI D A

1 2 3 4 5 6 7 8
B C LAMP RB RB D A GND
TEST OUT IN
INPUTS INPUTS
PUT PUT

그림 Ⅳ-58게
7 세그먼트 7 세그먼트
74LS47의 종속 접속 방법

RBI
BI/RBO BI/RBO
74LS47 74LS47
0 1
RBI

실습 과제 Ⅳ-4 7-세그먼트 해독기 회로 실습

사용 재료 명 칭 규 격 수 량

IC(7-세그먼트 해독기) 7447 또는 74LS47 1

FND(7-세그먼트 표시기) 애노드 공통형 1

스위치 SW MAG-SPST 4

배선 0.6mm 0.5m

저항 330W 7

실습 기기 명 칭 규 격 수 량

디지털 트레이너 IC 보드 내장 1

전원 공급기 DC 20V 이하 1

안전 및 유의 사항 1. 실습에 사용할 각 부품의 이상 유무를 확인한다.


2. 회로의 입력 스위치가 VCC에 접속되지 않게 한다.
3. 입력 스위치가 off되어 있는지 확인한다.
4. 입력 스위치가 개방이면 논리 1이고 off(0V)이면 논리 0으로 정의한다.

140
조합 논리 회로/ 멀티플렉서와 디멀티플렉서

실습 순서 그림 Ⅳ-59와 같이 7-세그먼트 구동 회로를 구성한다.


입력 스위치 D0, D1, D2, D3 는 접지시켜 둔다.
전원을 공급해 준다.
그림 Ⅳ-59의 BCD 입력 스위치를 변화시켜 7-세그먼트에 표시되는 숫자를
표 Ⅳ-30에 기입하시오. 단, 입력 스위치가 5V에 연결되면 논리 1이고 0V
에 연결되면 논리 0이다. 출력은 high이면 논리 1이고 low이면 논리 0이다.

그림 Ⅳ-59게 VCC=5V
7-세그먼트 구동 회로

16
u3
u10

8
D0 7 13 7

COM
A a A
1 12 6
D1 B b B
2 11 4
C c C
6 10 2
D d D
D2 4 9 1
BI/RBO e E
5 15 9
RBI f F

COM
D3

DOT
3 GND 14 10
LT g G

5
74LS47 330W×7
8

그림 Ⅳ-59의 BCD 입력 스위치를 변화시켜 7-세그먼트에 표시되는 숫자에


따른 7447의 출력 abcdefg 의 논리값을 표 Ⅳ-30에 기록한다. 단, 입출력 스
위치는 번과 같이 작동하게 한다.

결과 정리 7-세그먼트 BCD 제어 입력 7-세그먼트 BCD 제어 입력


숫자 DCBA --
g --
f ------
ed c --
b a-- 숫자 DCBA --
g --
f ------
ed c --
b a--
표 Ⅳ-30게
0 0000 1000000 0101 0010010
7-세그먼트 해독기의 결과표
1 0001 6 0110

0010 0100100 7 0111 1111000

3 0011 0110000 1000 0000000


4 0100 9 1001 0011000

심화 과제 1. 74LS152을 사용하여 8×1 멀티플렉서를 구성하여 보자.


2. 74LS138을 사용하여 1×8 디멀티플렉서를 구성하여 보자.

141
6 병렬 가산기
학습 목표 1. 병렬 가산기의 동작 원리와 구성에 대하여 설명할 수 있다.
2. 4비트 병렬 가산기 7483에 대하여 설명할 수 있다.
3. 8비트 병렬 가산기을 구성할 수 있다.

가산기는 디지털 데이터로 된 두 수 A, B의 각 비트를 가산하는 것으로서


LSB를 합산하는 반가산기와 LSB를 제외한 비트들을 합산하는 전가산기가 있
다. 이러한 각 비트들을 반가산기와 전가산기를 사용하여 두 수를 합산하는 방
법으로는 병렬 가산기와 직렬 가산기가 있다. 여러 개의 비트로 구성되어 있는
2개의 값을 병렬로 합산하는 가산기를 병렬 가산기라 한다.

병렬 가산기
A 0A 0 01
+B 0B 0 +11
100

A1 B1 Cin A0 B0
0 1 1 1

Cout 가산기 가산기


Cout

S1 S0

1. 2비트 병렬 가산기
2개의 수 A와 B가 있을 때 A와 B는 2비트로 되어 있고, 이것들은 다음과
같이 구성된다고 하자.
A=A1A0 B=B1B0
디지털 가산기를 사용하여 A와 B를 합산하는 절차는 다음과 같다.

A0비트와 B0비트를 가산:A0 +B0:가산 결과 합 S0와 C0 발생

두 비트의 합은 S0라 하며 발생한 자리올림 수 C0는 상위단의 비트와 같이


가산되며, 이와 같이 LSB를 가산하는 디지털 회로를 반가산기라 한다.

A1와 B1 그리고 A0와 B0의 가산에서 발생한 C0을 가산:A1 +B1 +C0

142
조합 논리 회로/ 병렬 가산기

그림 Ⅳ-60게 A1 B1 A0 B0
2비트 병렬 가산기
A B Ci A B Ci

C0 S C0 S
FA C0 HA
C1
S1
S0

여기서, 가산된 합(S1)과 자리올림 수(C1)가 나타나며, 이것은 다시 다음 단


의 입력 Ci가 된다. 이와 같이 디지털 수를 가산할 때에 자리올림 수를 포함하
여 비트을 가산하는 디지털 회로를 전가산기라 한다
반가산기와 전가산기를 병렬로 접속한 2비트 병렬 가산기의 블록도는 그림
Ⅳ-60과 같다.

읽을거리

두 수 A는 01이고 B는 그림 Ⅳ-60의 2비트 병렬 가산기의 블록도에서


11일 때 이것을 합산하는 A와 B의 LSB의 두 비트를 합산하면, 즉 A + 0

것을 알아봅시다.
B =1+1이면 합 S =0이고 자리올림 수 C =1이
0 0 0

되며, 둘째 번 비트 A 과 B 을 자리올림 수(C =1) 1 1 0

와 같이 합산하면, 즉 A +B +C =0+1+1의 합 1 1 0

S =0이고 자리올림 수 C =1이 된다. 이 두 수의 2


1 1

비트 병렬 처리기에 의한 결과는 100이 된다. 그러


나 둘째 번 자리올림 수 C 은 아무런 의미가 없다. 따라서, 두 변수 A와 B의 대수적 합은 100이
1

지만 이 두 수의 2비트 병렬 처리기에 의한 합 S S 는 00이 된다. 1 0

병렬 가산기
A 1A 0 01
+B 1B 0 +11
100

A1 B1 Ci A0 B0
0 1 1 1

C1 가산기 가산기
(1)
C 0(1)
S1(0) S0(0)
1 00

자리올림 수 합

143
조합 논리 회로/ 병렬 가산기

2. 4비트 병렬 가산기
4비트 가산기는 다음과 같은 4비트로 구성된 두 수 A = A3A2A1A0와
B=B3B2B1B0를 가산하는 것이다. 이러한 두 수를 합산하는 블록도는 그림 Ⅳ-
61과 같고 절차는 다음과 같다.

그림 Ⅳ-61게 A3 B3 A2 B2 A1 B1 A0 B0
4비트 병렬 가산기의 블록도
A B Ci A B Ci A B Ci A B Ci

C0 S C0 S C0 S C0 S
C3 C2 C1 C0
FA FA FA HA
S4 S3 S2 S1 S0

A0비트와 B0비트를 가산:A0+B0:가산 결과 합 S0와 C0 발생


A1와 B1 그리고 A0와 B0의 가산에서 발생한 C0을 가산:A1+B1+C0
A2와 B2 그리고 A1과 B1의 가산에서 발생한 C1을 가산:A2+B2+C1
A3+B3+C2:가산 결과 합 S3 자리올림 수 C3

여기서, A3와 B3의 가산 결과 발생한 자리올림 수 C3은 상위단이 없으므로 S4


가 된다.

읽을거리
A는 1011이고 B는 0110인 병렬 가산기에서
A와 B를 계산하는 절차와 결과에 대하여 알아봅시다.

4비트 가산기
A 3A 2A 1A 0 1011
+B 3B 2B 1B 0 +0110
10001

A3 B3 Ci A2 B2 Ci A1 B1 Ci A0 B0 Ci
1 0 1 0 1 0 1 0

C 3(1) 가산기 가산기 가산기 가산기

C 2(1) C 1(1) C 0(0)

S3(0) S2(0) S1(0) S1(0)


1 0001

자리올림 수 합

144
조합 논리 회로/ 병렬 가산기

위의 두 변수 A와 B의 병렬 처리기의 가산에서 LSB의 가산은 1+0이므로 합 S 는 1이고 자리 0

올림 수 C 는 0이 된다. 둘째 번 비트 A 과 B 을 자리올림 수(C =0)와 같이 합산하면, 즉 A +


0 1 1 0 1

B +C =1+1+0의 합 S =0이 되고 자리올림 수 C =1이 된다. 셋째 번 비트를 가산하면, 즉


1 0 1 1

A +B +C =0+1+1을 합산하면 S =0가 되고 자리올림 수 C =1이 된다. 그리고 마지막으로 넷


2 2 1 2 2

째 번 비트을 가산하면, 즉 A +B +C =1+0+1을 합산하면 S =0가 되고 자리올림 수는 C =1


3 3 2 3 3

이지만 병렬 처리기에서는 의미가 없다. 따라서, 이 두 수를 더한 결과는 0001이 된다.

3. 실제 가산기 회로
그림 Ⅳ-62는 4비트 가산기 7483으로서 C0은 하위 비트에서 발생하는 자리올
림 수 입력이며 4비트만의 가산시 C0는 접지시킨다. C4는 4비트가 합산된 다음
의 마지막 자리올림 수이다.

그림 Ⅳ-62날 B4 S4 C4 C0 GND B1 A1 S1
7483의 구성도 16 15 14 13 12 11 10 9

S4 C4 C0 B1 A1
B4 S1
A4 A2
S3 A3 B3 S2 B2

1 2 3 4 5 6 7 8
A4 S3 A3 B3 VCC S2 B2 A2

그리고 S1S2S3S4는 변수 A와 B의 각 비트의 합의 결과를 나타낸다.


4비트 가산기인 7483을 사용하여 4비트 데이터 A=1011과 B=1010을 가산하
였을 때 출력 S1, S2, S3, S4와 자리올림 수 C4의 데이터에 대하여 알아보자.
입력 데이터 A와 B의 연산은 다음 수식과 같다.
C3 C2 C1
1 0 1 1
+ 1 0 1 0
1 0 1 0 1
↓ ↓ ↓ ↓ ↓
C4 S4 S3 S2 S1

따라서, 4비트 연산의 합 S=0 1 0 1이며 자리올림 수 C4 =1이 된다.


그림 Ⅳ-62를 2개 연결시키면 8비트 가산기가 되고, 3개 연결하면 12비트 가
산기가 된다. 이것을 이용하여 8비트를 연산하는 회로는 그림 Ⅳ-63과 같다. 그
림 Ⅳ-63에서, C0는 0V에 접지하였고 C4는 상위단의 자리올림 수 입력 C0에 연
결되었다.

145
조합 논리 회로/ 병렬 가산기

실습 과제 Ⅳ-5 8비트 병렬 가산기 회로 실습

사용 재료 명 칭 규 격 수 량

IC(4비트 가산기) 7483 2

LED(발광 다이오드) 적색 f5 10

스위치 DIP-8 2

배선 0.6mm 0.5m

330W 10개
저항
4.7kW 16개

실습 기기 명 칭 규 격 수 량

디지털 트레이너 IC 보드 내장 1

전원 공급기 DC 20V 이하 1

안전 및 유의 사항 1. 회로의 전원 단자인 +5V 및 GND가 서로 접촉되지 않도록 주의한다.


2. TTL을 사용할 때 전원 전압이 5V를 넘지 않게 한다.

실습 순서 사용 재료에 적용된 부품을 준비한 다음 그림 Ⅳ-63의 8비트 병렬 가산기


회로도를 보면서 제작한다.
U1은 하위 비트, U2는 상위 비트로 사용하므로 U1의 C4는 U2의 C0에 연결
한다.
DIP 스위치 S1은 U1에 DIP 스위치 S2는 U2에 연결한다.
U1의 C0는 GND에 연결한다.
가산기의 입력스위치를 on과 off로 전환하여 8비트 입력 A, B를 표 Ⅳ-31에
나열된 값으로 입력하여 출력 LED를 확인한다.
U2의 B1, B2, B3, B4는 8비트 데이터에서 상위 비트인 B5, B6, B7, B8로 바
뀌고 A1, A2, A3, A4는 A5, A6, A7, A8로 바꾸어야 한다.
입력에 따른 출력 S를 확인하여 표 Ⅳ-31에 기록한다.
출력 LED가 켜지면 1이고 꺼지면 0이다.
표 Ⅳ-31의 순번 6번부터는 가산할 데이터 A와 B를 임의로 입력하고 결과
를 기록한다.

146
조합 논리 회로/ 병렬 가산기

그림 Ⅳ-63게 Vcc=5V
8비트 병렬 가산기

S1
4.7k × 8 U1
330
S1 A1 10 9 S2
1 18 A2 8 A1 S1
S2 6
2 17 A3 3 A2 S3 2 330
3 16 A4 1 A3 S4 15 S3
4 15 A4
5 14 B1 11 B1 330
6 13 B2 7 B2 S4
7 12 B3 4 B3
8 11 B4 16 B4 330
9 10 13 14
C0 C4
SW DIP-9
74LS83A
S2 U2 S5
1 18 A5 10 9
2 17 A6 8 A1 S1 6 330
3 16 A7 3 A2 S2 2 S6
4 15 A8 1 A3 S3 15
5 14 A4 S4 330
15
6 13 B5 11 B1 S7
7 12 B6 7 B2
8 11 B7 4 B3 330
9 10 B8 16 B4 S8
SW DIP-9 14 330
C4
C8
74LS83A
330

4.7k × 8 Vcc=5V

결과 정리 순번 A B S C4 C8

1 10001000 11000011 01001011 0 1


표 Ⅳ-31게
8비트 가산기 결과표 2 00011000 10011111 10110111 1 0

3 10101011 10001000 00110011 1 1

4 01010101 10101010 11111111 0 0

5 10101010 10101000 01010010 1 1

10

심화 과제 74LS83을 사용하여 16비트 병렬 데이터를 가산하는 회로를 구성하여 보자.

147
7 코드 변환기
학습 목표 1. 코드 변환기의 종류와 용도에 대하여 설명할 수 있다.
2. BCD-3초과 코드 변환기를 설계할 수 있다.
3. BCD-3초과 코드 변환기를 실험하여 동작 원리에 대하여 설명할 수 있다.

임의 디지털 시스템에서 생성한 정보를 다른 디지털 시스템에 이용하기 위


해서는 두 시스템 사이에 코드 변환 회로가 있어야 한다.
코드 변환기는 두 시스템이 서로 양립할 수 있게 만드는 회로이다. 디지털
시스템에서 사용하는 코드 체계는 BCD, 3 초과 코드, 그레이 코드 등 매우 다
양하므로 이들 코드 간의 변환이 이루어져야 할 경우가 종종 있게 된다.

갑 코 을
갑 디지털 시스템의

출력을 을 디지털

시스템의 입력으로
디지털 출력 환 입력 디지털
사용할 때 필요
시스템 기 시스템

1. BCD-3 초과 코드 변환
BCD 코드는 인간이 비교적 쉽게 알아볼 수 있으나 계산기가 계산을 할 때
는 처리 절차가 어려워진다. 따라서, 3초과 코드는 연산 회로 즉 BCD 가산기와
감산기 회로 등에 사용되며, 3초과 코드는 자기 보수 코드이며 BCD 코드를 3
초과 코드로 변환하는 방법은 BCD 코드에 2진수의 3을 더하여 주면 된다.
3초과 코드의 원리의 예는 다음과 같습니다.
BCD 코드 + 0011 → 3 초과 코드
3초과 코드란?
0000 + 0011 → 0011
0
+3 3 0001 + 0011 → 0100
1
4
2
5 0010 + 0011 → 0101
3
4
6 BCD를 3 초과 코드로 변환하는 진리표를 작성하면 표

⋮ Ⅳ-32와 같다.

기본수 3초과 코드 각 코드는 10진수 한 자리를 나타내는 데 4비트를 사


기본수보다 3이 더 큰 코드 용하므로 코드 변환기는 4개의 입력 변수와 4개의 출력

148
조합 논리 회로 / 코드 변환기

표 Ⅳ-32 BCD-3초과 코드의 진리표 변수를 가진다. 입력 변수들은 A, B, C, D로 출력 변수들은 W, X,


BCD 코드 3초과 코드 Y, Z로 표현하였다. 카르노 도의 논리식은 표 Ⅳ-32의 진리표로부터
10진수
A B C D W X Y Z W, X, Y, Z가 1이 되는 최소항을 구해 보면 다음과 같다.
0 0 0 0 0 0 0 1 1 W(A, B, C, D)=S(5, 6, 7, 8, 9)
1 0 0 0 1 0 1 0 0 X(A, B, C, D)=S(1, 2, 3, 4, 9)
2 0 0 1 0 0 1 0 1 Y(A, B, C, D)=S(0, 3, 4, 7, 8)
3 0 0 1 1 0 1 1 0 Z(A, B, C, D)=S(0, 2, 4, 6, 8)
4 0 1 0 0 0 1 1 1 위의 각 식을 4변수 카르노 도로 표시하면 그림 Ⅳ-64가 된다. 이들
5 0 1 0 1 1 0 0 0 카르노 도에는 6개의 무정의 항이 있다. 즉, 1010부터 1111까지는
6 0 1 1 0 1 0 0 1
BCD 코드에서 사용하지 않으므로 이들을 무정의 항으로 처리한다.
7 0 1 1 1 1 0 1 0
그림 Ⅳ-64의 카르노 도로부터 W, X, Y, Z의 간소화된 출력 함수
8 1 0 0 0 1 0 1 1
의 논리식을 구하면 다음과 같다.
9 1 0 0 1 1 1 0 0

X=-
BC+-
BD+B-- B(C+D)+B
- -
그림 Ⅳ-64 CD= C-
D
W=A+BC+BD=A+B(C+D)
BCD - 3초과 코드 변환기의
-- -
카르노 도 CD BD CD BCD BD
00 01 11 10 00 01 11 10
AB AB

00 0 0 0 0 00 0 1 1 1 BC

01 0 1 1 1 BC 01 1 0 0 0

11 X X X X 11 X X X X

10 1 1 X X A 10 0 1 X X

⒜W ⒝X

Y=CD+-
C-
D=C◉ D Z=-
D


C-
D CD -
D
CD CD
00 01 11 10 00 01 11 10
AB AB
00 1 0 1 0 00 1 0 0 1

01 1 0 1 0 01 1 0 0 1

11 X X X X 11 X X X X

10 1 0 X X 10 1 0 X X

⒞Y ⒟Z

149
조합 논리 회로 / 코드 변환기

그림 Ⅳ-65 A B C D

BCD-3초과 코드 변환기

W=A+BC+BD=A+B(C+D)
X=-
BC+ -
BD+B-
C-
D= -
B(C+D)+B-
C-
D
Y=CD+ -
C-D=CD+C+D

Z= D
위의 각 출력 함수를 이용하여 논리 회로를 구성하면 그림 Ⅳ-65와 같으며
입력 변수 A, B, C, D에 BCD 데이터를 입력하면 W, X, Y, Z에 3초과 코드로
변환된 데이터가 나타난다.

2. 2진 코드-그레이 코드 변환기
그레이 코드(gray code)의 특징은 연속된 두 코드 중 오직 한 비트만 변화
하는 것으로 연속적인 변화량을 디지털 정보로 변환하는 경우에 발생하는 에
러를 쉽게 확인할 수 있게 된다. 그레이 코드는 언웨이티드 코드(unweighted
code)이며, 연산에는 부적합하지만 어떤 코드로부터 그 다음의 코드로 증가하
는 데에 하나의 비트만 바꾸면 되는 특성 때문에 데이터의 전송, 입출력 장치,
아날로그-디지털 변환기 및 다른 주변 장치 등에 많이 사용된다. BCD 코드를
그레이 코드로 변환하기 위해서 두 코드 간의 변환표를 그려 보면 표 Ⅳ-33과
같다.

표 Ⅳ-33의 진리표로부터
W, X, Y, Z의 불 함수를 구해 보면
다음과 같습니다.

W(A, B, C, D)=S(8, 9, 10, 11, 12, 13, 14, 15)


X(A, B, C, D)=S(4, 5, 6, 7, 8, 9, 10, 11)
Y(A, B, C, D)=S(2, 3, 4, 5, 10, 11, 12,13)
Z(A, B, C, D)=S(1, 2, 5, 6, 9, 10, 13, 14)

150
조합 논리 회로 / 코드 변환기

표 Ⅳ-33
2진 그레이 코드
2진 - 그레이코드의 진리표 10진수
A B C D W X Y Z

0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 0 0 0 1 1
3 0 0 1 1 0 0 1 0
4 0 1 0 0 0 1 1 0
5 0 1 0 1 0 1 1 1
6 0 1 1 0 0 1 0 1
7 0 1 1 1 0 1 0 0
8 1 0 0 0 1 1 0 0
9 1 0 0 1 1 1 0 1
10 1 0 1 0 1 1 1 1
11 1 0 1 1 1 1 1 0
12 1 1 0 0 1 0 1 0
13 1 1 0 1 1 0 1 1
14 1 1 1 0 1 0 0 1
15 1 1 1 1 1 0 0 0

표 Ⅳ-33의 진리표를 카르노 도에 나타내면 그림 Ⅳ-66과 같다.

그림 Ⅳ-66
W=A X=-
AB+A-
B=A⊕B
2진 - 그레이 코드 변환기의
카르노 도 CD CD
00 01 11 10 00 01 11 10
AB AB

00 0 0 0 0 00 0 0 0 0


01 0 0 0 0 01 1 1 1 1 AB

11 1 1 1 1 11 0 0 0 0

A-
B
10 1 1 1 1 A 10 1 1 1 1

⒜W ⒝X

Y=B- -
C+BC=B⊕C Z=C-
D+-
CD=C⊕D

CD B- -
C -
BC CD CD C-
D
AB 00 01 11 10 00 01 11 10
AB

00 0 0 1 1 00 0 1 0 1

01 1 1 0 0 01 0 1 0 1

11 1 1 0 0 11 0 1 0 1

10 0 0 1 1 10 0 1 0 1

⒞Y ⒟Z

151
조합 논리 회로 / 코드 변환기

그림 Ⅳ-66의 카르노 도로
부터 간소화된 출력 함수의 논리식을
구하면 다음과 같습니다.

W=A
X= -
AB+A-
B=A⊕B
Y=B-
C+ -
BC=B⊕C
- -
Z=CD+ CD=C⊕D

각 출력 함수를 이용하여 논리 회로를 구성하면 그림 Ⅳ-67과 같다.


그림 Ⅳ-67에서 입력 A, B, C, D에 2진 코드 1 0 1 1을 입력하면 출력 W,
X, Y, Z는 1 1 1 0 이 출력된다.
그림 Ⅳ-67 A B C D

2진 - 그레이 코드 변환기 W

3. 그레이 코드-2진 코드 변환기


그레이 코드를 2진 코드로 변환하기 위해서 두 코드 간의 변환표를 그려 보
면 표 Ⅳ-34와 같이 되며 진리표로부터 A, B, C, D의 불 함수를 구해 보면 다
음과 같다.
A(W, X, Y, Z)=S(8, 9, 10, 11, 12, 13, 14, 15)
B(W, X, Y, Z)=S(4, 5, 6, 7, 8, 12, 14, 15)
C(W, X, Y, Z)=S(2, 3, 6, 7, 9, 10, 14, 15)
D(W, X, Y, Z)=S(1, 3, 5, 7, 9, 11, 13, 15)

위의 각 함수를 카르노 도에 나타낸


그림 Ⅳ-68로부터 간소화된 출력 함수의
논리식을 구하면 다음과 같습니다.

A=W
B=W⊕X
C=W⊕X⊕Y
D=W⊕X⊕Y⊕Z

152
조합 논리 회로 / 코드 변환기

표 Ⅳ-34
그레이 그레이 코드 2진
그레이 - 2진 코드의 진리표 10진수
10진수 W X Y Z A B C D

0 0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1 1
3 0 0 1 1 0 0 1 0 2
2 0 0 1 0 0 0 1 1 3
6 0 1 1 0 0 1 0 0 4
7 0 1 1 1 0 1 0 1 5
5 0 1 0 1 0 1 1 0 6
4 0 1 0 0 0 1 1 1 7
12 1 1 0 0 1 0 0 0 8
13 1 1 0 1 1 0 0 1 9
15 1 1 1 1 1 0 1 0 10
14 1 1 1 0 1 0 1 1 11
10 1 0 1 0 1 1 0 0 12
11 1 0 1 1 1 1 0 1 13
9 1 0 0 1 1 1 1 0 14
8 1 0 0 0 1 1 1 1 15

그림 Ⅳ-68
A=W B=W⊕X
2진 - 그레이 코드 변환기의
카르노 도 YZ YZ
00 01 11 10 00 01 11 10
WX WX

00 0 0 0 0 00 0 0 0 0


WX
01 0 0 0 0 01 1 1 1 1

11 1 1 1 1 11 0 0 0 0
W-

W X

10 1 1 1 1 10 1 1 1 1

⒜A ⒝B

C=W⊕X⊕Y D=W⊕X⊕Y⊕Z

- - -
-XY

YZ WXY W YZ
WX 00 01 11 10 00 01 11 10
WX

00 0 0 1 1 00 0 1 0 1

01 1 1 0 0 01 1 0 1 0

WXY
11 0 0 1 1 11 0 1 0 1


---

WX Y
10 1 1 0 0 10 1 0 1 0

⒞C ⒟D

153
조합 논리 회로 / 코드 변환기

출력 함수 A, B, C, D를 이용하여 논리 회로를 구성하면 그림 Ⅳ-69와 같다.


그림 Ⅳ-69에서 그레이 코드의 입력 W, X, Y, Z가 1011이라면 2진 코드 A,
B, C, D는 1101이 된다.

그림 Ⅳ-69 W X Y Z

그레이 - 2진 코드 변환기 A

실습 과제 Ⅳ-6 BCD-3초과 코드 실습

사용 재료 명 칭 규 격 수 량

IC(AND 게이트) 7408 1

IC(OR 게이트) 7432 1

IC(NOT 게이트) 7404 1

LED(발광 다이오드) 적색 f5 4

SWITCH DIP-4 1

배선 0.6mm 0.5m

330W 4개
저항
4.7kW 4개

실습 기기 명 칭 규 격 수 량

디지털 트레이너 IC 보드 내장 1

전원 공급기 DC 20V 이하 1

154
조합 논리 회로 / 코드 변환기

안전 및 유의 사항 1. DIP-4 스위치의 각 스위치를 ON에 둔다.


2. TTL 사용시 전원 전압이 5V를 넘지 않게 한다.

실습 순서 그림 Ⅳ-70의 BCD-3초과 코드에 적용된 부품을 준비한 다음 회로도를 보


면서 제작한다.
IC를 적당한 간격으로 유지하면서 배선이 최대한 짧게 연결될 수 있도록
배치한다.
IC의 GND를 보드판의 GND에 연결한다.
IC의 VCC 단자를 보드판의 +5V에 연결한다.
각 부품의 단자가 모두 연결되었는지 회로도와 비교한다.
전원을 공급해 준다.
DIP-4 스위치를 조작하여 입력 신호 A, B, C, D를 아래 표 Ⅳ-35와 같이
변화시켜 입력하면서 LED W, X, Y, Z을 표 Ⅳ-35에 기입한다.
LED가 켜지면 1이고 꺼지면 0으로 한다.

그림 Ⅳ-70
BCD-3초과 코드
W

330

X
330

330
Z
330

Vcc 5V

A B C D

4.7k

155
조합 논리 회로 / 코드 변환기

결과 정리 표 Ⅳ-35 BCD-3초과 코드 결과표

BCD 코드 3초과 코드
10진수
A B C D W X Y Z

0 0 0 0 0

1 0 0 0 1

2 0 0 1 0

3 0 0 1 1

4 0 1 0 0

5 0 1 0 1

6 0 1 1 0

7 0 1 1 1

8 1 0 0 0

9 1 0 0 1

심화 과제 1. 그림 Ⅳ-67의 2진-그레이 코드 변환기를 구성하여 보자.


2. 그림 Ⅳ-69의 그레이-2진 코드 변환기를 구성하여 보자.

156
조합 논리 회로 / 단원 학습 정리

1. 조합 논리 회로
단원 학습 정리
조합 논리 회로를 설계하는 순서는 다음과 같다.
가. 시스템의 분석과 변수를 정의한다.
나. 시스템의 입출력 변수 간의 진리표를 작성한다.
다. 간소화된 출력 함수를 유도한다.
라. 출력 함수를 만족하는 조합 논리 회로도를 구성한다.
2. 가산기와 감산기
가. 가산기
1) 반가산기의 불 대수는 다음과 같다.
- -
S=A⊕B= AB+AB, C=AB
2) 전가산기 불 대수는 다음과 같다.
S=(A⊕B)⊕Ci, CO=(A⊕B)Ci+AB
나. 감산기
1) 반감산기 불 대수는 다음과 같다.
- - -
D=AB+AB=A⊕B b=AB
2) 전감산기 불 대수는 다음과 같다.
- -
D=(A⊕B)⊕Bi, BO=Bi(A◉B)+AB=Bi(A⊕B)+ AB
3. 비교기
1) 반비교기의 불 대수는 다음과 같다.
-- - - - -
E= A B+AB=(A⊕B)=AB+AB, H=AB, L=AB
2) 전비교기의 불 대수는 다음과 같다.
- -
Zi+1=(Ai Bi+ AiBi)Zi
- - -
Gi+1=Ai Bi+(Ai Bi+ AiBi)Gi
- - -
Si+1= AiBi+(Ai Bi+ AiBi)Si
4. 해독기와 부호기
해독기는 2진수를 10진수로 변환하는 조합 논리 회로로서 2×4, 3×8 해독
기가 주로 사용되고 부호기는 해독기의 반대로서 10진수를 2진수로 변환하는
조합 논리 회로로서 4×2, 8×3 부호기가 많이 사용되며 해독기와 부호기의
진리표를 이용하여 각 회로를 설계할 수 있다.
5. 멀티플렉서와 디멀티플렉서
가. 멀티플렉서는 2n개의 입력 중에서 하나를 선택하여 하나의 출력선에 데
이터를 출력하는 회로로서 최소 n비트의 선택 입력이 필요하며, 4×1 멀
티플렉서는 2개의 선택 입력에 의해서 4입력 중 하나의 입력만 선택하여
출력한다.
나. 디멀티플렉서는 2n개의 출력선 중에서 n비트의 선택 신호에 의하여 선택
된 하나의 출력선으로 데이터를 출력하며, 1×4 디멀티플렉서는 하나의

157
조합 논리 회로 / 단원 학습 정리

입력을 2비트의 선택 제어 입력에 의해서 4개의 출력 중 임의 출력에 출


력하는 회로이다.
다. 7-세그먼트 해독기의 코드는 7-세그먼트 표시기가 애노드 공통이나 캐소
드 공통이냐에 따라 제어 입력이 다르다.
6. 병렬 가산기
4비트 가산기는 4비트로 구성된 두 수 A=A3A2A1A0와 B=B3B2B1B0를 가
산하는 것으로 블록도는 그림 Ⅳ-71과 같다.

그림 Ⅳ-71 A3 B3 A2 B2 A1 B1 A0 B0
4비트 병렬 가산기의 블록도
A B Ci A B Ci A B Ci A B Ci

CO S CO S CO S CO S
C3 FA C2 FA C1 FA C0 HA
S4 S3 S2 S1 S0

7. 코드 변환기
3초과 코드는 자기 보수 코드이며 BCD 코드를 3초과 코드로 변환하는 방법
은 BCD 코드에 2진수의 3을 더하여 주면 된다.
BCD 코드 + 0011 → 3 초과 코드
0000 + 0011 → 0011
0001 + 0011 → 0100
0010 + 0011 → 0101

158
조합 논리 회로 / 단원 종합 문제

단원 종합 문제 1. 다음 회로를 최대로 간소화하여 설계하여 보자.

2. 다음 진리표를 보고 카르노 도를 그리고 조합 회로를 설계하여 보자.

입력 출력

A B Bi D BO
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1

3. 다음은 비교기 회로의 진리표이다. 진리표를 보고 조합 논리 회로를 설계하


여 보자.

A>B인 경우 A=B인 경우 A<B인 경우

입력 출력 입력 출력 입력 출력

A B A>B A B A=B A B A<B

0 0 0 0 0 1 0 0 0

0 1 0 0 1 0 0 1 1

1 0 1 1 0 0 1 0 0

1 1 0 1 1 1 1 1 0

159
조합 논리 회로 / 단원 종합 문제

4. 다음 2×4 해독기의 진리표를 보고 출력 D0, D1, D2, D3의 불 대수를 구하여


보자.

2×4 해독기의 진리표

입력 출력

A B D0 D1 D2 D0
0 0 1 0 0 0
0 1 0 1 0 0
1 0 0 0 1 0
1 1 0 0 0 1

5. 8×3 부호기의 진리표에서 출력 Z, Y, X을 구하여 보자.

8×3 부호기의 진리표

입력 출력

D0 D1 D2 D3 D4 D5 D6 D7 X Y Z

1 0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0 1

0 0 1 0 0 0 0 0 0 1 0

0 0 0 1 0 0 0 0 0 1 1

0 0 0 0 1 0 0 0 1 0 0

0 0 0 0 0 1 0 0 1 0 1

0 0 0 0 0 0 1 0 1 1 0

0 0 0 0 0 0 0 1 1 1 1

6. 다음 4×1 멀티플렉서의 진리표에 적당한 조합 논리 회로를 설계하여 보자.

4×1 멀티플렉서의 진리표

선택 입력 출력

S1 S0 Y

0 0 I0

0 1 I1

1 0 I2

1 1 I3

7. 다음 그림과 같은 회로를 무엇이라 하는가? 단, 그림 ⒝는 데이터 분배기라


고도 하며 ⒜의 반대이다.

160
조합 논리 회로 / 단원 종합 문제

선택선
동작선
S A -
A B -
B

입력 X0

X1
Y

X2

X3

D0

D1

D2

B
D3

8. 다음 1×4 디멀티플렉서 진리표에 적당한 조합 회로를 설계하여 보자.

1×4 디멀티플렉서의 진리표

선택 입력 출력

S1 S0 D

0 0 D0

0 1 D1

1 0 D2

1 1 D3

9. 다음 4비트 가산기 7483을 이용하여 2비트 데이터 A=A2A1와 B=B2B1을 가


산할 때 합과 캐리 비트가 발생되는 핀을 기입하여라.

161
조합 논리 회로 / 인용 및 참고 문헌

그림 Ⅳ-72 B4 S4 C4 C0 GND B1 A1 S1

7483의 구성도 16 15 14 13 12 11 10 9

S4 C4 C0 B1 A1
B4 S1

A4 A2
S3 A3 B3 S2 B2

1 2 3 4 5 6 7 8
A4 S3 A3 B3 VCC S2 B2 A2

A1 + B1 → 9번 핀 S1
A2 + B2 →
캐리 비트 →

10. 다음 회로는 무엇을 하는 조합 논리 회로이며 A, B, C, D에서 BCD 데이터


를 입력할 때 출력 데이터 W, X, Y, Z를 알아보자.

AB C D

162
Ⅴ. 순서 논리 회로
1. 순서 논리 회로와 플립플롭 조합 논리 회로는 현재의 입력에 의해서만
출력되는 회로이고, 순서 논리 회로는 현재의
2. 레지스터
입력뿐만 아니라 회로의 현재 상태에 의해서
3. 동기식 계수 회로 출력이 결정되는 회로이다. 순서 논리 회로는
4. 비동기식 계수 회로 조합 논리 회로와 달리 회로 안에 정보를 저장
할 수 있는 기억 소자를 가지게 되고, 이러한
기억 소자를 플립플롭이라 한다.
이 단원에서는 각종 플립플롭의 동작 특성을
알아보고, 순서 논리 회로의 대표적인 예인 레
지스터와 계수 회로에 대하여 학습하기로 한다.
레지스터와 계수 회로를 기본으로 다른 응용
회로를 설계할 수 있도록 한다.

디지털 홈 비디오보기

163
1 순서 논리 회로와 플립플롭
학습 목표 1. 래치 회로와 플립플롭 회로를 구분하여 이해할 수 있다.
2. RS 플립플롭의 특성을 이해하고 응용할 수 있다.
3. JK 플립플롭의 특성을 이해하고 응용할 수 있다.
4. D 플립플롭의 특성을 이해하고 응용할 수 있다.
5. T 플립플롭의 특성을 이해하고 응용할 수 있다.

1. 조합 논리 회로와 순서 논리 회로
지금까지 다룬 회로는 조합 논리 회로로서 특정 시점에서의 출력이 그 순간
의 입력에 의해서 결정된다. 이러한 조합 논리 회로는 기억 소자를 포함하지
않은 형태로 과거의 상태나 입력이 현재의 출력에 영향을 주지 않는다.
반면 순서 논리 회로는 현재의 출력이 현재의 입력뿐만 아니라 현재의 상태
나 과거의 입력에 영향을 받으며, 일반적으로 조합 회로와 기억 소자로 구성되
어 있다.
그림 Ⅴ-1은 기억 소자가 조합 회로와 연결된 일반적인 순서 논리 회로의 블
록도를 나타낸다. 외부의 입력과 메모리 소자의 출력이 조합 논리 게이트로 연
결되어 있고, 조합 논리 회로는 이런 입력값을 이용하여 여러 가지 출력값을
만들게 된다. 이러한 순서 논리 회로를 구성하는 기억 소자 중 가장 대표적인
것이 플립플롭(flip-flop, FF)이며 논리 게이트의 조합으로 구성되어 있다.

그림 Ⅴ-1게 출력
순서 논리 회로의 구성

조합 논리 회로 기억 소자

입력

164
순서 논리 회로/ 순서 논리 회로와 플립플롭

선생님, 조합 예컨대, 공항의 금속


논리 회로와 순서 논리 탐지기는 금속을 가지고 있는
회로의 차이가 잘 사람은 항상 경보를 울리지요.
이해가 안 가요. 즉, 그 사람이 오늘 입국하거나 내일
입국하거나 결과는 같아요. 이런
것이 조합 회로예요.

금속
발신부 스피커
탐지기

반면, 입국하는 사람의 수를


세는 회로는 같은 사람이라도 오늘
입국하는지 내일 입국하는지에
따라 회로의 결과가 달라지지.
이것이 바로 순서 논리 회로입니다.

발신부

2. RS 래치와 RS 플립플롭
래치(latch)와 플립플롭은 2진 정보 1비트를 저장할 수 있으며, 2개의 출력
단자를 가진다. 출력 단자 중 하나가‘1'이 되면 다른 하나는‘0'을 출력하여 서

165
순서 논리 회로/ 순서 논리 회로와 플립플롭

로 상반되는 2가지 상태를 유지한다. 래치 회로는 클록 펄스(clock pulse)1)를


이용하지 않으므로 입력이 변할 때마다 출력 상태가 바뀌지만 플립플롭은 별
도의 클록 펄스가 입력될 때에만 출력 상태가 변화한다.

1 RS 래치

RS 래치는 그림 Ⅴ-2와 같이 R(reset)과 S(set)의 2개의 입력 단자와 Q와


¿의 2개의 출력 단자를 가지고 있다.
Q

그림 Ⅴ-2게
RS 래치 논리 기호 R Q
입 출
력 력
S Q

¿는 항상 반대의 값을 가지도록 설계되어 있다.


래치나 플립플롭에서 Q와 Q
이 회로는 2개의 NAND 게이트나 NOR 게이트로 구성할 수 있다. 2개의 NOR
게이트로 만든 RS 래치는 그림 Ⅴ-3에 나타내었고 그 진리표는 표 Ⅴ-1과 같
다. NOR 게이트는 어떤 입력이 하나라도‘1'이면 출력이‘0'이 되고, 모든 입력
이‘0'일 때에만 출력이‘1'이 된다. RS 래치의 동작을 단계별로 설명하면 다음
과 같다.
① 처음에 S=1, R=0이라고 가정하면, 2번 NOR 게이트의 출력 Q=0이므로
1번 NOR 게이트의 입력이 모두 0이 되어 출력 Q=1이 된다.
¿=0이며, 1번
② 다음에 S=0, R=0이면 2번 게이트의 다른 입력은 1이므로 Q

선생님! S=1, R=0인


OR 게이트는 입력 중 하나만 1이면
경우 왜 2번 NOR 게이트의 출력
출력이 1이 되고, 따라서 NOR 게이트는
Q=0이 되지요? 2번 게이트의 입력
출력이 0이 되지요.
중 하나를 모르는데…….

1) 클록 펄스는 흔히 CP, CLK, CK 등으로 표시한다.

166
순서 논리 회로/ 순서 논리 회로와 플립플롭

게이트의 2개의 입력은 모두 0이 되고 Q=1이 되어 출력은 변화가 없다.


¿=1이 된다.
③ 이번에는 S=0, R=1로 바꾸면 Q=0, Q
④ 다시 S=0, R=0으로 바꾸면 출력은 원래 상태를 유지하며 변화되지 않
는다.
¿가 모두 0이 되므로, 서로 보수
⑤ 마지막으로, S=1, R=1로 바꾸면 Q와 Q
관계가 되어야 하는 사실에 위반하므로, 이와 같은 입력은 피해야 한다.

NOR 게이트를 이용한


RS 래치의 동작을 요약하면
다음과 같아요.
① R=0, S=0: 래치는 저장된 값을 그대로 유지하
고 있다.
② R=0, S=1: Q의 값을 1로 세팅한다.
③ R=1, S=0: Q의 값을 0으로 리셋한다.
④ R=1, S=1: 사용하지 않는 입력이다.

그림 Ⅴ- 3게 표 Ⅴ-1
NOR 게이트를 이용한 RS R
NOR 게이트를 이용한 RS 래치의 진리표
1 Q
래치의 회로(NOR 이용)
R S Q

0 0 불변

0 1 1

Q 1 0 0
2
S 1 1 금지

---
이 때에는 Q와 Q가 모두 0이 되지만 2개의 출력이
그런데요, 선생님! 서로 반대가 되어야 한다는 가정에 위배되므로 일반적으
왜 R=S=1인 경우는 RS 로 사용하지 않지요. 특히, R와 S가 모두 0으로 되었을 때
래치에서 사용하지 않죠? 어떤 입력이 먼저 0이 되었는지에 따라 결과가 바뀌게 되
요. 특히, 두 입력값이 동시에 0이 되면 출력
값을 예측할 수 없지요. 이런 이유 때문
에 R=S=1은 일반적으로 NOR 래
치에서 사용하지
않아요.

167
순서 논리 회로/ 순서 논리 회로와 플립플롭

그림 Ⅴ-4게 표 Ⅴ-2
NAND게이트를 이용한 RS R
NAND 게이트를 이용한 RS 래치의 진리표
1 Q
래치의 논리도
R S Q

0 0 금지

0 1 1

Q 1 0 0
2
S 1 1 불변

음, 아주 좋은 질문이군요. 쉽게 생각하면 디지털 신호가 평상시 0을 유


지하다가 신호가 발생하면 1이라고 생각하기 쉽지만 꼭 그런 건 아니에
요. 경우에 따라서는 평상시 1이다가 신호가 발생하면 0이 되는 경우도
많아요. 전자의 경우를 액티브 하이(active high)라고 하고 후자의 경
우를 액티브 로라고 하지요. NOR 게이트로 된 RS 래치는
Q=1(세트)로 하기 위해 S=1, R=0으로 하지만
NAND 게이트로 된 RS 래치에서 Q=1로 하
기 위해 S=0, R=1로 하지요.
즉, NOR 게이트로 구성된
NAND로 구성한 RS RS 래치는 액티브 하
래치는 액티브 로(active low) 이 회로이고 NAND
회로라고 한다는데, 액티브 게이트로 구성된
로가 무엇입니까? RS 래치는 액티브
로 회로예요.

NAND 게이트를 이용한 RS 래치의 회로와 진리표는 각 그림 Ⅴ-4와 표 Ⅴ-2


에 나타내었다. NAND 게이트는 어떤 입력이 하나라도 0이면 출력이 1이 되고
모든 입력이 1일 때에만 0이 된다. NOR 게이트를 이용한 RS 래치와는 달리
두 입력이 모두 1이면 출력은 전 상태를 유지하고, S 입력에 0을 가하면 Q는 1
로 ---
Q는 0이 된다. S를 1 상태로 한 뒤에 리셋 입력에 0을 가하면 플립플롭은
0 상태가 된다. 두 입력이 모두 0으로 될 때에는 출력 모두가 1이 되므로 피해
야 한다.
그림 Ⅴ-4의 NAND 게이트를 이용한 RS 래치는 논리 기호로 나타낼 때 그
림 Ⅴ-5와 같이 나타낸다. 여기서 입력 단자 앞의 작은 원은 액티브 로를 나타
내고 신호의 이름도 R, S 대신 -R,
-- -S로
-- 나타낸다2).

그림 Ⅴ-5게
NAND 게이트를 이용한 RS R Q
래치의 논리 기호 입 출
력 력
S Q

2) 이러한 표기법을 반드시 따르는 것은 아니다.

168
순서 논리 회로/ 순서 논리 회로와 플립플롭

읽을거리

다음의 그림 (a)와 같은 기계적 스위치의 경우 전압이 깨끗하게 바뀌게 할 수 없다. 즉, 그림


(b)와 같은 결과를 얻게 되는데, 최종적인 스위치 닫힘 상태가 되기 전에 스위치의 접촉 상태가
열림과 닫힘 상태를 진동하므로 출력 전압이 0V에서 5V 사이를 여러 번 왔다갔다하게 된다. 이
런 상태는 길어야 몇 밀리초(msec)이지만 전자 회로에서는 오동작의 원인이 된다. 이 때, 그림
(c)와 같은 NAND 래치 회로를 이용하면 깨끗한 스위치 회로를 구현할 수 있다. 예컨대, 스위치
가 1번에서 2번으로 가는 경우 기계적 진동이 발생한 경우를 생각한다. 진동이 발생하면 R과 --- -S--

는 모두 1의 값을 유지하고, 따라서 RS 래치는 그 값을 유지하여 Q는 1을 유지한다. 즉, 스위치


가 2번 위치에 안정되기 전에 진동 현상이 나타나도 Q는 (d)와 같이 아무런 영향을 받지 않는
다. 이와 같은 회로를 스위치 떨림 방지(switch debouncing) 회로라고 한다.

+5V 바운싱
5V
2
VOUT
1 0V
스위치가 2번에서
안정된 상태
스위치가 2번에 연결된 상태
⒜ 기계적 스위치 ⒝ 기계적 스위치 결과
+5V

1
2 VOUT
S

R 0
1

스위치가 1번에 연결된 상태 스위치가 2번에 연결된 상태


+5V
⒞ NAND 래치 스위치 ⒟ NAND 래치 스위치 결과

2 클록형 RS 플립플롭

래치의 경우 입력에 의해 출력이 결정되지만 플립플롭의 경우 클록 펄스가


발생하는 경우에만 출력이 영향을 받게 설계한다. 즉, 플립플롭은 래치와 달리
입력이 변해도 클록이 변하지 않으면 출력도 변하지 않는 회로이다. 클록이 있
을 때에만 동작하는 RS 래치를 RS 플립플롭이라 한다.
그림 Ⅴ-6의 클록형 RS 플립플롭은 NOR 게이트를 이용한 RS 래치와 2개의
AND 게이트로 구성되어 있다. 클록 펄스가 없는 경우 2개의 AND 게이트 출
력은 S와 R의 입력값에 관계 없이 0이 된다. 클록 펄스(CLK)가 발생한 순간
만 정보가 S와 R 입력으로부터 플립플롭에 전달된다.
S=1, R=0이고 클록이 있으면 세트 상태, 즉 Q=1이 된다. 리셋 상태(Q=0)
로 바꾸려면 입력은 S=0, R=1에 클록이 발생해야 한다. 표 Ⅴ-3은 플립플롭

169
순서 논리 회로/ 순서 논리 회로와 플립플롭

그림 Ⅴ- 6게 R
Q
클록형 RS 플립플롭의
논리도

CLK 클록 신호 검출기

Q
S

의 진리표이다. Q는 주어진 시간에서의 플립플롭의 현재 상태이며, S와 R열은


가능한 입력값을 나타내며, Q(t+1)는 클록 펄스가 발생된 다음의 상태이다.

클록이 0에서 1로
변하는 것을 상승 에지라 하고 1에서
0으로 변하는 것을 하강 에지라고 해요.

상승 에지 하강 에지

플립플롭에서 클록 신호 검출기의 역할은 클록의 에지


(edge)를 검출하는 거예요. 즉, 플립플롭은 클록의 에지 순간
에만 R와 S의 신호가 래치로 전달되지요. 플립플롭은 상승 에
지에서 동작하는 것도 있고 하강 에지에서 동작하는 플립플롭
도 있지요. 일반적으로, 회로가 상승 에지인지 하강 에지인지
는‘>’기호와‘○>’로 표시해요.‘>’기호는 상승 에지의 동
작을 나타내고,‘○>’기호는 하강 에지의 동작을 나타내지요.

R Q R Q

CLK CLK

S Q S Q

170
순서 논리 회로/ 순서 논리 회로와 플립플롭

표 Ⅴ-3게
Q S R Q(t+1) S
클록형 RS 플립플롭의 SR
0 0 0 0
진리도 00 01 11 10
Q
0 0 1 0
X 1
0
0 1 0 1

0 1 1 금지 Q 1 1 X 1

1 0 0 1
1 0 1 0 그림 Ⅴ-7게
1 1 0 1 RS 플립플롭의 카르노 도

1 1 1 금지

플립플롭의 특성 방정식은 그림 Ⅴ-7의 카르노 도에서 유도할 수 있다.


Q(t+1)=S+--
RQ, RS=0
이 방정식은 현재 상태와 입력의 함수로서 다음 상태의 값을 나타낸다. 특성
방정식은 특성표의 내용에 대한 대수적 표현이다. 카르노 도에서 2개의 부정
상태는 0이나 1 중 어느 것으로도 될 수 있기 때문에 x로 표기된다. RS = 0은
S와 R가 동시에 1이 될 수 없다는 것을 나타낸다. RS 플립플롭의 동작을 그
림 Ⅴ-8에서 설명한다.

그림 Ⅴ-8게
RS 플립플롭의 동작 S Q

CLK

R Q
플립플롭이 상승 에지
에서 동작한다.
⒜ 블록도

1
S
0

1
R
0

1
CLK
0
a b c d e f g h i k
1
Q
0 시간
⒝ 타이밍도

171
순서 논리 회로/ 순서 논리 회로와 플립플롭

3. JK 플립플롭
JK 플립플롭은 RS 플립플롭의 결점인 R=1, S=1일 때에 출력이 정의되지
않는 점을 개선한 것이다. 즉, 입력의 모든 조합에 대하여 출력이 정의되는 플
립플롭으로 개선한 것이 JK 플립플롭이다. 입력 J와 K는 입력 S와 R처럼 플
립플롭을 셋하고 리셋시킨다. J와 K가 동시에 1이고 클록 펄스가 발생하면 출
력의 과거 상태의 보수를 취한다. 즉, Q(t)=0이면 Q(t+1)=1이고, Q(t)=1이면
Q(t+1)=0이 된다.
JK 플립플롭은 그림 Ⅴ-9와 같이 2개의 3입력 AND 게이트와 NOR 게이트
로 된 RS 래치로 구성되어 있다.

그림 Ⅴ- 9게
JK 플립플롭 K Q

CLK 클록 신호 검출기

J Q

그림 Ⅴ-9에서 J=1, K=1일 때에 출력이 어떻게 변화하는지를 살펴보기로


한다. 현재 입력이 J=1, K=1이라 하고 바로 전 상태, 즉 현재의 회로 상태가
¿=0이라고 가정한다. 클록이 발생하면 Q와 연결된 AND의 결과는 1이
Q=1, Q
¿와 연결된 아래의 AND 결과는 0이 된다. 이것은 RS 래치에서 R=1,
되고, Q
¿=1로 리셋된다. 같은 방식으로 J=1, K=1에서 Q=0,
S=0에 해당하고 Q=0, Q
¿=1이라고 하고, 클록이 발생하면 Q와 연결된 AND의 결과는 0이 되고, Q와
Q
연결된 아래의 AND 결과는 1이 된다. 이것은 RS 래치에서 R=0, S=1에 해당
¿=0로 세팅된다. 즉 JK 플립플롭은 J=1, K=1에서 Q의 상태가
하고 Q=1, Q
토글(toggle)되는 상태를 나타내게 된다.

반전되는 것을 말하지.
0이면 1이 되고 1이면
토글이 뭐예요?
0이 되는 거지요.

172
순서 논리 회로/ 순서 논리 회로와 플립플롭

표 Ⅴ-4게 J
Q(t) J K Q(t+1) JK
JK 플립플롭의 진리표 00 01 11 10
0 0 0 0 Q

1 1
0 0 1 0 0

0 1 0 1
Q 1 1 1
0 1 1 1

1 0 0 1 K

1 0 1 0 그림 Ⅴ-10게
1 1 0 1 JK 플립플롭의 카르노 도

1 1 1 0

JK 플립플롭의 진리표는 표 Ⅴ-4와 같다. Q는 주어진 시간에서의 플립플롭


의 현재 상태이며, J와 K는 입력을 나타내고 Q(t+1)는 클록 펄스가 발생된 다
음의 상태이다.
플립플롭의 특성 방정식은 그림 Ⅴ-10의 카르노 도에서 유도할 수 있다.
¿+K
Q(t+1)=JQ ¿Q
이 방정식은 현재 상태와 입력의 함수로서 다음 상태의 값을 나타낸다.
JK 플립플롭의 동작을 그림 Ⅴ-11에서 설명한다.

JK 플립플롭의 동작을
요약하면 다음과 같다.
① J=0, K=0, 클록 발생: 저장된 값을 그대
로 유지하고 있다.
② J=1, K=0, 클록 발생: Q의 값을 1로 세팅
한다.
③ J=0, K=1, 클록 발생: Q의 값을 0으로 리
셋한다.
④ J=1, K=1, 클록 발생: Q의 값을 토글한다.

그림 Ⅴ-11게
JK 플립플롭의 동작 J Q J K CLK Q(t+1)
0 0 ↑ Q0
CLK
1 0 ↑ 1
0 1 ↑ 0
K Q
1 1 ↑ Q0
⒜ 논리 기호
⒝ 진리표

173
순서 논리 회로/ 순서 논리 회로와 플립플롭

1
J
0

1
K
0

1
CLK
0
a b c d e f g h i j k
1
Q
0
시간
⒞ 타이밍 도

JK 플립플롭의 결점이 하나 있죠. 궤한


(feedback) 연결 때문에 J=K=1일 때 출력이 보수가
취해진 다음에도 클록 펄스가 계속 1의 상태를 유지하면 출
력이 계속 반전되지요. 하지만 걱정할 필요는 없어요. 최근
의 에지 트리거 플립플롭은 에지에서만 플립플롭이
동작하므로 그런 걱정을 할 필요는 없지요.

4. D 플립플롭
D 플립플롭은 RS 플립플롭이나 JK 플립플롭과 달리 하나의 동기식 제어
입력 D를 가진다. 그림 Ⅴ-12는 D 플립플롭의 회로도와 논리 기호이다.

그림 Ⅴ-12게
R
D 플립플롭의 회로도와 논 Q
리 기호

CLK 클록 신호 검출기

D
Q
S

⒜ 회로

174
순서 논리 회로/ 순서 논리 회로와 플립플롭

D Q

CLK Q

⒝ 논리 기호

여기서, D는 지연(delay)이라는 의미로 클록 펄스에 따라 입력 상태가 그대


로 출력에 전달되는 것을 의미한다. 이 때, 입력 데이터는 클록 펄스가 들어오

표 Ⅴ-5참D 플립플롭의 진리표


기 전까지 출력에 전달되지 않으므로 클록 펄스가 들어올 때까지 그 시간만큼

D Q(t+1) 시간이 지연된다. 즉, D=0에서 클록이 발생하면 Q=0이고, D=1에서 클록이

0 0 발생하면 Q=1이 된다. D 플립플롭의 동작을 진리표로 정리하면 표 Ⅴ-5와 같


1 1 고 그 특성 방정식은 다음과 같다.
Q(t+1)=D
다음의 그림 Ⅴ-13은 D 플립플롭이 동작을 설명한다.

그림 Ⅴ-13게
D 플립플롭의 동작 D CLK Q(t+1)
D Q
0 ↑ 1
1 ↑ 0

⒝ 진리표
CLK Q

⒜ 논리 기호

1
D
0

1
CLK
0
a b c d e f g
1
Q
0
⒞ 타이밍 도

5. T 플립플롭
T 플립플롭은 JK 플립플롭의 J와 K 입력을 묶어서 1개의 입력 형태로 변
경한 회로이다. T 플립플롭의 논리도는 그림 Ⅴ-14와 같다. T=0일 때에는 클
록에 관계 없이 현재의 상태를 유지하며 T=1일 때에는 JK 플립플롭의

175
순서 논리 회로/ 순서 논리 회로와 플립플롭

그림 Ⅴ-14게
T 플립플롭의 논리도
Q
T

CLK 클록 신호 검출기

그림 Ⅴ-15게 T 표 Ⅴ-6플T 플립플롭의 진리표


T 플립플롭의 카르노 도 0 1
Q T Q(t+1)

0 1 0 0 0

0 1 1

1 0 1
Q 1 1
1 1 0

J=K=1이 되어 클록이 발생하면 출력 상태는 반전된다. T 플립플롭의 진리


표는 표 Ⅴ-6과 같고 그림 Ⅴ-15는 카르노 도이다.
카르노 도로부터 T 플립플롭의 특성 방정식을 유도하면 다음과 같다.
¿+T
Q(t+1)=TQ ¿Q

선생님!
RS 플립플롭과 T 플립플롭은
IC를 찾기가 어려운데요.
JK 플립플롭과 D 플립플롭은
IC 제품이 많지만 RS 플립플롭이나 T
플립플롭은 제품이 거의 없어요. 따라서, 꼭
RS 플립플롭이나 T 플립플롭이 필요한 경우
는 JK 플립플롭으로 만들면 되죠. 어떻게
만드냐고요? 잘 생각해 보세요. 이미
앞에서 설명을 했었어요.

176
순서 논리 회로/ 순서 논리 회로와 플립플롭

읽을거리

JK 플립플롭은 J=K=1인 경우 클록이 길면 출력이 계속 반전되는 문제점을 가지고 있고, 이


해결책은 에지 트리거 플립플롭을 사용하는 것이다. 그러나 예전에는 주(master)와 종(slave)의
역할을 하는 2개의 독립된 플립플롭으로 구성된 마스터 슬레이브 플립플롭을 사용하였다.

J Q

CLK

K ¿
Q

클록 펄스가 1인 동안 첫째 번 플립플롭(마스터)을 셋하고, 클록 펄스가 0인 동안 둘째 번 플


립플롭(슬레이브)에 신호를 전달하도록 구성하여 신호의 전달이 클록보다 빠르지 않도록 하였
다. 그러나 최근에는 유지 시간(hold time)이 적은 에지 트리거 플립플롭의 개발로 마스터 슬레
이브 플립플롭은 많이 사용하지 않는다.

6. 비동기 입력
지금까지 학습해 온 플립플롭은 R, S, J, K, D 등이 제어 입력으로 다루어져
왔다. 이들 입력은 모두 클록 신호와 함께 사용하였고, 이를 동기 입력
(synchronous input)이라고 한다. 즉, 동기 입력들은 플립플롭을 동작시키기 위
하여 클록 신호와 함께 사용하였다. 대부분의 플립플롭은 클록 신호와 독립적으
로 동작하는 1개 이상의 비동기 입력(asynchronous input)을 가진다. 이 비동기
입력은 다른 입력이나 클록에 무관하게 플립플롭을 0이나 1의 상태로 만들기
위한 신호이다. 그림 Ⅴ-16은 프리셋(preset)
그림 Ⅴ-16게
JK 플립플롭의 비동기
PRESET 과 클리어(clear)로 표시된 2개의 비동기 입력
입력 을 갖는 JK 플립플롭이다. 여기서도 프리셋과
J Q
클리어 단자 앞의 작은 원은 액티브 로임을
CLK 나타낸다. 액티브 로임을 강조하기 위하여 단
자 이름도 PRESET과 CLEAR로 나타낸다.
K Q

CLEAR

177
순서 논리 회로/ 순서 논리 회로와 플립플롭

① PRESET=CLEAR=1:비동기 입력은 동작하지 않 비동기 입력의 동작


는다. 클록에 의해 움직이는 동기 입력만 동작한다. 을 요약하면 다음과
같아요.
② PRESET=0, CLEAR=1:PRESET이 동작한다. 클
록에 관계 없이 Q=1이 된다.
③ PRESET=1, CLEAR=0:CLEAR가 동작한다. 클
록에 관계 없이 Q=0이 된다.
④ PRESET=CLEAR=0:사용하지 않는다.

실습 과제 Ⅴ-1 RS 래치의 특성

명 칭 규격 수 량

IC(NOR 게이트) 7402 1개


680W, 1/4W 2개
저항
3.3W, 1/4W 2개
발광 다이오드 적색 3f 2개
푸시 버튼 스위치 단극(a 접점) 2개

실습 기기 명 칭 규 격 수 량

직류 전원 장치 1A, 0~30V 1대
디지털 트레이너 1대
회로 시험기 VOM 1대

안전 및 유의 사항 1. 정격 전원(+5V)을 확인하고 GND 단자와 연결되지 않도록 한다.


2. 부품의 각 단자가 정확히 연결되어 있는지 확인한다.
3. IC에 직접 손을 댈 경우에는 접지를 한 다음에 한다.

실습 순서 그림 Ⅴ-17과 같이 회로를 구성한다.


¿의
스위치를 통하여 입력 R=0, S=1로 하고, 발광 다이오드를 통해 Q와 Q
값을 확인하여 표 Ⅴ-7에 결과를 기록한다. 입력에서 푸시 버튼이 연결된 것
은 1, 연결되지 않은 것은 0을 나타낸다. 출력에서는 발광 다이오드가 켜진

178
순서 논리 회로/ 순서 논리 회로와 플립플롭

그림 Ⅴ-17게 5V
실습 회로도
R1
3.3K
U1A
R D1
2 1 Q
3
LED
R3
741LS02 680

5V

R2
3.3K U1B
5 D2
4
6
Q LED
SW2 S R4
741LS02 680
푸시 버튼

것은 1, 꺼진 것은 0을 나타낸다.
¿의
스위치를 통하여 입력 R=0, S=0로 하고, 발광 다이오드를 통해 Q와 Q
값을 확인하고 표 Ⅴ-7에 결과를 기록한다.
¿의
스위치를 통하여 입력 R=1, S=0로 하고, 발광 다이오드를 통해 Q와 Q
값을 확인하고 표 Ⅴ-7에 결과를 기록한다.
¿의
스위치를 통하여 입력 R=0, S=0로 하고, 발광 다이오드를 통해 Q와 Q
값을 확인하고 표 Ⅴ-7에 결과를 기록한다.

결과 정리 표 Ⅴ-7참RS 래치의 실습 결과

입 력 출 력
R S Q Q

0 1

0 0

1 0

0 0

이제는 순서 논리 회로와
조합 논리 회로와의 차이를 알겠죠.
표 Ⅴ-7에서 입력이 R=0, S=0
일 때 Q=0일 수도 있고
Q=1일 수도 있지요.

179
순서 논리 회로/ 순서 논리 회로와 플립플롭

실습 과제 Ⅴ-2 JK 플립플롭의 동작 특성

사용 재료 명 칭 규격 수 량
3.3KW, 1/4W 1개
저항
1KW, 1/4W 1개
IC(JK 플립플롭) 7476 1개
푸시 버튼 스위치 단극(a 접점) 1개

실습 기기 명 칭 규 격 수 량

직류 전원 장치 1A, 0~30V 1대
디지털 회로 시험기 1대
회로 시험기 VOM 1대
오실로스코프 40MHz 1대
함수 발생기 40MHz 이상 1대

안전 및 유의 사항 1. 정격 전원(+5V)을 확인하고 GND 단자와 연결되지 않도록 한다.


2. 부품의 각 단자가 정확히 연결되어 있는지 확인한다.
3. IC에 직접 손을 댈 경우에는 접지를 한 다음에 한다.

실습 순서 그림 Ⅴ-18과 같이 회로를 구성한다.


푸시 버튼을 이용하여 JK 플립플롭을 리셋한다.

+5V
그림 Ⅴ-18게
실습 회로도
R1
1K
2

4
Q 15
PR

함수 발생기 1
CLK
16 14
K Q
CL

+5V 74LS76
3

R2
3.3K

SW1

푸시 버튼

180
순서 논리 회로/ 순서 논리 회로와 플립플롭

신호 발생기를 이용하여 최대 5V, 최소 0V인 1KHz의 구형파를 발생시키고


7476의 1번 단자에 연결한다.
오실로스코프를 이용하여 신호 발생기의 출력을 관측하고 그림 Ⅴ-19에 결
과를 그린다.
오실로스코프를 이용하여 Q의 신호를 관측하고 그림 Ⅴ-20에 결과를 그린다.

결과 정리 구형파 신호

그림 Ⅴ-19게
발생 구형파

TIME/DIV=
VOLTS/DIV=

그림 Ⅴ-20게 Q 신호
JK 플립플롭의 출력

TIME/DIV=
VOLTS/DIV=

181
순서 논리 회로/ 순서 논리 회로와 플립플롭

이 실험에서 J=K=1이므로
7476 JK 플립플롭을 T 플립플롭으로
사용되고 있어요. 즉, 토글용으로 사용되고
있지요. 이런 경우 Q 신호의 주기는 입력 구형
파의 주기보다 2배가 되는 것을 볼 수 있어요.
주파수의 입장에서 보면 주파수를
반으로 줄인 것이지요.

심화 과제 7476의 2개의 JK 플립플롭을 모두 이용하여 주기가 입력 신호의 4배가 되는


신호를 만들어 보자.

182
2 레지스터
학습 목표 1. 레지스터의 종류를 설명할 수 있다.
2. 좌우 방향 시프트 레지스터 및 순환 레지스터를 설계할 수 있다.
3. 직렬 입력/ 직렬 출력 레지스터의 동작 원리를 설명할 수 있다.
4. 직렬 입력/ 병렬 출력 레지스터의 동작 원리를 설명할 수 있다.
5. 병렬 입력/ 직렬 출력 레지스터를 구성할 수 있다.
6. 병렬 입력/ 병렬 출력 레지스터를 설계할 수 있다.

1. 레지스터의 구조와 종류
레지스터(register)는 컴퓨터를 포함한 디지털 시스템에서 여러 가지 연산 동
작을 위하여 1비트 이상의 2진 정보를 임시로 저장하기 위해 사용하는 기억
장치이다. 앞에서 학습한 플립플롭은 1비트를 저장하는 기억 소자라면 레지스
터는 이러한 플립플롭을 여러 개 사용하여 1비트 이상을 저장하도록 설계된
기억 장치이다.
레지스터는 크게 시프트 레지스터와 순환 레지스터로 나눈다. 시프트 레지스
터와 순환 레지스터는 모두 레지스터에 저장된 정보를 좌측 또는 우측으로 이

마치 플립플롭을 단독
주택에 비유하면 레지스터는
연립 주택이나 아파트 정도에
비유할 수 있지요.

플립플롭

J X
CLK
K ¿
X

레지스터

J X J X J X
CLK CLK CLK
K ¿
X K ¿
X K ¿
X

183
순서 논리 회로/ 레지스터

그림 Ⅴ-21게
레지스터의 종류

⒜ 직렬 입력/직렬 출력 ⒝ 직렬 입력/병렬 출력

⒞ 병렬 입력/직렬 출력 ⒟ 병렬 입력/병렬 출력

동시키는 역할을 한다. 이 때, 레지스터에서 빠져나간 2진 정보가 다시 레지스


터로 돌아오는지 아닌지에 따라 시프트 레지스터와 순환 레지스터로 구분된다.
또, 레지스터는 입출력 방식에 따라 그림 Ⅴ-21과 같이 직렬 입력/직렬 출력,
직렬 입력/병렬 출력, 병렬 입력/직렬 출력, 병렬 입력/병렬 출력의 4 가지 종류
로 나뉜다.

2. 좌우 방향 시프트 레지스터
데이터를 클록 신호에 맞추어 좌측 또는 우측의 레지스터로 이동시키는 회
로를 시프트 레지스터(shift register)라고 한다. 그림 Ⅴ-22는 JK 플립플롭을

그림 Ⅴ-22게 데이터
JK 플립플롭을 이용한 입력
J A J B J C J D
우방향 시프트 레지스터 CLK CLK CLK CLK
K A K B K C K D

시프트 1
클록
0
T1 T2 T3 T4
데이터 1
입력
0
1
A

0
B 1

0
C 1

0
D 1

184
순서 논리 회로/ 레지스터

그림 Ⅴ-23게 데이터
JK 플립플롭을 이용한 입력
A J B J C J D J
좌방향 시프트 레지스터 CLK CLK CLK CLK
A K B K C K D K
시프트
클록

그림 Ⅴ-24게 데이터
입력
D 플립플롭을 이용한
D A D B D C D D
우방향 시프트 레지스터 (출력)
CLK CLK CLK CLK
A B C D

시프트
클록

이용한 우방향 시프트 레지스터로, 클록 신호의 에지마다 좌측 첫째 번 플립플


롭의 데이터가 우측으로 한 번씩 이동하게 된다. 예를 들어, 모든 JK 플립플롭
들의 출력 신호가‘0'으로 가정한다. 좌측 첫째 번 J 단자에‘1'이 입력되고 클
록 신호가 발생하면 첫째 번 플립플롭 출력 신호 A는‘1'로 변화한다. 또, 그
다음 클록 신호가 발생하면 둘째 번 플립플롭의 출력 신호 B가‘0'에서‘1'로
변화하게 된다.
이와 같이 매 클록마다 출력 신호는 우측으로 이동하는 형태를 보이게 되어
이를 우방향 시프트 레지스터(right-shift register)라고 한다. 좌방향 시프트 레
지스터(left-shift register)는 그림 Ⅴ-23과 같으며 우방향 시프트 레지스터처럼
클록에 맞춰 데이터가 이동하나 방향이 좌측으로 변화하는 특징을 가진다.
일반적으로, 레지스터는 D 플립플롭을 사용하게 되며 그림 Ⅴ-24는 그림 Ⅴ-
22와 동일한 기능을 가지는 우방향 시프트 레지스터이다.

선생님, 이런 시프트
가장 대표적인 예가
레지스터는 어디에 이용해요?
곱셈기와 나눗셈기이지요. 좌방향
시프트는 사실상 2를 곱한 것과 같아요.
따라서, 좌방향 시프트 레지스터는 곱셈기라고
할 수 있지요. 반대로 우방향 시프트는 2로
나눈 것과 같아요. 따라서, 우방향
시프트 레지스터는 나눗셈기라고
할 수 있지요.

3. 좌우 방향 순환 레지스터
좌우 방향 순환 레지스터는 좌우 방향 시프트 레지스터와 동일한 구성을 지
니게 되나 마지막 플립플롭의 출력 신호가 첫째 번 플립플롭의 입력 신호로

185
순서 논리 회로/ 레지스터

그림 Ⅴ-25게
D 플립플롭을 이용한
D A D B D C D D
우방향 순환 레지스터 (출력)
CLK CLK CLK CLK
A B C D

클록

전달되는 점이 다르다.
즉, 그림 Ⅴ-25의 우방향 순환 레지스터의 경우와 같이 우측 끝의 D 플립플
롭 출력 신호가 좌측 첫째 번 입력 신호와 연결되게 된다. 따라서, 각각의 플립
플롭 출력 신호값은 주기적으로 반복되게 되며 동기식 링 계수기가 이와 동일
한 회로 구성을 지니게 된다.

회전 목마는 일정한 시간
간격으로 회전하면서 일정한 시간마다
동일한 목마가 동일한 위치에 나타나게 되죠.
순환 레지스터도 이런 원리예요. 몇 번 이상의
클록 신호가 지나가고 나면 다시 동일한
신호가 발생하게 되지요.

4. 직렬 입력/직렬 출력 레지스터
직렬 입력/직렬 출력 레지스터는 그림 Ⅴ-22, Ⅴ-23과 동일한 동작을 하는 좌
우 방향 시프트 레지스터이다. 입력 신호 첫째 번 플립플롭 입력 단자로 들어
간다. 입력된 클록의 수가 플립플롭 개수만큼 되면 마지막 플립플롭의 출력 단
자로 출력 신호가 나오게 된다.
예를 들어, 4개의 플립플롭으로 구성된 직렬 입력/직렬 출력 레지스터의 입
력 단자에 순차적으로‘1→0→1→0→1'을 입력시킨다. 이 때, 플립플롭은 클
록 신호가‘1'에서‘0'으로 변화할 때 입력 신호를 받아들인다고 가정한다. 플립
플롭의 입력 신호는 클록 신호가‘1'에서‘0'으로 변화하는 순간보다 먼저 입력
단자에 입력되어야 클록에 맞춰 출력 변화가 발생되게 된다. 입력 신호에 따른
레지스터의 최초의 출력은 4번의 클록 신호가 발생된 다음에 출력 단자에‘1'
의 값이 출력되고, 그 다음 클록에 맞춰 순차적으로‘0→1→0→1'이 출력되게
된다. 대표적인 직렬 입력/직렬 출력 레지스터 IC로는 4731 등이 있다.

186
순서 논리 회로/ 레지스터

5. 직렬 입력/병렬 출력 레지스터
직렬 입력/병렬 출력(Seiral Input/Parallel Output, SIPO) 레지스터는 시프
트 레지스터처럼 동작하나 직렬 입력/직렬 출력 레지스터와 달리 출력 신호가
각각의 플립플롭 출력 단자에서 발생되게 된다. 즉, 첫째 번 플립플롭의 입력
단자로 데이터가 입력된 다음, 클록 신호에 맞춰 옆의 플립플롭으로 데이터가
이동된다. 출력 신호는 매 클록 신호마다 각각의
플립플롭 출력 단자에서 출력되게 된다.
직렬 입력은
하나씩 들어가는
예를 들어, 4개의 플립플롭으로 구성된 경우,
초기 상태 0 0 0 0
거야. 직렬 입력/병렬 출력 레지스터의 입력 단자에
‘1→0→0→1→1'을 입력시킨다. 이 때, 플립플
롭의 초기 출력 상태는‘0000'이며 클록 신호에
1 0 0 0 따라 입력 신호를 받아들인다.
레지스터는 첫째 번 클록 신호가 발생된 다음
에 각각의 플립플롭 출력 단자에서‘1000(Q0Q1Q2
0 1 0 0 Q3)'이 발생되며(Q0는 첫째 번 플립플롭 출력 단
자) 다음 클록 신호에서는 '0100'이 발생된다. 이
러한 출력 신호는 클록이 변화할 때마다 계속적
으로‘'0010→1001→1100'이 출력된다.
0 0 1 0
대표적인 직렬 입력/병렬 출력 레지스터 IC로는
74164가 있으며, 내부 구성도는 그림 Ⅴ-26과 같다.
¿¿ 단자는 액티브 로
여기에 사용되는 단자 중 MR
1 0 0 1 단자로 내부 플립플롭들의 출력 신호를‘0'으로
만들기 위한 것이다. 또, CP는 클록 단자, A와 B
는 입력 단자이다. 또, Q0, Q1, Q2, Q3, Q4, Q5, Q6, Q7
1 1 0 0 은 내부 플립플롭들의 출력 단자이다.

그림 Ⅴ-26게 A
D Q D Q D Q D Q D Q D Q D Q D Q
직렬 입력 / 병렬 출력 B CP CP CP CP CP CP CP CP
CD CD CD CD CD CD CD CD
레지스터 IC인 74164의
구조도

CP

MR

Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

187
순서 논리 회로/ 레지스터

탐구 문제
인터넷에서 직렬 입력/병렬 출력 레지스터 IC인 74164의 데이터 시트를
찾아보자.

6. 병렬 입력/직렬 출력 레지스터
그림 Ⅴ-27과 같이 여러 개의 플립플롭으로 구성되어 있는 병렬 입력/직렬
출력 레지스터의 동작은 다음과 같다. 각각의 플립플롭으로 데이터를 동시에
입력시킨다. 이 때, 플립플롭들은 시프트 레지스터와 같이 클록 신호마다 앞단
의 플립플롭 출력 신호가 다음 단의 플립플롭으로 이동한다. 따라서, 최종 플립
플롭 출력 신호에서는 각각의 플립플롭에 입력된 데이터가 출력되게 된다.
예를 들어, 첫째 번 플립플롭 입력 단자에‘1', 둘째 번-
‘0', 셋째 번-
‘1', 마지
막-
‘1'인‘1011'을 각각의 플립플롭에 입력시킨다. 데이터가 플립플롭들에 입력
된 다음에 첫째 번 클록이 발생하면 처음으로 병렬 입력/직렬 출력 레지스터
의 최종 출력 단자에 마지막 플립플롭의 입력 신호인‘1'이 출력된다. 또, 둘째
번 클록 신호에서는 셋째 번 플립플롭의 입
자! 우리 모두 력 신호인‘1'이, 셋째 번 클록 신호에서는 둘
뛰어들어가자.
째 번 플립플롭 입력 신호인‘0'이, 넷째 번
클록 신호에서는 첫째 번 플립플롭 입력 신
호인‘1'이 순차적으로 출력된다. 이러한 레지
스터를 병렬 입력/직렬 출력 레지스터
(Parallel Input/Serial Output, PISO)라고
한다.
레지스터를 구성하는 방법으로 레지스터의
1 0 1 1 입력 신호들을 각각의 플립플롭 입력 단자를
통해 입력시키는 방법이 있다. 그러나 이 방
법은 각각의 플립플롭에 입력되는 입력 신호

× 1 0 1 와 전단의 플립플롭 출력 단자에서 생성되는


출력 신호 사이에 충돌이 발생하게 된다. 이
러한 문제점을 개선시키기 위해서 플립플롭
의 프리셋(preset)과 클리어(clear) 단자를 이
× × 1 0 용하여 데이터를 입력시키게 된다.
그림 Ⅴ-27은 대표적인 병렬 입력/직렬 출
력 레지스터 IC인 74165의 내부 구성도이다.
여기에 사용되는 PL
¿¿ 단자는 액티브 로로 동
× × × 1
작하여 내부 플립플롭들의 프리셋과 클리어

188
순서 논리 회로/ 레지스터

단자를 동작시키거나 클록 신호를 활성화시키는 역할을 한다. CP1과 CP2는 클


록 단자, DS는 IC 74165를 직렬 입력으로 사용할 때 필요한 단자로 병렬 입력
시에는 무관한 단자이다('1' 또는 '0'으로 묶는다). 또, Q7은 직렬 출력 단자이며
P0, P1, P2, P3, P4, P5, P6, P7은 내부 플립플롭들의 입력 단자이다.
그림 Ⅴ-27의 동작은 P0, P1, P2, P3, P4, P5, P6, P7에 데이터를 입력시킨 다음,
¿¿ 에‘0'을 발생시키면 각각의 플립플롭들이 셋(출력이 '1'인 상태) 또는 리셋
PL
¿¿ 값에 의해 비
(출력이‘0'인 상태)으로 변화한다. 이 때 클록 신호는‘0'의 PL
활성 상태로 되어 플립플롭들이 정상적인 동작을 하지 못하게 된다. 따라서, 다
¿¿ 이‘1'의 상태로 바
음 단의 플립플롭으로 데이터가 전달되지 않게 된다. PL
뀌게 되면 각각의 플립플롭 프리셋과 클리어 단자는 비활성 상태로 전환되고
클록 신호는 활성 상태가 된다. 이후로는 클록 신호에 동기되어 데이터가 이동
되고 출력 단자 Q7로 데이터가 출력된다.

그림 Ⅴ-27게 P0 P1 P2 P3 P4 P5 P6 P7

병렬 입력/직렬 출력
레지스터 IC인 74165
의 구조도
DS

CP1
PRESET S Q1 S Q2 S Q3 S Q4 S Q5 S Q6 S Q7
CP CP CP CP CP CP CP CP
CP2 RCL¿
Q1 R ¿Q2 RCL¿
Q3 RCL¿
Q4 RCL¿
Q5 RCL¿
Q6 RCL¿
Q7

PL

탐구 문제
인터넷에서 직렬 입력/병렬 출력 레지스터 IC인 74165의 데이터 시트를
찾아보자.

7. 병렬 입력/병렬 출력 레지스터
병렬 입력/병렬 출력(Parallel Input/Parallel Output, PIPO) 레지스터는 각
각의 플립플롭들에게 입력 단자를 통해 입력 신호를 보낼 수 있으며, 한 번의
클록이 발생한 다음 각각의 플립플롭 출력 단자로 출력 신호가 발생되게 된다.
예를 들어, 4개의 플립플롭으로 구성된 병렬 입력/병렬 출력 레지스터의 입
력 단자에 클록 신호가‘0'에서‘1'로 변화하기 이전에‘1001(D0D1D2D3)'를(D0

189
순서 논리 회로/ 레지스터

는 첫째 번 플립플롭 입력 단자) 입력시킨다. 레지스터는 클록 신호 발생시 입


력 신호를 받아들여 각각의 플립플롭 출력 단자에‘1001(D0D1D2D3)'을 발생시
키게 된다(Q0는 첫째 번 플립플롭 출력 단자). 만일, 입력 신호들을 변화시키지
않으면 다음 클록 신호에서도 동일한 출력이 나오게 된다. 따라서, 병렬 입력/
병렬 출력 레지스터는 매 클록마다 동기되어 입력 신호들을 받아들이고 이를
출력하게 된다.

자! 우리 모두
뛰어들어가자.

1 0 0 1

대표적인 병렬 입력 병렬 출력 레지스터 IC로는 74174가 있으며 내부 구성도


¿¿ 단자는 액티브 로로 내부
는 그림 Ⅴ-28과 같다. 여기에 사용되는 단자 중 MR
플립플롭들의 출력 신호를‘0'으로 만들기 위한 것이다. CP는 클록 단자이고
D0, D1, D2, D3, D4, D5는 내부 플립플롭들의 입력 단자이다. 또, Q0, Q1, Q2, Q3,
Q4, Q5은 내부 플립플롭들의 출력 단자이다.

그림 Ⅴ-28게
MR CP D5 D4 D3 D2 D1 D0
병렬 입력 병렬 출력 레
지스터 IC인 74174의 구
조도

D Q D Q D Q D Q D Q D Q
CP CP CP CP CP CP
CLR CLR CLR CLR CLR CLR

Q5 Q4 Q3 Q2 Q1 Q0

190
순서 논리 회로/ 레지스터

탐구 문제
인터넷에서 직렬 입력/병렬 출력 레지스터 IC인 74174의 데이터 시트를
찾아보자.

실습 과제 Ⅴ-3 시프트 레지스터

사용 재료 품 명 규 격 수 량 품 명 규 격 수 량
IC(JK 플립플롭) 7476 2개 IC(NOT 게이트) 7404 1개
푸시버튼 스위치 단극(a접점) 2개 IC(D 플립플롭) 7474 2개
슬라이드 스위치 양극(a, b접점) 5개 680W, 1/4W 8개
발광 다이오드 적색, 5f 8개 3.3KW, 1/4W 4개
저항
전해 콘덴서 100mF, 25V 2개 4.7KW, 1/4W 1개
세라믹 콘덴서 0.1mF, 50V 2개 10KW, 1/4W 4개

실습 기기 명 칭 규 격 수 량

니퍼, 와이어 스트리퍼 각 1대


직류 전원 장치 1A, 0V~30V 1대
회로 시험기 VOM 1대
신호 발생기 4MHz 이상 1대
디지털 트레이너 1대

안전 및 유의 사항 1. 회로의 전원 단자인 +5V 및 GND가 서로 연결되지 않도록 주의한다.


2. 부품의 각 단자가 정확히 연결되었는지 확인한다.
3. 전해 콘덴서, 발광 다이오드, 슬라이드 스위치 연결시 극성을 바꾸어 연결하
지 않도록 주의한다.
4. IC의 사용하지 않는 입력 단자는 GND와 연결한다.

실습 순서 1 우방향 시프트 레지스터

도번 실습 과제 Ⅴ-1 우방향 시프트 레지스터 회로도에 적용된 부품을 준


비한 다음, 회로도를 보면서 회로를 제작한다.
직류 전원 장치 GND와 +5V 단자를 회로의 J3와 J2에 각각 연결한다.
신호 발생기의 파형을 최대 5V, 최소 0V인 0.5~2Hz의 펄스 신호로 맞추
고, 신호 단자를 회로의 J1에 연결하고 GND는 J3에 연결한다.

191
순서 논리 회로/ 레지스터

우방향 시프트 레지스터의 동작을 발광 다이오드를 통해 확인하여 결과


를 표 Ⅴ-8에 작성한다. 점등된 적색 발광 다이오드는 빨간색으로 색칠
한다.
⑴ 스위치 S1을 GND 방향으로 놓고 회로를 리셋시키기 위해 스위치 S2
를 눌렀다 놓는다.
⑵ 발광 다이오드(LED) D1, D2, D3, D4가 모두 소등되었는지 확인한다.
⑶ 우방향 시프트 레지스터의 입력 신호를 `1'로 하기 위해 스위치 S1을
저항 R1 방향으로 연결하고 D1이 점등되면 스위치 S1을 GND로 연결
한다.
⑷ J1에 연결된 펄스 파형의 한 주기마다 발광 다이오드 D2, D3, D4가 순
차적으로 점등된 다음, 다시 소등됨을 확인한다.

2 병렬 입력/병렬 출력 레지스터

도번 실습 과제 Ⅴ-2 병렬 입력/병렬 출력 레지스터 회로도에 적용된 부


품을 준비한 다음, 회로를 제작한다.
직류 전원 장치 GND와 +5V 단자를 회로의 J2와 J1에 각각 연결한다.
신호 발생기의 파형을 최대 5V, 최소 0V인 0.5~2Hz의 펄스 신호로 맞추
고 신호 단자를 회로의 J3에 연결하고 GND는 J2에 연결한다.
병렬 입력/병렬 출력 레지스터의 동작을 발광 다이오드를 통해 확인하여
결과를 표 Ⅴ-9에 작성한다. 점등된 적색 발광 다이오드는 빨간색으로 색
칠한다.
⑴ 스위치 S1, S2, S3, S4을 이용하여 병렬 입력 신호를‘1010'으로 하고, 회
로를 리셋시키기 위해 스위치 S2를 일정 시간 동안 눌렀다 놓는다.
⑵ 발광 다이오드 D1, D2, D3, D4가 모두 소등된 다음, 발광 다이오드 D1
과 D3은 점등되고 D2와 D4는 소등되는지 확인한다.
⑶ 스위치 S1, S2, S3, S4을 이용하여 병렬 입력 신호를 '0101'으로 하고, 회
로를 리셋시키기 위해 스위치 S2를 일정 시간 동안 눌렀다 놓는다.
⑷ 발광 다이오드 D1, D2, D3, D4가 모두 소등된 다음, 발광 다이오드 D1
과 D3은 소등되고 D2와 D4는 점등되는지 확인한다.

192
순서 논리 회로/ 레지스터

결과 정리 클록
발광 다이오드
발생수
표 Ⅴ-8참
우방향 시프트 레지스터 ◯ ◯ ◯ ◯
초기 상태 D1 D2 D3 D4

첫 번째 ◯ ◯ ◯ ◯
D1 D2 D3 D4

두 번째 ◯ ◯ ◯ ◯
D1 D2 D3 D4

세 번째 ◯ ◯ ◯ ◯
D1 D2 D3 D4

네 번째 ◯ ◯ ◯ ◯
D1 D2 D3 D4

표 Ⅴ-9참
병렬 입력 병렬 출력 진행 발광 다이오드
레지스터
◯ ◯ ◯ ◯
초기 상태 D1 D2 D3 D4

스위치 조정 S1=1, S2=0, S3=1, S4=0

클록 신호 발생 후 ◯ ◯ ◯ ◯
D1 D2 D3 D4

스위치 조정 S1=0, S2=1, S3=0, S4=1

클록 신호 발생 후 ◯ ◯ ◯ ◯
D1 D2 D3 D4

심화 과제 (1) 실습 Ⅴ-3의 1 실험을 6비트로 바꾸어 수행해 보자.


(2) 실습 Ⅴ-3의 2 실험을 74174를 이용하여 실험해 보자.

193
3 동기식 계수 회로
학습 목표 1. 동기식 계수기의 동작 원리와 특성을 설명할 수 있다.
2. 동기식 3 비트 2진 증가 계수기와 감소 계수기를 설계할 수 있다.
3. 동기식 5진 계수기를 구성할 수 있다.
4. 동기식 5진 링 계수기를 구성할 수 있다.

순서 회로는 입력의 변화에 의해서만 결정되는 조합 회로와 달리 입력과 현


재의 기억 소자의 상태에 따라 출력이 결정되는 회로이다. 이 때, 회로 안에 있
는 모든 플립플롭과 같은 기억 소자가 하나의 클록 신호에 의해 동시에 변화

비동기 회로는 모든 플립플롭이


동기식 회로와 비동기식 동시에 움직이는 것이 아니라 개별적
회로의 차이가 이해 으로 움직여요. 예를 들어 도미노와
되지 않아요 같지요. 하나가 움직이면 그 다음
것이 움직이고 하는
방식이에요.

FF FF FF FF FF
1 2 3 4 5

하지만, 동기식 회로는 모든 플립플롭이 같이


움직여요. 즉, 특정 순간(클록 신호)을 기다리다가 특
정 순간이 되면 모두 같이 움직입니다.

IN FF FF FF FF FF OUT
1 2 3 4 5

194
순서 논리 회로/ 동기식 계수 회로

하는 회로를 동기식 순서 회로(synchronous sequential circuit)라고 한다. 반


면, 전체 회로가 하나의 공통 클록 신호에 동기화 되지 않고 각 기억 소자가
개별적으로 변화하는 회로를 비동기식 순서 회로(asynchronous sequential
circuit)라고 한다. 계수기 역시 동기식 계수기와 비동기식 계수기가 존재한다.
동기식 계수기는 모든 플립플롭들에게 동시에 같은 클록 신호를 인가함으로
써 여러 플립플롭이 동시에 변화한다. 동기식 계수기에서 발생되는 지연 시간
은 플립플롭의 클록 신호 인가 시점과 출력 신호 출력 시점의 차인 전파 지연
시간과 계수 조합에 사용되는 게이트의 전파 지연 시간의 합으로 구성된다.
이러한 지연시간은 대부분의 동기식 계수기에서 사용되는 게이트의 수가 매
우 적으므로 오동작을 일으키지는 못한다. 그러나 출력 신호들의 조합으로 구
성된 회로가 정확한 시간 간격을 요구할 때에는 주의해야 한다.
동기식 계수기를 구성하는 방법으로는 JK 플립플롭의 J 단자와 K 단자에
묶어서 사용하는 방법과 각기 다른 입력을 부여하는 방법으로 나뉜다.
첫째 번 방법은 동기식 3비트 2진 계수기를 통해 확인하며, 둘째 번 방법은
동기식 5진 계수기를 사용하여 검증해 본다.

1. 동기식 3비트 2진 증가・감소 계수기


동기식 3비트 2진 증가・감소 계수기는 표 Ⅴ-10과 같이 계수값이 순환하게
되며 그 회로는 그림 Ⅴ-29와 같다.
그림 Ⅴ-29 ⒜의 동기식 3비트 2진 증가 계수기를 설계하는 절차는 아래와
같으며 감소 계수기도 동일한 방법으로 구성할 수 있다.
⑴ 모든 JK 플립플롭의 클록 신호를 동시에 인가시키도록 구성한다.
⑵ 각각의 JK 플립플롭 J 단자와 K 단자를 함께 묶는다. 이것은 클록 신호에

표 Ⅴ-10 순서(클록 수) 증가 계수기 감소 계수기


동기식 3비트 2진 증가・감
소 계수기의 순환 절차 0 000 111

1 001 110

2 010 101

3 011 100

4 100 011

5 101 010

6 110 001

7 111 000

8 ‘000’에서부터 다시 순환 ‘111’에서부터 다시 순환

195
순서 논리 회로/ 동기식 계수 회로

그림 Ⅴ-29게
‘1’ J A J B J C
동기식 3비트 2진 증가・감
소 계수기 CLK CLK CLK
K ¿
A K ¿
B K ¿
C

클록
⒜ 동기식 3비트 2진 증가 계수기

‘1’
클록
J A J B J C
CLK CLK CLK
K ¿
A K ¿
B K ¿
C

⒝ 동기식 3비트 2진 감소 계수기

맞춰 플립플롭의 출력 신호를 토글(출력 신호가‘0’


에서‘1’
로, 또는‘1’

서‘0’
으로 변화한다.)시키기 위한 것으로 JK 플립플롭을 T 플립플롭으로
사용하는 것이다.
⑶ 각각의 플립플롭 J・K 단자는 게이트 소자들(AND, NAND, OR 게이트
등)을 이용하여 플립플롭 출력 단자들의 적당한 조합으로 만든다. 구성하는
방법은 다음과 같다.
㈎ JK 플립플롭의 입력・출력 진리표는 표 Ⅴ-11로 표현되며 이 중에서 J
단자와 K 단자가 모두‘0’또는‘1’
일 때의 진리값을 이용하게 된다.

표 Ⅴ-11 J K 클록 출력
JK 플립플롭의 입력・출력
진리표 0 0 ↓ 전 상태

0 1 ↓ 0

1 0 ↓ 1

1 1 ↓ 토글

㈏ 표 Ⅴ-12과 같이 각각의 플립플롭 출력 신호의 클록 신호 이전 상태값과


클록 신호 이후 상태값을 이용하여 J 단자(또는 K 단자)값을 설정한다.

표 Ⅴ-12 클록 이전 상태 클록 이후 상태 J 또는 K
JK 플립플롭 출력 신호의
이전 상태 및 이후 상태에 0 0 0
따르는 J(또는 K) 0 1 1

1 0 1

1 1 0

196
순서 논리 회로/ 동기식 계수 회로

그림 Ⅴ-30게
000
동기식 3비트 2진 증가 계수
기의 상태도 111 001
CBA

110 010

101 011

100

㈐ 설계하고자 하는 동기식 3비트 2진 증가 계수기의 상태도를 그림 Ⅴ-30과


같이 작성한다.
㈑ 표 Ⅴ-12를 이용하여 다음의 표 Ⅴ-13을 작성한다. 표 Ⅴ-13은 각 상태에서
필요한 JK 신호를 나타내며, 이와 같은 표를 회로 여기표3)(circuit
excitation table) 라고 한다.
㈒ 표 Ⅴ-13으로부터 각각의 플립플롭 J 단자에 해당하는 카르노 도
(karnaugh map)를 표 Ⅴ-14와 같이 작성하면 JA =‘1’
, JB =‘A’
, JC =
‘AB’
가 된다.
㈓ 표 Ⅴ-14와 AND 게이트를 이용하여 그림 Ⅴ-29 ⒜의 동기식 3비트 2진
증가 계수기를 구성한다.

표 Ⅴ-13 클록 신호의 이전 상태 클록 신호의 이후 상태 J (또는 K)


동기식 3비트 2진 증가 계수
C B A C B A JC JB JA
기의 회로 여기표
0 0 0 0 0 1 0 0 1

0 0 1 0 1 0 0 1 1

0 1 0 0 1 1 0 0 1

0 1 1 1 0 0 1 1 1

1 0 0 1 0 1 0 0 1

1 0 1 1 1 0 0 1 1

1 1 0 1 1 1 0 0 1

1 1 1 0 0 0 1 1 1

3) 클록 신호의 발생 후 플립플롭의 상태 변화를 나타내고, 이를 위한 플립플롭의 제어 신호를 정해 놓


은 표이다. 즉, 표 Ⅴ-13에서 클록 신호가 발생하면‘클록 신호 이전 상태’에서‘클록 신호 이후의
상태’로 변하기를 원하고, 이를 위한 플립플롭 제어 신호 J와 K를 나타낸다.

197
순서 논리 회로/ 동기식 계수 회로

표 Ⅴ-14
JA=1 JB=A JC=AB
각각의 플립플롭 J 단자의
카르노 도 BA BA BA
00 01 11 10 00 01 11 10 00 01 11 10
C C C
0 1 1 1 1 0 0 1 1 0 0 0 0 1 0

1 1 1 1 1 1 0 1 1 0 1 1 0 1 0

동기식 순서 회로를 설계하는


① 클록 신호에 대한 각 플 방식은 정해져 있습니다.
립플롭의 상태 변화(클록
이전 상태와 클록 이후 상태)를 표
로 작성한다.
② 이러한 변화를 일으킬 수 있도록 플립플롭의 제
어 신호(JK)를 결정한다.
③ 플립플롭의 제어 신호 카르노 도를 이용하여 단
순화한다.

2. 동기식 5진 계수기
동기식 5진 계수기는 계수값이 순차적으로‘000→001→010→011→100’
으로
에서부터 다시 순환하게 되는 계수기이다. 회로는 그림 Ⅴ-
변환한 다음,‘000’
31이며 설계 절차는 아래와 같다.
⑴ 모든 JK 플립플롭의 클록 신호를 동시에 인가시키도록 구성한다.
⑵ 각각의 플립플롭 J 단자와 K 단자는 게이트 소자들(AND, OR 게이트 등)
을 이용하여 플립플롭 출력 단자들의 적당한 조합으로 만든다. 구성하는 방
법은 다음과 같다.
㈎ 표 Ⅴ-15와 같이 각각의 플립플롭 출력 신호의 전 상태값과 현 상태값을
이용하여 J 단자와 K 단자값을 설정한다. 여기서, x는 J 단자와 K 단자

그림 Ⅴ-31게 J A J B J C
동기식 5진 계수기 클록 CLK CLK CLK
K --
A K --
B K --
C
‘1’

198
순서 논리 회로/ 동기식 계수 회로

표 Ⅴ-15
클록 신호 이전 상태 클록 신호 이후 상태 J K
플립플롭 출력 신호의 전 상
태와 현 상태에 따르는 J, K 0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

가‘0’이나‘1’중 어느 것이나 관계 없는 무정의 조건(don’t care)이다.


㈏ 설계하고자 하는 동기식 5진 계수기의 상태도를 그림 Ⅴ-32와 같이 작성
한다.

그림 Ⅴ-32게
101 110 111
동기식 5진 계수기의 상태도

000

CBA

100 001

011 010

㈐ 표 Ⅴ-15을 이용하여 동기식 5진 계수기의 회로 여기표를 표 Ⅴ-16과 같


이 작성한다.
㈑ 표 Ⅴ-16으로부터 각각의 플립플롭 J 단자에 해당하는 카르노 도를 표
--’
Ⅴ-17과 같이 작성하면 J =‘C , K =‘1’ --’
, J =‘AC , K =‘A+C’
,
A A B B

JC =‘AB’
, KC =‘1’
이 된다.

표 Ⅴ-16 클록 신호 이전 상태 클록 신호 이후 상태 J, K
동기식 5진 계수기의 회로
C B A C B A JC KC JB KB JA KA
여기표
0 0 0 0 0 1 0 x 0 x 1 x

0 0 1 0 1 0 0 x 1 x x 1

0 1 0 0 1 1 0 x x 0 1 x

0 1 1 1 0 0 1 x x 1 x 1

1 0 0 0 0 0 x 1 0 x 0 x

1 0 1 0 0 0 x 1 0 x x 1

1 1 0 0 0 0 x 1 x 1 0 x

1 1 1 0 0 0 x 1 x 1 x 1

199
순서 논리 회로/ 동기식 계수 회로

표 Ⅴ-17
¿
JA=C KA=1 ¿
JB=AC
각각의 플립플롭 J 단자와
K 단자의 카르노 도 BA BA BA
00 01 11 10 00 01 11 10 00 01 11 10
C C C
0 1 × × 1 0 × 1 1 × 0 0 1 × ×

1 0 × × 0 1 × 1 1 × 1 0 0 × ×

KB=A+C JC=AB KC=1

BA BA BA
00 01 11 10 00 01 11 10 00 01 11 10
C C C
0 × × 1 0 0 0 0 1 0 0 × × × ×

1 × × 1 1 1 × × × × 1 1 1 1 1

㈒ 표 Ⅴ-17과 AND, OR 게이트를 이용하여 그림 Ⅴ-31의 동기식 5진 계수


기를 구성한다.

재미있죠. 집에서 10진 계수기는


10진 계수기를 한 번 플립플롭이 4개가
설계해 보세요. 필요하겠군.

3. 동기식 5진 링 계수기
링 계수기(ring counter)는 임의의 값이
다음 위치로 순차적으로 전달되면서 회전
하는 계수기이다. 동기식 링 계수기는 좌
우 방향 순환 레지스터와 유사하나 마지
막 출력 신호가 첫째 번 입력 신호로 이어
지는 점이 다르다. 동기식 링 계수기의 동
작은 첫째 번 플립플롭 출력 신호가‘1’

되었을 때 다른 모든 플립플롭의 출력 신
호가‘0’
이 되며, 다시 둘째 번 플립플롭
의 출력 신호가‘1’
이 되면 다른 모든 플립플롭의 출력 신호가‘0’
이 된다.

200
순서 논리 회로/ 동기식 계수 회로

표 Ⅴ-18
순서 출력 신호
동기식 5진 링 계수기의 회
(클록 수) E D C B A
로 여기표
0 1 0 0 0 0

1 0 1 0 0 0

2 0 0 1 0 0

3 0 0 0 1 0

4 0 0 0 0 1

5(순환) 1 0 0 0 0

즉, 표 Ⅴ-18의 동기식 5진 링 계수기 회로 여기표와 같이 클록 수가 0에서 4


까지의 동작을 5부터 되풀이하게 된다. 이와 같은 동작을 순환하는 계수기를
동기식 링 계수기라고 한다.
그림 Ⅴ-33은 D 플립플롭을 사용하여 설계된 동기식 5진 링 계수기의 회로
와 클록 신호에 맞춰 동작하는 출력 파형을 나타내고 있다.

그림 Ⅴ-33게 J A D B D C D D D E
(출력)
D 플립플롭을 이용한 동기 CLK CLK CLK CLK CLK
--
A --
B --
C --
D --
E
식 5진 링 계수기 클록

⒜ 동기식 5진 링 계수기

1 2 3 4 5 6 7 8
1
0
클록
1
0
1
0
1
0
1
0
1
0
⒝ 출력 파형

201
순서 논리 회로/ 동기식 계수 회로

실습 과제 Ⅳ-4 동기식 계수 회로

사용 재료 명 칭 규 격 수량 명 칭 규 격 수량

IC(JK 플립플롭) 7476 4개 IC(D 플립플롭) 7474 3개

IC(AND 게이트) 7408 2개 IC(OR 게이트) 7432 1개

IC(7-세그먼트 구
전해 콘덴서 100mF, 25V 3개 7447 2개
동기)

270W, 1/4W 14개 세라믹 콘덴서 0.1mF, 50V 3개

680W, 1/4W 5개 푸시 버튼 스위치 단극(a 접점) 4개

저항 1KW, 1/4W 2개 7-세그먼트 (+) 공통 단자 2개

2.2WK, 1/4W 2개 도선 0.5mm ∆이상 10m

3.3KW, 1/4W 4개 발광 다이오드 적색 3∆ 5개

10KW, 1/4W 1개

실습 기기 명 칭 규 격 수 량

디지털 트레이너 1대

니퍼, 와이어 스트리퍼 각 1대

직류 전원 장치 1A, 0V~30V 1대

회로 시험기 VOM 1대

오실로스코프 20MHz 1대

신호 발생기 4MHz 이상 1대

안전 및 유의 사항 1. 회로의 전원 단자인 +5V 및 GND가 서로 연결되지 않도록 주의한다.


2. 부품의 각 단자가 정확히 연결되어 있는지 확인한다.
3. 전해 콘덴서, 발광 다이오드, 슬라이드 스위치, 7-세그먼트 연결시 극성을 바
꾸어 연결하지 않도록 주의한다.
4. IC의 사용하지 않는 입력 단자는 GND와 연결한다.

도면 (별지) 도번 실습 과제 Ⅴ-3 동기식 3비트 2진 증가 계수기 회로도(254쪽 참조)


(별지) 도번 실습 과제 Ⅴ-4 동기식 5진 계수기 회로도(255쪽 참조)
(별지) 도번 실습 과제 Ⅴ-5 동기식 5진 링 계수기 회로도(256쪽 참조)

실습 순서 1 동기식 3비트 2진 증가 계수기

도번 실습 과제 Ⅴ-3 동기식 3비트 2진 증가 계수기 회로도에 적용된 부품


을 준비한 다음, 회로도를 보면서 회로를 제작한다.
직류 전원 장치의 GND와 +5V를 회로의 J3와 J2에 각각 연결한다.

202
순서 논리 회로/ 동기식 계수 회로

신호 발생기의 파형을 최대 5V, 최소 0V인 0.5~2Hz의 펄스 신호로 맞추고,


신호 단자를 회로의 J1에 연결하고 GND는 J3에 연결한다.
동기식 3비트 2진 증가 계수기의 동작을 7-세그먼트 발광 다이오드를 이용
하여 확인한다.
⑴ 스위치 S1을 R2 방향으로 연결하고 회로를 리셋시키기 위해 스위치 S2를
눌렀다 놓는다. 이 때, 7-세그먼트가‘0’
을 표시하고 있는지 확인한다.
⑵ 7-세그먼트가 순차적으로‘1’
,‘2’
,‘3’
,‘4’
,‘5’
,‘6’
,‘7’
을 표시하는지
확인한다.
⑶ 표 Ⅴ-19를 완성한다.

2 동기식 5진 계수기

도번 실습 과제 Ⅴ-4 동기식 5진 계수기 회로도에 적용된 부품을 준비한 다


음, 회로도를 보면서 회로를 제작한다.
실습 순서‘ 1 ’
의‘ , ’
을 실행한다.
동기식 5진 계수기의 동작을 7-세그먼트를 통해 확인한다.
⑴ 회로를 리셋시키기 위해 스위치 S1을 눌렀다 놓은 다음 7-세그먼트가
‘0’
을 표시하고 있는지 확인한다.
⑵ 7-세그먼트가 순차적으로‘1’
,‘2’
,‘3’
,‘4’
를 표시하는지 확인한다.
⑶ 표 Ⅴ-20을 완성한다.

3 동기식 5진 링 계수기

도번 실습 과제 Ⅴ-5 동기식 5진 링 계수기 회로도에 적용된 부품을 준비한


다음, 회로도를 보면서 회로를 제작한다.
직류 전원 장치의 GND와 +5V를 회로의 J2와 J1에 각각 연결한다.
신호 발생기의 파형을 최대 5V, 최소 0V인 0.5~2Hz의 펄스 신호로 맞추고
신호 단자를 회로의 J3에 연결하고 GND는 J2에 연결한다.
동기식 5진 링 계수기의 동작을 발광 다이오드를 통해 확인하여 결과를 표
Ⅴ-21에 작성한다. 점등된 적색 발광 다이오드는 빨간색으로 색칠한다.

⑴ 회로를 리셋시키기 위해 스위치 S1를 눌렀다 놓은 다음 발광 다이오드


D0, D1, D2, D3, D4가 소등되었는지 확인한다.
⑵ 스위치 S2를 발광 다이오드 D1이 점등될 때까지 누르고 있다가 놓는다.
이는 첫째 번 플립플롭에 데이터‘1’
을 입력시키기 위한 것으로, 플립플
롭의 프리셋 기능을 이용한 것이다.
⑶ 발광 다이오드 D0는 점등되고 나머지는 소등되었는지 확인한다.
⑷ 발광 다이오드 D1부터 D4까지 순차적으로 한 개씩 점등되는지 확인한다.

203
순서 논리 회로/ 동기식 계수 회로

결과 정리 표시된 7-세그먼트 값
클록 발생 수
기준값 측정값

표 Ⅴ-19 초기 상태 0
동기식 3비트 2진 증가 계수 첫 번째 1

네 번째 4

여섯 번째 6

여덟 번째 0

표 Ⅴ-20
표시된 7-세그먼트 값
동기식 5진 계수기 클록 발생 수
기준값 측정값

초기 상태 0

첫 번째 1

두 번째 2

세 번째 3

네 번째 4

다섯 번째 0

표 Ⅴ-21 클록 발생 수 발광 다이오드
동기식 5진 링 계수기
◯ ◯ ◯ ◯ ◯
초기 상태
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
첫 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
두 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
세 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
네 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
다섯 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯ ◯
여섯 번째
D0 D1 D2 D3 D4

심화 과제 동기식 8진 링 계수기를 만들어 보자.

204
4 비동기식 계수 회로
학습 목표 1. 비동기식 계수기의 동작 원리와 특성을 설명할 수 있다.
2. 비동기식 3 비트 2진 리플 계수기를 설계할 수 있다.
3. 비동기식 10진 리플 계수기를 구성할 수 있다.

비동기 계수기는 앞단의 플립플롭 출력 신호가‘1’


에서‘0’
으로(또는‘0’

서‘1’
로) 변화할 때마다 뒷 단의 플립플롭의 출력 신호가 바뀌게 된다. 비동
기식 계수기 출력 신호는 물결(ripple) 모양을 일으키며 앞에서 뒤로 전파되며
이러한 비동기 계수기를 리플 계수기(ripple counter)라고도 한다.
비동기식 계수기는 첫째 번 JK 플립플롭의 클록 단자에 클록 신호를 인가시
키고 나머지 JK 플립플롭들의 클록 단자에는 전단의 출력 신호를 연결한다.
또, 모든 JK 플립플롭의 입력 신호를‘1’
로 하여 출력 신호를 토글시킨다. 비
동기식 계수기는 동기식 계수기에 비해 계수값이 증가할수록 플립플롭의 전파
지연 시간4) 누적으로 인해 오동작을 일으킬 수 있다. 그러나 다음 클록을 기다
리지 않고 출력 신호를 내보내므로 고속 동작을 기대할 수 있고 동기식 계수

그림 Ⅴ-34게 1 2 3 4 5 6 7 8 9 10
1
전파 지연 시간으로 생기는 클록
0
비동기식 계수기의 오동작
1 1000ns
현상 0
1 50ns
0
1 100ns
0
150ns
⒜ 정상 동작

1 2 3 4 5 6 7 8 9 10
1
클록
0
1 1000ns
0
1 50ns
0
1 100ns
0
150ns

그리치(glitch) 그리치(glitch)
⒝ 오동작 및 그리치 현상

4) IC의 입력 단자에 입력 신호가 들어오고 나서 출력 신호가 나올 때까지 걸리는 시간

205
순서 논리 회로/ 비동기식 계수 회로

기에 비해 게이트의 수를 줄일 수 있다.
일반적인 비동기식 계수기는 2n 진(n비트 2진) 계수기로 n개의 JK 플립플롭
만 있으면 회로가 설계된다. 즉, 8진 계수기는 다른 게이트를 사용하지 않고 3
개의 JK 플립플롭만으로 구성되며 64진 계수기는 6개의 JK 플립플롭만으로
가능하다. 2n 진 계수기가 아닐 경우에는, 설계하고자 하는 최대 계수 값보다
크게 2n을 설정하여 JK 플립플롭의 개수를 정한 다음, 게이트들을 사용하여
회로를 완성한다. 앞의 두 가지 경우에 대한 설계 절차는 비동기식 3비트 2진
리플 계수기와 10진 리플 계수기를 통해 학습한다.
그림 Ⅴ-34는 플립플롭의 전파 지연 시간으로 인해 생기는 오동작을 보이고
있다. 오동작은 계수값이 증가하거나 클록 주파수가 높을수록 발생 가능성이
증가하게 된다. 즉, 정상 동작을 하는 그림 Ⅴ-14 ⒜는‘000→001→(000)→010
→ 011 → (010) → (000) → 100 → 101 → (100) → 110 → 111 → (110) → (100) → 000
→…’(
‘CBA’
)으로 계수되어 플립플롭 C가 한 주기가 될 때마다 순환된다.
그러나 오동작을 발생하는 그림 Ⅴ-14 ⒝는‘000→001→000→010→011→010
→000→101→100→110→111→110→100→001→…’(
‘CBA’
)으로 계수되어
플립플롭 C의 한 주기마다 계수값이 정상적으로 순환하지 못하게 된다. 또, 플
립플롭들의 출력 신호를 조합해서 사용할 경우에는 그림 Ⅴ-34 ⒝와 같은 그리
치(glitch) 현상도 나타나게 된다. 따라서, 첫째 번 플립플롭에 인가되는 클록
주파수는 다음 식을 만족하여야 한다.
1
fmax ≦ n×t
pd

여기서, fmax는 첫째 번 플립플롭의 최대 클록 주파수, n은 플립플롭의 수, tpd


는 플립플롭 한 개당 전파 지연 시간이다. 예를 들어, tpd가 50ns인 3비트 2진
리플 계수기를 설계할 경우,
1 1
fmax ≦ n×t = 3×50ns =6.6MHz
pd

이하의 클록 주파수( 또는 150ns 이상의 주기)를 가져야 한다.

간단히 말해서 새로운 클록이 들어오기 전에


모든 플립플롭이 변화하여야 한다는 거지요.
즉, 플립플롭이 너무 많거나 클록이 너무
빠르면 안 된다는 것을 나타냅니다.

206
순서 논리 회로/ 비동기식 계수 회로

1. 비동기식 3비트 2진 리플 계수기


그림 Ⅴ-35의 비동기식 3비트 2진 리플 계수기를 3개의 JK 플립플롭으로 구
성한 것이다.

그림 Ⅴ-35게 ‘1’
J A J B J C
비동기식 3비트 2진 리플 계
CLK CLK CLK
수기 -- -- --
클록 K A K B K C

비동기식 3비트 2진 리플 계수기의 회로 여기표는 표 Ⅴ-22로 표현되며 설계


방법은 다음과 같다.

표 Ⅴ-22
출력 신호
비동기식 3비트 2진 리플 계 순서(클록 수)
수기의 회로 여기표 C B A

0 0 0 0

1 0 0 1

2 0 1 0

3 0 1 1

4 1 0 0

5 1 0 1

6 1 1 0

7 1 1 1

8(0부터 다시 순환) 0 0 0

⑴ 각각의 JK 플립플롭 입력 단자인 J단자와 K단자를‘1’


로 묶는다.
⑵ 첫째 번 JK 플립플롭의 클록 단자를 외부 클록 신호와 결합시킨다.
⑶ 첫째 번 JK 플립플롭의 출력 단자 A를 둘째 번 JK 플립플롭의 클록 단자
에 연결한다.
⑷ 둘째 번 JK 플립플롭의 출력 단자 B를 셋째 번 JK 플립플롭의 클록 단자
에 연결한다.
⑸ 플립플롭 출력 단자 A, B, C로부터 출력된 값을 조합하면 증가 계수기가
된다. 만일, 감소 계수기를 설계하고자 한다면 A--, --
B, --
C로부터 출력된 값을
조합하면 된다.

2. 비동기식 10진 리플 계수기


비동기식 10진 리플 계수기는 4개의 JK 플립플롭과 게이트 소자로 구성할

207
순서 논리 회로/ 비동기식 계수 회로

그림 Ⅴ-36게
‘1’
비동기식 10진 리플 계수기 J A J B J C J D
CLK CLK CLK CLK
클록 K --
A K --
B K --
C K --
D

수 있다(2 4 >10). 이 때, 게이트 소자를 구하는 방법은 비동기식 10진 리플 계


수기의 출력 신호를 리셋시키는 계수값을 이용하여 구하는 것이다. 즉, 계수기
가 순차적으로‘0000’
에서부터‘1001’
로 변환한 다음,‘1010’
이 될 때 계수기의
플립플롭들을 리셋시켜야만 10진 계수기의 역할을 하게 된다. 따라서,‘1010’

두 개의‘1’
을 NAND 게이트로 조합하여 플립플롭의 클리어 단자에 연결하면
출력 신호가‘1010’
으로 잠시 동안 있을 때 플립플롭은 리셋되어‘0000’
에서부
터 다시 계수하게 된다. 비동기식 10진 리플 계수기는 그림 Ⅴ-36과 같으며 설
계하는 방법은 다음과 같다.
① 비동기식 10진 리플 계수기의 상태도를 그림 Ⅴ-37과 같이 그린다.
② 계수기를 리셋시킬 계수값을 선정한 다음, 게이트 소자를 선택한다. 여기서
는‘1010’
(출력단자로 DCBA)이므로 NAND 게이트를 사용하여 둘째 번 출력
신호(b)와 넷째 번 출력 신호(D)를 2입력 NAND 게이트의 입력 단자에 연결한
다. 또, NAND 게이트 출력 단자를 모든 플립플롭의 클리어 단자에 연결한다.
③ 각각의 JK 플립플롭 입력 단자인 J단자와 K단자를‘1’
로 묶는다.
④ 각각의 JK 플립플롭 출력 단자 A를 다음 단 JK 플립플롭의 클록 단자
에 연결한다.
⑤ 플립플롭 출력 단자 A, B, C, D로부터 출력된 값을 조합하면 비동기식 10
진 리플 계수기가 된다.

그림 Ⅴ-37게 DCBA
비동기식 10진 리플 계수기 1011
의 상태도 0000
1010 0001

1001 0010

1000 0011

0111 0100

0110 0101

208
순서 논리 회로/ 비동기식 계수 회로

실습 과제 Ⅴ-5 비동기식 계수 회로

사용 재료 명 칭 규 격 수량 명 칭 규 격 수량

1개 IC(7- 세그먼트 구
IC(NAND 게이트) 7400 7447 2개
동기)

IC(JK 플립플롭) 7476 4개 270W, 1/4W 14개

푸시 버튼 스위치 단극(a 접점) 2개 1KW, 1/4W 1개


저항
전해 콘덴서 100mF, 25V 2개 2.2KW, 1/4W 2개

세라믹 콘덴서 0.1mF, 50V 2개 3.3KW, 1/4W 4개

7-세그먼트 (+) 공통 단자 2개

실습 기기 명 칭 규 격 수 량

니퍼, 와이어 스트리퍼 각 1대

직류 전원 정치 1A, 0V~30V 1대

회로 시험기 VOM 1대

오실로스코프 20MHz 1대

신호 발생기 4MHz 이상 1대

안전 및 유의 사항 1. 회로의 전원 단자인 +5V 및 GND가 서로 연결되지 않도록 주의한다.


2. 부품의 각 단자가 정확히 연결되어 있는지 확인한다.
3. 전해 콘덴서, 7-세그먼트 연결시 극성을 바꾸어 연결하지 않도록 주의한다.
4. IC의 사용하지 않는 입력 단자는 GND와 연결한다.

도면 (별지) 도번 실습 과제 Ⅴ-6 비동기식 3비트 2진 리플 계수기 회로도(257쪽 참조)


(별지) 도번 실습 과제 Ⅴ-7 비동기식 10진 리플 계수기 회로도(258쪽 참조)

실습 순서 1 비동기식 3비트 2진 리플 계수기

도번 실습 과제 Ⅴ-6 비동기식 3비트 2진 리플 계수기 회로도에 적용된 부


품을 준비한 다음, 회로도를 보면서 회로를 제작한다.
직류 전원 장치의 GND와 +5V를 회로의 J3와 J2에 각각 연결한다.
신호 발생기의 파형을 최대 5V, 최소 0V인 0.1~1Hz의 펄스 신호로 맞추고,
신호 단자를 회로의 J1에 연결하고 GND는 J3에 연결한다.
비동기식 3비트 2진 리플 계수기의 동작을 7-세그먼트 발광 다이오드를 통
해 확인한다.
⑴ 플립플롭들을 리셋시키기 위해 스위치 S1를 눌렀다 놓은 다음 7-세그먼
트가‘0’
을 표시하고 있는지 확인한다.
⑵ 7-세그먼트가 순차적으로‘1’
,‘2’
,‘3’
,‘4’
,‘5’
,‘6’
,‘7’
을 표시하는지

209
순서 논리 회로/ 비동기식 계수 회로

확인한다.
⑶ 표 Ⅴ-23을 완성한다.

2 비동기식 10진 리플 계수기

도번 실습 과제 Ⅴ-7 비동기식 10진 리플 계수기 회로도에 적용된 부품을


준비한 다음, 회로도를 보면서 회로를 제작한다.
실습 순서‘ 1 ’
의‘ , ’
을 실행한다.
비동기식 10진 리플 계수기의 동작을 7-세그먼트 발광 다이오드를 통해 확
인한다.
⑴ 플립플롭들을 리셋시키기 위해 스위치 S1를 눌렀다 놓은 다음 7-세그먼
트가‘0’
을 표시하고 있는지 확인한다.
⑵ 7-세그먼트가 순차적으로‘1’
,‘2’
,‘3’
,‘4’
,‘5’
,‘6’
,‘7’
,‘8’
,‘9’
를 표시
하는지 확인한다.
⑶ 표 Ⅴ-24를 완성한다.

결과 정리 표시된 7-세그먼트 값
클록 발생 수
기준값 측정값

표 Ⅴ-23 초기 상태 0
비동기식 3비트 2진 리플 계 첫 번째 1
수기
세 번째 3

다섯 번째 5

일곱 번째 7

여덟 번째 0

표 Ⅴ-24
표시된 7-세그먼트 값
비동기식 10진 리플 계수기 클록 발생 수
기준값 측정값

초기 상태 0

첫 번째 1

두 번째 2

세 번째 3

네 번째 4

다섯 번째 5

여섯 번째 6

일곱 번째 7

여덟 번째 8

아홉 번째 9

열 번째 0

210
순서 논리 회로/ 단원 학습 정리

심화 과제 비동기식 12진 리플 계수기를 제작하여 보자.

1. 순서 논리 회로와 플립플롭
단원 학습 정리
•조합 논리 회로는 현재의 출력이 현재의 입력에만 의존하는 회로이다. 따라
서, 기억 소자를 포함하지 않는다. 순서 논리 회로는 현재의 출력이 현재의
입력뿐 아니라 현재의 상태나 과거의 입력에 영향을 받는 회로로서, 일반적
으로 조합 회로와 기억 소자로 구성되어 있다.
•RS 플립플롭의 동작:표 Ⅴ-1 참조
•JK 플립플롭의 동작:표 Ⅴ-4 참조
•D 플립플롭의 동작:표 Ⅴ-5 참조
•T 플립플롭의 동작:표 Ⅴ-6 참조
2. 레지스터
•레지스터(register)는 컴퓨터를 포함한 디지털 시스템에서 여러 가지 연산 동
작을 위하여 1비트 이상의 2진 정보를 임시로 저장하기 위해 사용하는 기억
장치이다.
•직렬 입력/직렬 출력, 직렬 입력/병렬 출력, 병렬 입력/직렬 출력, 병렬 입력/
병렬 출력의 4가지 종류가 있다.
3. 동기식 계수 회로
•플립플롭과 같은 기억 소자가 하나의 클록 신호에 의해 동시에 변화하는 회로
4. 비동기식 계수 회로
•전체 회로가 하나의 공통 클록 신호에 동기화 되지 않고 각 기억 소자가 개
별적으로 변화하는 회로

단원 종합 문제 1. 다음 중 순서 논리 회로의 특징인 것은?


① 현재의 출력이 현재의 입력에만 의존한다.
② 메모리 성분을 포함하지 않는다.
③ 현재의 출력이 현재의 입력뿐만 아니라 현재의 상태, 과거의 입력에 의
존한다.
④ 같은 입력에 대해서는 항상 같은 출력이 나온다.
⑤ 현재의 출력은 현재의 입력과 무관하다.

2. NOR 게이트로 구성된 RS 플립플롭에서 S=1, R=0이고 클록이 발생할 때


플립플롭의 동작은?
① 저장된 값을 그대로 유지하고 있다.
② Q의 값을 1로 세팅한다.

211
순서 논리 회로/ 단원 종합 문제

③ Q의 값을 0으로 리셋한다.
④ 사용할 수 없다.
⑤ 토글한다.

3 JK 플립플롭에서 J=1, K=1이고 클록이 발생할 때 플립플롭의 동작은?


① 저장된 값을 그대로 유지하고 있다.
② Q의 값을 1로 세팅한다.
③ Q의 값을 0으로 리셋한다.
④ 사용할 수 없다.
⑤ Q의 값을 토글한다.

4. 상용 레지스터 IC에 있는 MR 단자의 역할은 무엇인가?


① 플립플롭을 0으로 한다.
② 전원을 연결한다.
③ 플립플롭에 원하는 값을 저장한다.
④ 클록 신호이다.
⑤ 비상 단자이다.

5. 다음 중 맞는 말은 ?
① 계수 회로는 모두 동기식 회로로 설계하여야 한다.
② 동기식 회로는 모든 플립플롭이 하나의 클록 신호에 의해 동시에 변화
한다.
③ 동기식 회로는 클록 신호와 관계 없이 동작한다.
④ 계수 회로는 모두 비동기식 회로로 설계하여야 한다.
⑤ 계수 회로는 조합 논리 회로이다.

6. 다음의 비동기 회로에 대한 설명 중 맞는 말은?


① 클록이 빠를수록 오동작의 가능성이 크다.
② 클록이 느릴수록 오동작의 가능성이 크다.
③ 오동작과 클록과는 관계가 없다.
④ 직렬로 연결된 플립플롭의 수가 많을수록 오동작의 가능성은 적다.
⑤ 플립플롭의 수는 오동작과 전혀 관계가 없다.

212
Ⅵ. 메모리와 프로그램 가능한 논리 소자
1. 메모리의 개요 대부분의 디지털 기기는 마이크로프로세서와
메모리 등으로 구성된 마이크로컴퓨터가 내장
2. ROM
되어 있으며, 메모리에 저장되어 있는 프로그램
3. RAM 에 따라 자동으로 동작한다.
4. 프로그램 가능한 논리 소자 디지털 회로를 구성하려면 여러 가지 논리
5. 마이크로프로세서 회로가 필요하며, 이러한 논리 회로는 74 계열
의 TTL과 40 계열의 CMOS의 칩을 사용하였
으나, 점차 프로그램이 가능한 논리 소자의 이
용이 늘어나고 있다. 복잡한 논리 회로를 한 개
의 프로그램이 가능한 논리 소자에 프로그램
하여 사용함으로써 부품 수를 줄여 소형화와
생산 비용 절감 등의 이득을 얻고 있다.
이 단원에서는 먼저 반도체 메모리에 대한
종류 및 동작 원리를 살펴본 다음에 ROM과
RAM에 대한 이해와 실험을 통한 사용법을 익
히고, 프로그램 가능한 논리 소자와 마이크로
프로세서에 대하여 학습하기로 한다.

메모리와 PLD 및 디지털 칩 등으로 구성된 프린트 기판기판

213
1 메모리의 개요
학습 목표 1. 반도체 메모리의 종류와 동작을 설명할 수 있다.
2. 메모리의 구성을 이해하고 기억 용량을 계산할 수 있다.

컴퓨터는 중앙 처리 장치(CPU)와 기억 장치(memory unit) 및 입출력 장치


(input output unit)로 구성되는데, 이 중에서 기억 장치는 CPU에서 처리할
프로그램이나 데이터를 저장하는 장치이다.
기억 장치는 주 기억 장치와 보조 기억 장치로 나눌 수 있으며, 주 기억 장
치는 CPU와 매우 빠른 속도로 데이터 전송이 이루어지므로 반도체 메모리 소
자가 사용되고 있다.
보조 기억 장치는 주 기억 장치에 비해 속도는 느리지만 많은 기억 용량을
저장할 수 있도록 한 것으로 하드 디스크, 플로피 디스크, 자기 테이프 등을 사
용하고 있다.
일반적으로, 메모리는 주 기억 장치인 반도체 메모리를 의미하며, 메모리에
데이터를 기억시키는 것을 쓰기(write)라 하고, 기억된 데이터를 메모리로부터
읽어들이는 것을 읽기(read)라 한다.

10010
+ 010 모두 내 명령에
복종해라.
여기를 보세요!
우리는 메모리
친구

살짝
누르세요.
우리는 버스 3총사
어드레스 버스
데이터 버스
제어 버스

호주머니
보조 기억 장치
속의 동반자
중 왕이야!

214
메모리와 프로그램 가능한 논리 소자/ 메모리의 개요

반도체 메모리에는 읽기만 가능하며, 전원을 끊어도 기억된 내용이 지워지지


않는 ROM과 읽고 쓸 수 있으나 전원을 끊으면 기억된 내용을 잃어버리는
RAM이 있다.

여러 가지의 용어가
있지만 다음에 설명한
메모리와 관련된
것들은 꼭 알아 두자.
용어에는 어떤 것들이
있나요?

① 주소(address):번지라고도 하며, 각각의 저장 장소를 구별한다.


② 워드(word):메모리의 한 번지에 기억할 수 있는 비트 수
③ 셀(cell):1 비트를 저장하는 저장 요소
④ 바이트(Byte):8개의 비트를 조합한 것
⑤ 메모리 용량(memory capacity):기억할 수 있는 총 비트 수 또는 바이트(byte)
수로 나타낸다.
⑥ 메모리 칩의 용량 표기:워드 수(주소의 개수)×워드의 비트 수(데이터 선의 수)
⑦ 어드레스 버스(address bus):주소 선 전체를 나타내는 말
⑧ 데이터 버스(data bus):데이터 선 전체를 나타내는 말

메모리의 용량을 나타낼 때 K(킬로), M(메가), G(기가) 등의 기호를 사용하


는데 K는 210(1024)을, M은 220을, G는 230을 의미하는 것으로, 일상적으로 사용
하는 10진수 체계와는 다르다.

메모리의 용량은 주소의 총 개수와 데이터 선 수의


곱이므로, 먼저 주소의 총 개수를 구해 보자.
주소의 총 개수=2주소 선의 수=212=22×210=4×1,024
=4096개이고, 데이터 선 수가 8개이므로 메모
리의 용량은 4096(4×210)×8=32,768 비트
이다. 이 용량은 32Kbit 또는 4KByte로
나타낸다.
주소 선이 12개이고,
데이터 선이 8개인 메모리의
용량은 어떻게 계산하나요?

일반적인 메모리는 그림 Ⅵ-1과 같이 CPU와 어드레스 버스, 데이터 버스 및


제어 버스 등을 통하여 접속되어 있으며, 메모리의 동작은 CPU의 제어 신호에
의하여 이루어진다. 제어 신호는 메모리 칩을 선택하는 CE(chip enable)과 데
이터의 읽기/쓰기를 선택하는 R/W(read/write) 등이 있다.

215
메모리와 프로그램 가능한 논리 소자/ 메모리의 개요

그림 Ⅵ-1게
CPU와 메모리의 접속 CPU 메모리

어드레스 버스 번
연산 회로 호 메모리 셀
디 메트릭스


데이터 버스
레지스터
I/O 버퍼 센스 업
입출력 게이트
제어 버스
제어 회로
열 번호 디코더
CE R/W

일반적인 메모리 내부는 데이터가 저장되는 메모리 셀이 행렬로 배치되어


있고, 지정한 번지를 알아 내는 해독기가 있으며, 데이터의 입출력 버퍼 및 제
어 신호에 의해 메모리의 동작 상태를 결정하는 입출력 게이트 등으로 구성되
어 있다.
메모리의 읽기 동작은 다음과 같다.
① CPU는 읽기를 할 메모리 번지를 어드레스 버스를 통하여 선택하며, 메모
리는 디코더에서 해독하여 번지를 지정한다.
② 메모리 칩을 선택하여 데이터 전송이 가능하도록 한다.
③ 메모리에 읽기 신호를 가하면 해당 번지의 데이터 값이 입출력 버퍼를 거
쳐 데이터 버스를 통하여 CPU에 전달된다.
메모리 읽기를 할 때, 메모리에 어드레스 신호를 가한 다음 메모리의 데이터
출력이 안정되는 데까지 걸리는 시간을 메모리 액세스 타임(memory access
time) 또는 호출 시간이라 한다.
메모리의 쓰기 동작은 다음과 같다.
① CPU는 써 넣을 메모리 번지를 어드레스 버스를 통하여 선택한다.
② 메모리 칩을 선택하여 데이터 전송이 가능하도록 한다.
③ CPU는 메모리에 저장하려는 데이터 값을 데이터 버스에 내보낸다.
④ 메모리에 쓰기 신호를 가하면 해당 번지에 데이터 값이 데이터 버스로부
터 들어와서 메모리 셀에 저장된다.
메모리 쓰기를 할 때, 메모리에 어드레스 신호를 가한 다음부터 데이터가 완
전히 저장되어 메모리가 다음 동작을 할 수 있을 때까지의 시간을 메모리 라
이트 사이클 타임(memory write cycle time)이라 하고, 메모리가 선택된 다음
데이터가 써질 때까지의 시간을 쓰기 시간(write time)이라 한다.

216
2 ROM
학습 목표 1. ROM의 종류와 특성을 설명할 수 있다.
2. ROM 기록기와 ROM 소거기를 사용할 수 있다.

ROM(read only memory)은 읽기만 할 수 있으며, 전원 공급에 관계 없이


저장된 내용을 반영구적으로 유지하는 비휘발성(non volatile) 메모리이다.
ROM은 사용자가 데이터를 써 넣을 수 없는 단점이 있으나 비휘발성으로 내
용이 지워지지 않기 때문에 언제든지 다시 사용할 수 있는 장점을 가지고 있
다. 이러한 특성을 이용하여 ROM은 컴퓨터의 바이오스(BIOS), 게임, 가전 기
기 들의 제어 프로그램 등과 같이 일정한 동작을 하는 프로그램을 저장하는
데 주로 사용한다.

1. ROM의 동작 원리
ROM의 일반적인 내부 구성은 그림 Ⅵ-2와 같으며, 기본적인 읽기 동작은 다
음과 같다. 먼저, 어드레스 입력 신호가 들어오면 입력 드라이브에서 증폭된 다
음 해독기에 의하여 해당하는 번지를 선택하게 되고, 선택된 ROM 셀들에 기
억된 내용이 출력 버퍼를 통하여 데이터 출력 단자에 나타나게 된다.

그림 Ⅵ-2게
A0 어
ROM의 구성 입
A1 드

어드레스 A 2 레 ROM 셀
드 스
입력 라 × 8비트



A9 브

칩 선택(chip select) 출력 버퍼

데이터 출력 D0 D1 D2 D3 D4 D5 D6 D7

ROM에는 어떻게 데이터가 저장되어 있는지 알아보자.


그림 Ⅵ-3 ⒜는 다이오드를 사용하여 구성한 8워드×4비트 ROM의 내부 구
조를 나타낸 것이다. 이 ROM은 8개의 번지선과 4개의 데이터 출력선 D0~D3
이 행렬을 이루고 있는데, 이들이 만나는 교점에 다이오드를 넣어 기억 소자로
작용시킨다.
3비트의 어드레스 입력 A2A1A0이 어드레스 해독기에 가해지면 8개의 번지
중 하나의 번지만 선택되며, 선택된 번지선만 1이 된다. 그러면 해당 번지선과

217
메모리와 프로그램 가능한 논리 소자/ ROM

그림 Ⅵ-3게
000
번 지 출력 테이터
8워드×4 비트 ROM
어 001 16진 A2 A1 A0 D3 D2 D1 D0 16진
어 A0
드 010

레 0 0 0 0 0 0 0 1 1
레 011
A 스 1 0 0 1 0 0 1 1 3
스 1 100
해 2 0 1 0 0 1 0 1 5
입 101

력 A2
110
3 0 1 1 0 1 1 1 7

111 4 1 0 0 1 0 0 1 9
5 1 0 1 1 0 1 1 B
6 1 1 0 1 1 0 1 D
D3 D2 D1 D0
데이터 출력 7 1 1 1 1 1 1 1 F
⒜ 내부 구조 ⒝ 데이터 값

데이터 출력선 사이에 있는 다이오드는 도통하게 되고, 해당 비트는 1이 출력


되며, 다이오드가 없는 비트의 데이터 출력은 0이 된다. 이 ROM의 000번지부
터 111번지까지의 데이터 값은 그림 Ⅵ-3 ⒝와 같다.
실제로 생산 판매되는 대부분의 ROM의 셀은 바이폴라 트랜지스터 및
MOS FET가 많이 사용되고 있다.
그림 Ⅵ-4 ⒜는 바이폴라 ROM의 셀 구조를 나타낸 것으로 어드레스 선이 1
일 때 데이터 선에 트랜지스터 이미터가 연결되어 있으면 트랜지스터가 ON
되어 1이 출력되고, 이미터가 떨어져 있는 데이터 선에는 0이 출력된다.
그림Ⅵ-4 ⒝는 MOS ROM의 셀을 나타낸 것이며, 데이터 선에 MOS FET
의 소스가 연결되어 있으면 1을, 연결되지 않았으면 0을 기억하고 있는 것이다.

그림 Ⅵ-4게
행(어드레스) 행(어드레스)
ROM셀의 구조 +VCC +VCC
+VCC +VCC

열(데이터) 열(데이터) 열(데이터) 열(데이터)


(1을 기억) (0을 기억) (1을 기억) (0을 기억)
⒜ 바이폴라 셀 ⒝ MOS 셀

2. ROM의 종류
ROM은 데이터를 기록하는 방법에 따라서 마스크 ROM, PROM, EPROM,
EEPROM 등으로 분류할 수 있다.

1 마스크 ROM

마스크(mask) ROM은 제조 과정에서 메모리 내에 데이터를 영구적으로 저


장하는 것이다.

218
메모리와 프로그램 가능한 논리 소자/ ROM

마스크야! 나도 난 창이 있어! 나는 창이 없어도


난 태어날 때부터
한 번만 공부하면 자꾸 자외선으로 머릿 전기로 머릿속을
머릿속이 꽉 차
너와 똑같아. 속을 배우지. 바꿀 수 있어!
있었어!

우리의 기억력은 영원하다. 우리는 새로운 지식으로


재충전할 수 있어.

마스크 ROM은 주문자가 반도체 제조 회사에 특별히 주문하여 만들며, 설계


단계부터 많은 데이터를 기록할 수 있도록 하기 위하여 ROM 셀에 데이터 값이
1일 경우에만 트랜지스터를 배치한다. 그렇기 때문에 다른 ROM에 비해 집적도
가 높으나 마스크 비용이 많이 들어가므로 대량 생산일 경우에 주로 사용된다.

2 PROM

PROM(programmable ROM)은 단 한 번만 기록할 수 있는 ROM이다.


구조적으로 ROM 내부의 모든 셀에 바이폴라 트랜지스터 또는 MOS FET
가 배치되어 있고, 이미터 또는 소스와 그 열 사이에 퓨즈가 접속되어 있는 형
태이다. 그림 Ⅵ-5는 바이폴라 PROM의 구조를 나타낸 것이다.
PROM 모든 번지의 데이터 값은 프로그램하기 전에는 모두 1이며, 프로그램
은 PROM 기록기라는 특수한 장비를 사용하여 많은 전류를 선택적으로 흘려
보내 해당 셀의 퓨즈를 끊어 0을 기억하게 하는 것이다.

그림 Ⅵ-5게
바이폴라 PROM의 구조 +VCC

퓨즈




열 데이터

219
메모리와 프로그램 가능한 논리 소자/ ROM

이와 같이 한 번 프로그램 된 PROM은 마스크 ROM과 같으며, 기억 내용을


변경하거나 지울 수 없다.

3 EPROM

EPROM(erasable programmable ROM)은 기록과 소거가 가능한 ROM으


로 메모리 셀은 MOS FET로 되어 있다.
그림 Ⅵ-6은 EPROM 셀의 구조를 나타낸 것이다.

S(소스) G(게이트) D(드레인)


그림 Ⅵ-6게
VDD
EPROM셀의 구조
컨트롤 게이트 G
플로팅 게이트
알루미늄 전극

N 채널 N 산화막 절연체
FG
P형 Si 가판
읽기 출력

MOS FET의 게이트가 2층 구조로 채널에 가까운 쪽의 게이트는 전기적으로


어디에도 접속되어 있지 않은 플로팅 게이트(floating gate: FG)이다.
셀의 동작을 살펴보면, n채널 FET에서 먼저 플로팅 게이트에 전자가 없을
때 컨트롤 게이트가 1이면, 채널은 도통 상태로 드레인 전류가 흐르므로 출력
은 1이다. 플로팅 게이트에 전자가 있을 때에는 그 영향으로 게이트가 1이 되
어도 채널은 도통 상태가 되지 못하며, 드레인 전류는 흐르지 못하므로 출력은
0이 된다.
플로팅 게이트에 전자를 가지게 하는 조작이 써넣기이다. 현재 시판 중인
EPROM은 대부분 소스와 드레인 사이에 +12.5~+25V 정도의 높은 전압을 가
하여 드레인과 P형 기판의 접합부에 항복 현상(breakdown)을 발생시키고, 이
때 에너지가 높은 전자는 플로팅 게이트로 넘어 들어가며, 이 전자는 주변이
절연물이므로 플로팅 게이트에 그대로 남는 것을 이용하고 있다.
써넣기를 할 때 컨트롤 게이트에 양의 전압을 가하면 접합부 부근의 전계가
강해지므로, 항복을 일으키는 전압이 낮아지고 플로팅 게이트에 끌어드리는 전
자가 가속되어 써넣기 시간이 빨라진다. 플로팅 게이트에 있는 전자는 자외선
을 쬐면 에너지를 얻어 원래 상태로 돌아가므로 소거가 가능하다.
EPROM은 제조 직후나 소거 완료 상태에서는 전체 메모리 소자의 플로팅
게이트에 전자가 존재하지 않으므로 모든 번지의 데이터 값은 모두 1로 되어
있다. ROM에 데이터를 써넣기 위해서는 ROM 기록기(ROM writer)에 데이터
를 먼저 기억시키고 나서 ROM에 프로그램을 하며, ROM의 데이터를 지울 때
는 ROM 소거기(ROM eraser)를 사용하여 칩 위의 창을 통하여 자외선을 10~
20분 정도 쬐어 준다.

220
메모리와 프로그램 가능한 논리 소자/ ROM

그림 Ⅵ-7은 ROM 기록기와 소거기를 나타낸 것이다.

그림 Ⅵ-7게
ROM 기록기와 소거기

⒜ ROM 기록기 ⒝ ROM 소거기

4 EEPROM

EEPROM(electrically erasable programmable ROM)은 전기적으로 기록과


소거가 가능한 ROM으로, 전체를 한꺼번에 소거하지 않고 워드 단위로 소거한
다. EEPROM은 ROM 기록기만으로 써넣기와 소거를 할 수 있으며, 소거 속도
도 빠르다.
이와 같은 장점도 있지만 EPROM 보다 가격이 비싸며, 집적도가 낮다. 그리
고 RAM과는 달리 읽고 쓰는 횟수에 제한이 있다. 즉, RAM은 사실상 무한정
읽고 쓸 수 있지만, EEPROM은 일정한 수치 이상으로 기록 및 삭제 작업을
반복할 경우, 더 이상 쓸 수 없게 된다.

5 플래시 메모리

플래시 메모리(flash memory)는 EEPROM의 한 종류이며 블록 단위로 다


시 프로그래밍이 가능한 메모리로서 ROM과 RAM의 특성을 모두 가지고 있
는 메모리이다. 이렇게 말하는 이유는 플래시 메모리는 전원을 끊어도 기억된
내용을 유지하는 불 휘발성 메모리이므로 평소에는 ROM으로의 역할을 하지
만 필요에 따라서는 내부의 데이터를 다른 것으로 써 넣는 것이 가능하기 때
문이다.

실습 과제 Ⅵ-1 EPROM의 프로그래밍과 데이터 읽기

사용 재료 품 명 규 격 수 량 품 명 규 격 수 량

ROM 2764 1개 330W 8개


저항기
IC 소켓 28pin 1개 4.7kW 5개

LED 5F, 적색 8개 스위치 DIP 4P 1개

누름 스위치 소형 1개 배선 재료 단선, 땜납 1m

만능 기판 28×62 1장

221
메모리와 프로그램 가능한 논리 소자/ ROM

실습 기기
기기명 규 격 수 량 기기명 규 격 수 량

직류 전원 장치 5V 1대 ROM 소거기 자외선 1대

회로 시험기 VOM 1대 ROM 기록기 8751 기록 가능 1대

메모리 실험 장치 ROM, RAM 1대 로직 테스터 1대

안전 및 유의 사항 1. 기계 및 기구와 공구는 항상 정돈된 상태로 실습에 임한다.


2. ROM 소거기의 자외선을 오랫동안 쳐다보거나 피부에 쪼이지 않는다.
3. ROM 기록기의 사용 방법을 정확하게 익힌 다음 ROM을 써 넣는다.

실습 순서 그림 Ⅵ-8과 같이 회로를 구성하고, 결선 상태를 확인한다.


VCC
그림 Ⅵ-8게
ROM 2764의 읽기 회로도
4.7k×4 VCC
28
DIP-SW1 VDD
1 8 10
2 7 9 A0
A1 LED×8
D0 11
3 6 8
4 5 7 A2
A3
D 12
6
5 A4 1
A5
D2 13
4
VCC 3 A6
A7
D 15
25
A8
24
21
A9
A10
2764 3

D4 16
23 A11
D 17
2
A12 5
4.7k
D6 18
20
1 CS
VPP
D 19
27
SW2 PGM 7
22
OE 330×8
VSS
14

ROM 기록기로 ROM 2764가 소거되어 있는지 검사하여, 데이터가 있을 경


우에는 소거기에 넣고, 약 15분 정도 자외선을 비추어 소거한다.
소거 작업이 끝나면, ROM을 제작한 기판의 소켓에 끼우고, 전원을 가한 다
음 DIP 스위치로 번지를 선택하며, 소거 후의 값을 표 Ⅵ-1에 기록한다.
전원을 끈 다음 ROM을 꺼내어 ROM 기록기에 넣는다.
표 Ⅵ-1의 기억시킬 데이터들을 ROM 기록기의 0H 번지부터 0FH 번지까지
에 입력한 다음에 써넣기를 한다.
데이터를 써넣은 ROM을 다시 기판의 소켓에 끼우고, 전원을 가한 다음에
DIP 스위치로 0H 번지부터 0FH 번지까지 각 번지마다 SW2를 눌러 기억된
데이터 값을 읽어 표 Ⅵ-1에 기록한다.

222
메모리와 프로그램 가능한 논리 소자/ ROM

2진 값을 16진 값으로 환산하여 기록하고, 기억시킨 데이터 값과 읽어낸 데


이터 값이 서로 같은지 비교해 본다.
회로의 전원을 껐다가 1분 후에 다시 전원을 켠 다음 0H번지부터 0FH번지
까지 데이터값을 읽어 내어 데이터가 그대로 기억되어 있는지 확인한다.
확인이 끝났으면 기판의 전원을 끈다.

결과 정리 번지 DIP-SW1 기억할 데이터 읽기 데이터-LED 출력 소거 후의


표 Ⅵ-1 A3 A2 A1 A0 10진수 16진 D7 D6 D5 D4 D3 D2 D1 D0 16진 값(16진)
ROM 2764의 소거, 써넣기,
읽기 결과표 0 0 0 0 0(02) 00
2
0 0 0 1 1(1 ) 01
2
0 0 1 0 4(2 ) 04
0 0 1 1 9(32) 09
2
0 1 0 0 16(4 ) 10
2
0 1 0 1 25(5 ) 19
2
0 1 1 0 36(6 ) 24
0 1 1 1 49(72) 31
2
1 0 0 0 64(8 ) 40
2
1 0 0 1 81(9 ) 51
2
1 0 1 0 100(10 ) 64
1 0 1 1 121(112) 79
2
1 1 0 0 144(12 ) 90
2
1 1 0 1 169(135 ) A9
2
1 1 1 0 196(14 ) C4
1 1 1 1 225(152) E1

심화 과제 1. EEPROM을 이용하여 데이터를 기록하고 소거하는 실습을 해 보자.


2. 개인용 컴퓨터와 인터페이스 되는 ROM 기록기를 이용하는 실습을 해 보자.

223
3 RAM
학습 목표 1. RAM의 종류와 특성을 설명할 수 있다.
2. RAM의 읽기와 쓰기 동작을 이해할 수 있다.

RAM(random access memory)은 데이터를 자유롭게 읽고 쓸 수 있는 메


모리로, 이미 어떤 데이터가 기억되어 있는 곳에 새로운 데이터를 써 넣으면
먼저 기억된 것은 없어지고 새 데이터가 기억된다. 또, RAM을 읽거나 써 넣을
때 모든 주소에서 동일한 시간이 걸린다.
RAM은 전원이 끊어지면 기억 내용을 모두 잃어버리는 휘발성 메모리로
셀은 바이폴라 트랜지스터나 MOS FET로 구성되어 있다. RAM은 셀 내부가
플립플롭의 조합으로 구성된 정적 RAM(static RAM, SRAM)과 커패시터에
전하를 충전시켜서 데이터를 기억하는 동적 RAM(dynamic RAM, DRAM)
으로 나뉜다. DRAM은 커패시터에 충전된 전하가 시간이 지나면 자연적으로
소멸되기 때문에 일정 시간 간격으로 다시 충전하는 리프레시(refresh)가 필요
하다.
바이폴라 RAM은 모두 SRAM이며, MOS RAM에는 SRAM과 DRAM이 있다.

1. SRAM
SRAM은 DRAM에 비해 속도가 빠르고, 플립플롭에서 안정된 데이터를 가
지기 때문에 리프레시가 필요 없는 장점을 가지고 있으나, 셀의 구조가 복잡하
므로 집적도가 떨어져 칩 크기가 크고 가격도 비싸다.
SRAM 셀은 바이폴라 트랜지스터와 MOS FET로 각각 구성할 수 있으며
MOS형이 구조가 간단하고 집적도가 높으므로 기억 용량이 큰 SRAM은 대부
분 MOS FET 셀을 사용한 것이다.

1 바이폴라 트랜지스터 메모리

바이폴라 SRAM은 MOS SRAM에 비해 속도가 빠르나 구조가 복잡하고 전


력 소비가 크므로 빠른 속도가 요구되는 캐시 메모리에 사용된다.
메모리 셀은 그림 Ⅵ-9와 같이 바이폴라 트랜지스터로 구성된 플립플롭이며,
트랜지스터의 이미터는 2중 구조로 되어 있다. 이 플립플롭은 TR1과 TR2로 구
성되어 있는데, 반드시 1개의 트랜지스터만 ON된다.
동작 원리를 살펴보면 어드레스가 선택되지 않았을 때, 이 선은 0V의 전압이
걸려 트랜지스터 TR1과 TR2 중에서 ON되는 것의 이미터 전류는 어드레스 선

224
메모리와 프로그램 가능한 논리 소자/ RAM

난 열심히 복습
우리는 열심히 공부하는
하지 않으면 금방
오늘 공부는 RAM 친구. 항상 새로운 잊어 버리니까.
끝냈으니 이제
지식을 머릿 속에 넣고, 힘내서 복습을!
쉬어야지! 정전만
안 되면 푹 잘 수 남에게도 알려 주는 메
있을 텐데? 모리이다.

SRAM DRAM

그림 Ⅵ-9게 데이터1
+5V 데이터0 쪽으로 흐른다. 그러나 어드레스가 선
바이폴라 셀 택되어 +5V가 가해지면 이미터 전류
RC RC
는 어드레스 선 쪽으로 흐르지 못하
고, 데이터 선 쪽으로만 흐르게 된다.
플립플롭에서 TR1이 ON이고 TR2
TR1 TR2 가 OFF일 때를 논리 1상태, TR1이
어드레스 선 OFF이고 TR2가 ON일 때를 논리 0을
Re Re 기억한 상태라고 가정한다.
데이터를 읽기 위하여 어드레스를
선택하면, 기억 소자가 1을 기억하고 있을 때에는 데이터 1 쪽의 저항에 전류
가 흐르고, 0을 기억하고 있을 때에는 데이터 0 쪽의 저항에 전류가 흐른다.
메모리 셀에 데이터를 써넣을 경우, 어드레스 전압을 +5V로 높여서 논리 1
상태로 하고, 0을 기억시킬 때에는 데이터 0에 0V를, 데이터 1에 +5V를 가하
면은 TR1은 OFF되고 TR2는 ON이 되어 논리 0을 기억하게 된다.
이와 반대로 1을 기억시킬 때에는 데이터 1에 0V를, 데이터 0에 +5V를 가
해 주면 된다.

2 MOS FET 메모리


데이터 1 데이터 0
그림 Ⅵ-10게 어
MOS SRAM 메모리 셀 드 MOS SRAM은 바이폴라 SRAM

스 보다 속도는 느리지만 가격이 싸고,

TR3 TR4
고밀도로 집적할 수 있으며, 전력
TR5 TR6 소비도 적기 때문에 많이 이용되고
있다.
TR1 TR2
그림 Ⅵ-10은 MOS FET로 플립
데이터 입력 플롭을 구성한 메모리 셀을 나타낸

225
메모리와 프로그램 가능한 논리 소자/ RAM

것이다. TR1과 TR2는 플립플롭을 구성하며 TR3과 TR4는 각각 TR1과 TR2의 부


하 저항으로 동작한다.
TR5와 TR6은 전자적인 스위치로 동작하며 어드레스를 선택할 때에는 ON되
고, 선택하지 않을 때에는 OFF된다.
플립플롭에서 TR1이 OFF이고 TR2가 ON일 때에는 논리 1상태이며, TR1이
ON이고 TR2가 OFF일 때에는 논리 0을 기억한 상태이다.
읽기 동작은 어드레스 선에 VDD를 가하여 선택하면 TR5와 TR6의 스위치는
ON이 되어 데이터 선에 TR1과 TR2의 상태가 전달되어 나타난다.
만일 플립플롭이 1을 기억하고 있다면, TR1은 OFF, TR2는 ON 상태로서 데
이터 1에 1이 출력된다.
쓰기 동작은 데이터 입력 단자에 써 넣을 데이터를 가하고 어드레스를 선택
하면 된다. 써 넣을 값이 0이라면 데이터 입력 단자에 0을 가하고 어드레스를
선택하면 TR5와 TR6은 ON이 되고 TR1의 드레인에 0V, TR2의 드레인에 +5V
가 가해지므로 TR1은 ON TR2는 OFF가 된다. 이 상태는 플립플롭이 논리 0을
기억한 상태이며, 어드레스 선택을 취소하여도 플립플롭의 논리 상태는 변화하
지 않고 기억시킨 0을 유지한다.
이와 같은 메모리 셀들을 배치하여 메모리를 구성할 때 어드레스를 선택하
는 방식에 따라 선형 선택형(linger select type)과 행렬 일치형(coincident
decode type)이 있다.
선형 선택형은 모든 지정 번지를 하나의 어드레스 디코더를 사용하여 메모
리 셀들을 접속한 방식으로, 워드 수가 적은 경우에 사용된다.
행렬 일치형은 셀들을 행과 열로 배치하며, 어드레스 또한 행 어드레스와 열
어드레스로 나누어져 있는 방식으로, 워드 수가 많은 경우에 사용된다.

2. DRAM
DRAM의 메모리 셀들은 비트를 저장하는 데 플립플롭을 사용하는 것이 아
니라 작은 커패시터(capacitor)를 사용한다. 이러한 셀 구조는 아주 간단하게
구현이 가능하므로 집적도가 높으며, 그로 인해 SRAM보다 비트당 비용이 싸
게 되어 대규모 메모리를 하나의 칩으로 설계할 수 있다.
DRAM의 단점은 기억하는 커패시터가 일정 시간이 지나면 그의 전하를 유
지할 수 없으므로 전하를 주기적으로 재충전(refresh)시켜 주어야 한다는 것이
다. 그렇지 않으면 데이터가 없어지게 된다.
그림 Ⅵ-11은 커패시터로 구성된 DRAM 메모리 셀이 표시되어 있는데, 여기
서 트랜지스터는 스위치로 동작한다. DRAM의 동작 과정을 설명하면 다음과
같다.

226
메모리와 프로그램 가능한 논리 소자/ RAM

그림 Ⅵ-11게 1 쓰기 모드
쓰기
DRAM 메모리 셀 VDD 어드레스 선

TR2 쓰기 데이터 선에‘1'을 공급하


TR1 고 쓰기 어드레스 선을‘H' 상태
TR3
C 로 하면 TR1이 ON이 되어 커패
읽기 시터에 전류가 흘러 충전이 된다.
어드레스 선
쓰기 C에 기억 읽기 이와 같이, 커패시터에 충전이
데이터 선 데이터 선
되면 TR2의 게이트 전압이 상승
하여‘H'가 되므로 TR3도 ON 상태가 된다.
이와 같은 상태가‘1'이 기억된 상태이며, 커패시터에 충전된 전하는 어느 정
도 시간이 지나면 자연적으로 방전을 한다.
만일, 0을 기억시킬 때에는 쓰기 데이터 선을 0으로 두면 커패시터는 충전되
지 않는다. 즉, 커패시터에 1이 저장되어 있다 하더라도 쓰기 데이터 선이 0이
되면 바로 방전을 하게 되어 0으로 기억된다.

2 읽기 모드

현재 1을 기억하고 있는 상태라 할 때, TR2는 ON 상태이다. 이 때, 데이터


값을 읽어오기 위해서 읽기 어드레스 선을 H 상태로 하면 TR3가 ON되어 데이
터 값 1은 읽기 데이터 선에 나타나므로 읽기 동작을 한다.

3 재충전

DRAM의 메모리 셀은 재충전하기 위해서는 메모리 셀에 부가적인 회로가


필요하며, 실제 DRAM을 사용할 때에는 2~4ms마다 재충전을 반복 수행하여
야 한다. 재충전 기간에는 데이터를 읽거나 쓸 수 없다.

실습 과제 Ⅵ-2 SRAM의 데이터 쓰기 및 읽기

사용 재료 품 명 규 격 수 량 품 명 규 격 수 량
RAM 6264 1개 330W 8개

IC 소켓 28pin 1개 저항기 1kW 8개

LED 5F, 적색 8개 4.7kW 7개

만능 기판 28×62 1장 DIP 4P, 8P 각 1개

스위치 누름 스위치 2개
배선 재료 단선, 땜납 각 1m
토글 스위치 1개

실습 기기 기기명 규 격 수 량 기기명 규 격 수 량

직류 전원 장치 5V, 1A 1대 회로 시험기 VOM 1대

메모리 실험 장치 ROM, RAM 1대 로직 테스터 1대

227
메모리와 프로그램 가능한 논리 소자/ RAM

안전 및 유의 사항 1. 기계 및 기구와 공구는 항상 정돈된 상태로 실습에 임한다.


2. 실습 순서를 지키고 납땜 작업을 할 때 안전에 주의한다.
3. LED의 극성이 틀리지 않도록 주의한다.

실습 순서 그림 Ⅵ-12와 같이 회로를 구성하고, 결선 상태를 확인한다.


어드레스 핀은 A0~A3의 4비트만 사용하여 24=16개의 번지(0000H~000FH)
만을 지정할 수 있으며 사용하지 않는 A4~A12의 9개의 핀은 접지시킨다.
모든 입력은 풀업 저항을 통해 +5V에 연결되어 있으므로 DIP SW1의 스위
치를 켜면 0이 되고, 스위치를 끄면 1 상태가 된다.
VCC
그림 Ⅵ-12게
SRAM의 읽기와 쓰기 회로도
VCC
1k×8
DIP-SW2

4.7k×4 VCC
28
DIP-SW1 VDD
1 8 10
2 7 9
A0
3 6 8 A1
A2
D0 11
4 5 7
6 A3
A4
5
4 A5 D 12
1
A6
VCC D2 13
3
25
A7
A8
6264 D 15
24 A9
21 3
A10
23
2
A11 D4 16
SW3 4.7k×3 A12
20 D 17
5
PS1 CS1
D6 18
26
쓰기 27 CS2
WE
RD 22 D 19
7
OE
읽기 PS2 330×8 LED×8
VSS
14

RAM의 16개의 번지 00H~0FH에 다음과 같은 순서로 표 Ⅵ-2에 나타낸 데


이터를 써넣기한다.
⑴ 쓰기/읽기 선택 스위치 SW3을 쓰기 쪽으로 선택한다.
⑵ DIP SW1의 모든 스위치를 켜서 00H 번지로 지정한다.
⑶ 써 넣을 데이터 값이 00H가 되게 DIP SW2의 모든 스위치를 켠다.
⑷ 누름 스위치 PS1은 데이터를 기억시키는 스위치로 한 번 눌렀다 놓으면
I/O 핀에 가해진 데이터가 기억된다.
⑸ 번지를 증가시키면서 위의 과정을 반복하여 0FH 번지까지 데이터를 써
넣는다.
RAM에 기억된 데이터 읽기를 다음과 같은 순서로 진행한다.
⑴ SW3을 읽기 쪽으로 전환한다.
¿¿=1,
⑵ 이 때, 출력 LED는 모두 켜진다. 그 이유는 6264의 D(I/O) 핀은 WE

228
메모리와 프로그램 가능한 논리 소자/ RAM

¿¿=1 상태일 때에는 출력이고 임피던스 상태(high-Z)이나 LED는 풀


OE
업 저항을 통하여 전류가 흐르므로 켜진다.
⑶ 누름 스위치 PS2는 데이터를 출력시키는 스위치로 누르면 지정한 번지
의 데이터를 출력하여 LED에 나타나게 된다. 이 때, LED가 켜진 것은
1이고, LED가 꺼진 것은 0이다. LED에 나타난 데이터를 표 Ⅵ-2에 기록
하고, 기억시킨 데이터와 같은 값인지 확인한다.
RAM에 데이터의 쓰기와 읽기가 끝나면 약 2분 정도 놓아 둔다.
임의의 번지를 선택하여 기억된 값이 계속 유지되는지 확인한다.
전원을 껐다 잠시 후 다시 켠다.
번지 지정을 하며 기억된 데이터 값을 확인하여 표 Ⅵ-2에 기록한 값과 비
교한다.
데이터 값이 어떻게 되었는지를 표 Ⅵ-2에 기록한다.
모든 실습이 끝나면 전원을 끄고, 회로를 분리하여 정리한다.

결과 정리 번지 DIP-SW1 쓰기 데이터 DIP-SW2 읽기 데이터-LED 출력


표 Ⅵ-2 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 16진 D7 D6 D5 D4 D3 D2 D1 D0 16진
SRAM 6264의 읽기 및 쓰
0 0 0 0 0 0 0 0 0 0 0 0 00
기 결과표
0 0 0 1 0 0 0 1 0 0 0 1 11
0 0 1 0 0 0 1 0 0 0 1 0 22
0 0 1 1 0 0 1 1 0 0 1 1 33
0 1 0 0 0 1 0 0 0 1 0 0 44
0 1 0 1 0 1 0 1 0 1 0 1 55
0 1 1 0 0 1 1 0 0 1 1 0 66
0 1 1 1 0 1 1 1 0 1 1 1 77
1 0 0 0 1 0 0 0 1 0 0 0 88
1 0 0 1 1 0 0 1 1 0 0 1 99
1 0 1 0 1 0 1 0 1 0 1 0 AA
1 0 1 1 1 0 1 1 1 0 1 1 BB
1 1 0 0 1 1 0 0 1 1 0 0 CC
1 1 0 1 1 1 0 1 1 1 0 1 DD
1 1 1 0 1 1 1 0 1 1 1 0 EE
1 1 1 1 1 1 1 1 1 1 1 1 FF
전원을 껐다 켠 후의 데이터 변화

탐구 문제
1. 메모리의 종류와 특성을 인터넷에서 조사하여 보자.
2. 플래시 메모리에 대해서 인터넷을 통하여 조사하여 보자.

229
4 프로그램 가능한 논리 소자
학습 목표 1. 프로그램 가능한 논리 소자의 종류와 특징을 설명할 수 있다.
2. 프로그램 가능한 논리 소자를 사용한 논리 회로를 작성할 수 있다.

프로그램 가능한 논리 소자(programmable logic device, PLD)는 조합 논리


회로를 프로그래밍 하여 사용할 수 있도록 만든 집적 회로이다.
PLD 내부의 기본적인 구조는 논리식의 곱의 합(sum-of-product) 형식을 실
현될 수 있도록 AND 게이트와 OR 게이트의 2단 배열(array)로 나누어져 있
다. PLD 내부의 퓨즈는 초기 상태에서 모두 연결되어 있으며, 프로그래밍에 의
해 원하는 동작을 할 수 있도록 퓨즈를 절단시킨다. PLD의 프로그래밍은 전용
기록기를 사용한다. PLD는 프로그래밍을 할 수 있는 퓨즈(fuse)의 위치에 따
라 PLE, PLA, PAL 등의 3가지 형태가 있다.

P LD 삼총사가 반가산기에 대하여 공부한 모습이다.

난 AND 입력은 난 AND와 OR 입력 모두


난 OR 입력은 고정되어
고정되어 있어서 OR 를 프로그램 할 수 있어!
있고, AND 입력만 프로
입력만 프로그램해야 돼. 논리식을 간단하게 만든
그램할 수 있어.
다음 프로그램해 줘!

일반적인 PLD는 PROM과 같이 한 번 써 넣으면 내용을 바꿀 수 없으므로


설계를 정확하게 하여야 한다. 최근에는 EEPROM과 같이 내부 로직을 전기적
인 방법으로 지우고 다시 써넣을 수 있는 PLD들이 생산되고 있다.
지우고 다시 써넣기가 가능한 PLD로는 PALCE(programmable array logic
CMOS electrically erasable)과 GAL(gate array logic) 등이 있다. PALCE와
GAL은 CMOS로 만들어져 소비 전력이 작고 속도가 빠르며, PAL과 동작 특
성이 비슷한 점이 많지만 각 출력 핀에 OLMC(output logic macro cell) 기능
이 추가되어 사용자가 입출력을 자유롭게 설정할 수 있으므로 PAL 소자보다

230
메모리와 프로그램 가능한 논리 소자/ 프로그램 가능한 논리 소자

더 많은 유연성을 제공한다.

1. PLE
그림 Ⅵ-13게 입력 C B A PLE(programmable logic
8×4 PLE의 구조
OR 배열(프로그래밍)
element)는 AND 입력은 고

0
정시키고, OR 입력만을 프로
1 그램할 수 있는 PLD를 말한
2 다. PLE 구조는 가능한 모
3
든 입력 조합에 대한 출력을
4
요구하는 응용 회로에 매우
5

6 적합하다.
7 그림 Ⅵ-13은 8×4 PLE를
AND 배열(고정) 나타낸 것이다. 이것은 3개의
입력을 가지고 있으며, AND
Q3 Q2 Q1 Q0 출력
배열에서 완전히 해독된다.
즉, 각각의 게이트는 8개의 가능한 곱의 항 중에 한 개의 곱의 항을 생성한다.
입력선에서 AND 배열까지는 고정적인 연결 상태이며, 이에 반하여 AND 배열
의 출력선에서 OR 배열의 입력선까지는 모두 프로그램을 해야 한다.

2. PLA
PLA(programmable logic array)는 AND 입력과 OR 입력 모두를 프로그램
할 수 있는 PLD로 가장 융통성 있게 프로그램할 수 있으나, 동작 속도와 집적
도가 다른 PLD에 비하여 조금 떨어지는 단점이 있다. PLA는 AND 게이트 배
열과 OR 게이트 배열 및 연결 고리(fuse-link)들로 구성되어 있다.
그림 Ⅵ-14는 n개의 입력, m개의 출력, k개의 곱의 항, m개의 합의 항들로
구성되어 있는 PLA의 블록도를 나타낸 것이다. 곱의 항들은 k개의 AND 게이
트로 구성되며, 합의 항들은 m개의 OR 게이트로 구성된다.
이 때, 연결 고리의 개수는 (2n×k)+(k×m)+m이다. 반면에 ROM의 연결
고리의 수는 2n×m개이다.

그림 Ⅵ-14게
PLA의 구조 n×k개 링크 m개 링크
n개
입력 k×m개 링크
k개 곱의 항 m개 합의 항
(AND 배열) (OR 배열)
n×k개 링크 m개
출력

231
메모리와 프로그램 가능한 논리 소자/ 프로그램 가능한 논리 소자

PLA의 크기는 입력 수, 곱의 항들의 수, 합의 항들의 수인 출력 수에 의해


결정된다. 대표적인 PLA는 16개의 입력, 48개의 곱의 항 그리고 8개의 출력을
가진다.
PLA를 사용한 회로 설계 방법은 다음 순서로 한다.
(1) 논리 함수 출력에 대한 간소화된 논리식을 구한다. 또, 각 출력의 보수에
대한 간소화된 논리식도 함께 구한다.
(2) 각 출력 함수와 보수의 논리식에서 최소항의 개수가 제일 적게 포함된
조합을 선택한다. 이 때, 모든 출력 함수는 반드시 포함시키고, 각 출력 함수는
자신 또는 보수 중에서 하나만 선택하면 된다. 만일, 최소항의 개수가 같을 때
는 변수의 개수가 작은 조합을 선택한다. 이렇게 하는 이유는 곱의 항에 사용
되는 AND 게이트의 수를 최소화하기 위해서이다.
(3) 앞에서 구한 최소항을 이용하여 PLA를 프로그래밍한다.
PLA를 프로그래밍한다는 것은 AND-OR-NOT의 형태로 통로들을 지정하는
것이다.

3. PAL
PAL(programmable array logic)은 고정된 OR 배열과 프로그램 가능한
AND 배열로 구성된 프로그램 가능한 논리 소자이며, 현재 가장 많이 사용되
고 있는 PLD이다. AND 게이트만 프로그래밍하기 때문에, PAL은 프로그램을
작성하기 쉬우나 PLA와 같은 유연성은 없다.
그림 Ⅵ-15는 전형적인 4입력-4출력 PAL의 논리 구조를 보여 주고 있다. 여
기에는 4개의 입력과 4개의 출력이 있으며, 각 입력은 버퍼(buffer)와 인버터
(inverter)를 거치고, 각 출력은 고정된 OR 게이트에서 나타난다.

그림 Ⅵ-15게 AND 게이트 입력

PAL의 구조 곱의 항 1 2 3 4 5 6 7 8 9 10
1
2 F1
3
I1
1
2 F2
3
I2
1
2 F3
3
I3
10
11 F4
12
I4

232
메모리와 프로그램 가능한 논리 소자/ 프로그램 가능한 논리 소자

구성 단위는 4부분으로 되어 있고, 각 부분마다 3개의 프로그램이 가능한


AND 게이트와 고정된 하나의 OR 게이트가 있다. 각 AND 게이트는 퓨즈로
연결된 10개의 프로그램 가능한 입력을 가지고 있다. 이것은 그림 Ⅵ-15에서
보듯이, 각 수평선에 10개의 수직선이 교차하고 있는 것이다.
수평선은 AND 게이트의 다중 입력 구성을 기호화하고 있다. 출력 중에서 어
느 하나가 버퍼-인버터 게이트에 연결되어 퓨즈를 통해 AND 게이트의 입력으
로 되먹임되어 있다.
PAL를 사용하여 설계할 때 불 함수는 각 부분에 적합하도록 간소화해야 한
다. PLA와는 다르게 곱의 항을 공유하지 않기 때문에, 공통되는 곱의 항을 만
드는 데 신경 쓰지 않고 각 논리 함수를 곱의 항의 수가 최소가 되도록 간소화
한다.

탐구 문제
1. PLD의 종류와 특징 등을 인터넷을 통하여 조사하여 보자.
2. PLD를 프로그램하기 위해서는 PALASM이라는 프로그램을 사용하는
데, 그 사용법을 인터넷을 통하여 익혀 보자.

233
5 마이크로프로세서
학습 목표 1. 마이크로프로세서의 내부 구조 및 명령을 설명할 수 있다.
2. 어셈블리 프로그램을 작성하고, 어셈블러를 사용할 수 있다.
3. 마이크로프로세서를 이용하여 간단한 제어를 할 수 있다.

1. 마이크로프로세서의 개요
컴퓨터는 연산 장치, 제어 장치, 기억 장치, 입력 장치, 출력 장치들로 구성되
는데, 그 중에서 연산 장치와 제어 장치를 합하여 중앙 처리 장치(central
processing unit, CPU)라 한다. 또, 입력 장치와 출력 장치를 합하여 입출력
(I/O:input/output) 장치 또는 주변(peripheral) 장치라고 한다.
마이크로프로세서(microprocessor unit, MPU)는 한 개의 대규모 집적 회로
(LSI)에 연산과 제어 장치를 구성한 것으로 한 개의 칩으로 된 CPU를 가리킨
다. 마이크로프로세서는 인텔(Intel)이 세계 최초로 1969년에 발표한 4비트용
4004로부터 시작하여 급속한 발전을 거듭하였고, 현재는 32비트용이 주로 사용
되고 있다.

ROM RAM
C
P I/O 원칩 마이크로프로세서
U 타이머 클록

・・・
・・・・・・・・・

마이크로프로세서 중에서 내부에 메모리와 입출력 포트 등을 내장시켜 하나


의 칩으로 만들어 제어용으로 사용하는 것을 원칩 마이크로프로세서 또는 마
이크로컨트롤러 시스템(micro controller system, MCS)이라고 부른다.
현재 제어용으로는 8비트와 16비트 마이크로컨트롤러를 많이 이용한다.

234
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

2. 마이크로프로세서의 구조
마이크로프로세서는 크게 처리 부분과 제어 부분으로 구성되며 세분하면 연
산 기능을 담당하는 연산 장치, 제어 기능을 담당하는 제어 장치, 기억 기능을
담당하는 레지스터들과 전달 기능을 담당하는 버스로 그림 Ⅵ-16과 같이 구성
되어 있다.

그림 Ⅵ-16게
CPU 내부
마이크로프로세서의 구조 M
B
R
데이터 버스
누산기

PSWR 레지스터부
ALU
V Z S C

클록 펄스 명

해 M
타이밍 발생기 독 A
기 R
주소 버스

제어 장치
제어 버스

1 연산 장치

연산 장치(arithmetic logic unit, ALU)는 산술 및 논리 연산 장치로서 산술


연산과 논리 연산을 담당한다. 연산을 하기 위해서는 반드시 데이터가 레지스
터 내에 있어야 한다. ALU에는 2개의 데이터 입력 단자와 1개의 데이터 출력
단자를 가지고 있다.
소규모 컴퓨터에서는 1개의 ALU로서 모든 종류의 연산은 물론 주소 계산까
지 한다. 그러나 고성능 컴퓨터에서는 여러 개의 ALU를 사용하여 속도를 증
가시킨다.
ALU의 기본적인 기능으로는 가산기를 이용하여 2진 덧셈과 뺄셈, 논리 연
산, 보수 연산, 좌우측 시프트 등을 수행한다. ALU의 데이터 입력은 2개의 레
지스터에 접속되어 있으며, 이 중 하나의 레지스터는 누산기로 연산 결과가 다
시 저장된다.

2 레지스터

레지스터는 플립플롭의 순서 논리 회로로 구성되며 임시 기억 장소로 사용


된다. 레지스터에는 사용 용도에 따라 일반적으로 자유롭게 사용할 수 있는 범

235
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

용 레지스터와 각각의 특수한 목적을 가지고 있는 특수 레지스터가 있다.


레지스터에는 다음과 같은 여러 종류가 있다.
누산기
누산기(accumulator, AC)는 ALU의 입력에 접속된 레지스터로 연산에 필요
한 데이터를 기억하며, 또한 연산 결과가 다시 기억되는 레지스터이다.
누산기의 내용은 프로그래머가 프로그램에 의해 직접 그 내용을 변경시킬
수 있다.
명령 레지스터
명령 레지스터(instruction register, IR)는 프로그램 실행 도중에 현재 수행
하고 있는 명령이 기억하며 제어 장치에서 그 명령이 올바르게 수행되도록 제
어 정보를 제공한다.
저장된 명령은 명령 해독기에 의해서 명령의 의미가 해독되어 제어 신호를
발생하고, 각 구성 요소에 제어 신호가 전달되어 명령이 실행된다. 명령 레지스
터의 저장 내용은 프로그래머가 프로그램에 의해 직접 그 내용을 변경시킬 수
없다.
프로그램 계수기
프로그램 계수기(program counter, PC)는 다음에 수행할 명령어가 들어 있
는 메모리의 주소를 기억하고 있다.
프로그램 계수기의 값은 명령어를 메모리에서 인출하여 명령 레지스터에 저
장하면 자동으로 그 다음 명령어가 있는 주소로 바뀌게 된다.
스택 포인터
스택 포인터(stack pointer, SP)는 스택의 위치를 나타내는 레지스터이다. 스
택은 후입 선출(last in first out, LIFO) 방식으로 동작하며, 메모리의 일부분
을 사용한다.
스택의 역할은 CPU 내에서 프로그램 실행 중에 부 프로그램을 호출하거나
인터럽트가 발생하여 서비스 루틴으로 제어가 옮겨갈 때, 지금까지의 실행한
상태를 대피시키기 위한 것이다.
메모리 주소 레지스터
메모리 주소 레지스터(memory address register, MAR)는 메모리의 주소선
(address bus : 단방향)이 연결되어 있으며, 명령이나 데이터를 메모리로부터
읽어 내거나 써넣기 위한 주소를 기억한다.
메모리 버퍼 레지스터
메모리 버퍼 레지스터(memory buffer register, MBR)는 메모리의 데이터
버스(data bus : 양방향)가 연결되어 있으며, 메모리로부터 읽어 내거나 써넣
기 위한 명령이나 데이터를 기억한다. 즉, 메모리와 CPU 사이의 데이터 전송
에 이용되는 레지스터이다.

236
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

그림 Ⅵ-17게 A B

ALU의 연산과 PSWR 비트


C7
8비트 A LU
C8
F7-F0
V Z S C

F7

출력 0 검사

프로그램 상태 워드 레지스터
프로그램 상태 워드 레지스터(program status word register, PSWR)는
ALU에서 연산된 결과에 따른 CPU의 상태를 기억하고 있는 레지스터로, 마이
크로프로세서에 따라 플래그 레지스터(flag register)로 불리기도 한다.
프로그램 상태 워드 레지스터에는 일반적으로 그림 Ⅵ-17과 같은 상태 비트
가 있다.
(1) 자리올림 수 비트
자리올림 수 비트(carry bit, C)는 ALU의 산술 연산의 결과 누산기의 최대
유효 비트(MSB)에서 자리올림 수가 발생할 때에나 뺄셈 과정에서 자리빌림
수(borrow)가 발생하면 1로 세트되는 비트이다.
(2) 부호 비트
부호 비트(sign bit, S)는 산술 연산 결과에 대한 부호를 나타낸다. 연산 결
과가 양수일 때에는 0, 음수일 때에 1로 셋된다.
(3) 0비트
0비트(zero bit, Z)는 산술 및 논리 연산의 결과가 0일 때 1로 세트되는 비트
이다.
(4) 오버플로 비트
오버플로 비트(overflow bit, V)는 산술 연산의 결과가 사용할 수 있는 수의
범위를 넘었을 때 1로 셋된다. 마이크로프로세서에서는 일반적으로 수의 표현
을 2의 보수를 사용하여 나타내며, 최대 유효 비트가 0이면 양수, 1이면 음수이
다.
예를 들어, 8비트 마이크로프로세서일 경우에 2의 보수로 나타낼 수 있는 수
의 범위는 -128(-27, 10000000(2))부터 +127(+27-1, 01111111(2))까지이다. 그러므
로 8비트 산술 연산에서 결과가 -128보다 작거나 +127보다 큰 수가 나오면
오버플로가 발생하여 비트는 1로 세트된다.
그림 Ⅵ-17에서 오버플로 비트는 ALU의 최상위 비트(MSB) 연산에서 발생

237
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

하는 자리올림 수 C8과 그 다음 비트 연산에서 발생하는 자리올림 수 C7과 배


타적 논리합을 취하면 오버플로의 발생을 알 수 있다.
(5) 기타 상태 비트
CPU에 따라 상태를 나타내는 비트의 종류가 약간 다르며, 위에서 설명한 비
트 외에도 연산 결과에서 1의 개수가 짝수(even)인지 홀수(odd)인지 검사하여
짝수일 때 1로, 홀수일 때 0으로 나타내는 패리티 비트(parity bit, P)가 있다.
또, BCD 연산을 하기 위해서 8비트 연산에서 하위 4비트(하위 nibble)에서
자리올림 수가 발생하는지를 나타내는 중간 자리올림 수 비트(half carry bit)
를 가지고 있는 CPU도 있다.

3 버스

버스(bus)는 장치들을 서로 연결한 연결선들을 모아 놓은 신호 회선이다. 그


러나 버스 구조에서 볼 때 모든 장치와 CPU는 동일하게 취급된다. 즉, CPU가
직접 메모리에서 데이터를 가져오는 것이 아니고 CPU가 버스에게 요청하면
버스는 메모리에게 요청하는 형태로 버스는 단지 통로 역할 이상을 수행하게
된다. 실질적으로 버스 구조가 컴퓨터 시스템 전반의 성능을 좌우하는 중요한
요소이다.
버스는 내부(internal) 버스와 외부(external) 버스로 구분할 수 있다. 내부
버스는 CPU 내에서의 전달 기능을 담당하는 것으로 연산 장치와 레지스터들
사이, 또는 레지스터와 레지스터들 사이의 신호 회선을 의미한다. 그러므로 연
산용 레지스터의 비트 수는 신호 회선의 비트 수와 같으며, 병렬로 데이터를
전달할 수 있도록 구성되어 있다.
외부 버스는 CPU와 외부에 접속된 메모리, 입출력 장치 등의 주변 장치들
사이의 전달 기능을 담당하는 것으로 데이터 버스(data bus)와 주소 버스
(address bus) 그리고 제어 버스(control bus)로 구분할 수 있다.
데이터 버스
데이터 버스는 CPU와 외부 장치 사이에 데이터를 서로 주고받을 수 있는
양방향성으로 한 번에 전송할 수 있는 데이터 비트 수를 결정한다.
CPU를 8, 16, 32비트로 구분할 때의 각 비트 수는 데이터 버스의 회선 수이
다. 즉, 8비트 CPU의 데이터 버스는 8개의 신호 회선이 있는 것이다.
어드레스 버스
어드레스 버스는 메모리의 주소를 CPU가 지정하는 단방향성으로 메모리의
최대 크기를 제한한다.
예를 들어, 데이터 버스는 8회선이고 어드레스 버스는 10회선인 CPU는 외부
에 메모리를 210(1024)개의 주소를 가질 수 있으며, 각 주소 당 8비트의 데이터
가 저장될 수 있으므로 총 1KB(mega byte)의 메모리를 부착할 수 있다.

238
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

제어 버스
제어 버스는 CPU가 외부 장치를 제어하는 시스템 제어 신호와 외부 장치가
CPU를 제어하는 CPU 제어 신호 및 CPU 버스에 관계된 제어 신호 회선들이
있다.
시스템 제어 신호는 다음과 같은 것들이 있다.
(1) 메모리 요구 신호
메모리 요구 신호(memory request signal, MREQ)는 CPU가 메모리를 사
용하여 데이터 전송을 할 때 사용한다.
(2) 입출력 요구 신호
입출력 요구 신호(input output request signal, IORQ)는 CPU가 메모리가
아닌 주변 장치와 데이터를 전송할 때 사용한다.
(3) 읽기 신호
읽기 신호(read signal, RD)는 CPU가 메모리나 주변 장치로부터 데이터를
읽을 때 사용한다.
(4) 쓰기 신호
쓰기 신호(write signal, WR)는 CPU가 메모리나 주변 장치에 데이터를 쓸
때 사용한다. CPU 제어 신호 신호로는 CPU를 초기화시키는 리셋(reset) 신호
와 CPU를 정지시키는 정지(halt) 신호, 외부에서 요구하는 인터럽트
(interrupt) 요구 신호 등이 있다.
CPU 버스 제어 신호에는 주변 장치가 CPU 버스를 사용하고자 할 때 요구
하는 버스 요구 신호(bus request signal)와 CPU가 주변 장치에게 버스를 사
용할 수 있도록 확인해 주는 버스 확인 신호(bus acknowledge signal)가 있다.

4 제어 장치

프로그램을 구성하는 명령들을 프로그램이 의도한 순서대로 수행되도록 명


령의 수행 순서를 제어하는 장치로 프로그램 계수기(PC)를 관리하여 특별한
경우를 제외하고는 항상 메모리로부터 하나의 명령을 명령 레지스터(IR)로 읽
어 내고 그것을 수행하는 일을 반복한다.
제어 장치 구현 방법으로 다음과 같은 것들이 있다.
하드웨어 방식의 제어 장치
여러 개의 게이트들을 조합한 논리 회로에 의한 형태로 고정 배선 제어 방식
이라고도 한다. 작동이 빠르고 비교적 단순한 제어 알고리즘에 적용할 때 효과
적이다. 그러나 제어 장치를 변경하려면 전체 시스템을 다시 설계해야 하고 시
스템이 복잡해 질 경우 제어 장치의 제작에 많은 비용이 들게 된다.
소프트웨어 방식의 제어 장치
마이크로 프로그램에 의한 방식이라고 하며 프로그램은 제어 기억 장치에

239
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

주로 ROM의 형태로 기억되어 있다.


이 방식은, 간단한 제어 장치의 경우 하드웨어적 방식보다 비싸지만 복잡한
시스템의 경우 하드웨어 방식보다 비용이 적게 들고 모든 제어 과정이 프로그
램에 의해 구성되므로 각 기능 요소가 체계적으로 변형될 수 있으며, 제어 신
호의 추가 및 변경이 용이하고 새로운 명령어의 해독이 가능한 장점을 가지고
있다. 단점으로는 제어 기억 장치에서 마이크로 명령을 꺼내는 과정에 시간이
걸리고 복잡한 시스템의 경우 제어 기억 장치 자체가 차지하는 양이 커질 수
있다.
현재 사용하고 있는 대부분 컴퓨터 시스템은 소프트웨어 방식을 사용하고 있
다. 마이크로 프로그램을 ROM에 기억시킨 것을 펌웨어(firm ware)라고 한다.

3. 마이크로프로세서의 기본 동작
마이크로프로세서의 기본 동작은 명령을 메모리로부터 읽어와서 해독하는
호출 동작과 해독한 내용에 따라 연산 장치나 주변 장치들이 명령을 실행하는
동작을 한다. 이러한 명령의 실행 과정은 클록 펄스에 의해 일정 시간 간격으
로 이루어지므로 명령 사이클(instruction cycle)이라 한다.
명령 사이클은 호출 사이클과 실행 사이클로 이루어진다.

1 호출 사이클

호출 사이클(fetch cycle)은 CPU가 메모리에 있는 명령을 호출하여 해독하


는 시간으로 다음과 같은 순서로 수행되며, 그림 Ⅵ-18과 같다.
① 프로그램 계수기에 첫째 번 명령의 주소가 가해진다.
② 프로그램 계수기의 내용은 메모리 주소 레지스터(MAR)로 전달된다.
③ 프로그램 계수기의 값은 1이 증가한다.
④ 메모리 주소 레지스터는 외부의 주소 버스에 해당 주소를 지정한다.

가산 0005(명령어)

그림 Ⅵ-18게
주 기억 장치 주소 해독기
명령 호출 사이클

메모리 버퍼 레지스터(MBR) 메모리 주소 레지스터(MAR)

가산(명령부) 0005(주소부)

명령 레지스터(IR) 프로그램 계수기

명령 해독기(DECODER)

240
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

이 때, CPU의 제어 장치는 메모리를 사용할 수 있도록 메모리 요구 신호


(MERQ), 읽기 신호(RD) 등을 제어 버스를 통하여 메모리에 내보낸다.
⑤ 메모리는 해당 주소에 저장된 명령을 데이터 버스에 내보낸다
⑥ 데이터 버스에 있는 명령은 데이터 버퍼 레지스터(MBR)에 기억되고, 내
부의 데이터 버스를 통하여 명령 레지스터(IR)에 전송된다.
⑦ 명령 레지스터는 명령 해독기에 보내고, 명령 해독기는 어떤 명령인지 해
독하여 해당하는 제어 신호를 발생한다.
이러한 호출 사이클은 항상 일정한 시간이 걸린다.

2 실행 사이클

실행 사이클(execute cycle)은 CPU가 해독된 명령을 수행하는 시간으로 명


령의 종류에 따라 걸리는 시간이 다르며, 동작하는 장치들도 다르게 된다.
해독된 명령이 메모리의 데이터와 누산기의 덧셈인 경우에 실행 순서는 다
음과 같으며 그림 Ⅵ-19는 그 과정을 나타낸 것이다.
① 프로그램 계수기에 실행 대상(operand)이 들어 있는 주소가 가해진다.
② 프로그램 계수기의 내용은 메모리 주소 레지스터로 전달되고 계수기의
값은 1이 증가한다.
④ 메모리 주소 레지스터는 외부의 주소 버스에 해당 주소를 지정하고, 메모
리는 해당 데이터를 데이터 버스를 통해 데이터 버퍼 레지스터에 전송한다.
⑤ 데이터 버퍼 레지스터는 ALU의 입력에 데이터를 전송한다.
⑥ ALU는 제어 신호에 따라 가산기 회로를 이용하여 입력된 데이터와 누산
기의 값을 가산하여 출력한다.
⑦ 가산 결과는 다시 누산기에 저장된다.

그림 Ⅵ-19게
주 기억 장치 주소 해독기
명령 실행 사이클
주소 0005의 내용
(데이터)

메모리 버퍼 레지스터(MBR) 메모리 주소 레지스터(MAR)

가산기 프로그램 계수기

누산기

241
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

4. 마이크로컨트롤러
마이크로프로세서를 사용한 마이크로컴퓨터는 그림 Ⅵ-20의 ⒜와 같이 CPU
와 메모리 그리고 입출력(I/O) 칩들을 사용하여 구성할 수 있다. 이와 같이 구
성한 마이크로컴퓨터는 제어용으로 많이 사용된다.
마이크로프로세서 중에 그림 Ⅵ-20의 (b)와 같이 1개의 LSI칩 내부에 CPU
기능과 일정한 용량의 메모리(ROM, RAM) 및 입출력 제어 인터페이스 회로
와 타이머 등을 내장한 것을 마이크로컨트롤러라고 부른다.
마이크로컨트롤러는 기기 제어용에 주로 사용되므로 붙여진 이름이며, 이는
1개의 소자만으로 완전한 하나의 컴퓨터 기능을 갖추고 있으므로 단일 칩 마
이크로컴퓨터(one-chip 또는 single-chip microcomputer)라고도 부른다.
단일 칩(single chip) 마이크로컴퓨터(microcomputer)는 제어용으로 간단하
게 사용할 수 있도록 그림 Ⅵ-20의 ⒝와 같이 1개의 LSI 칩 속에 CPU와 I/O
포트, 그리고 메모리 및 타이머 등을 내장시킨 것으로 원 칩 마이크로컴퓨터라
부르기도 한다.
그림 Ⅵ-20게
메모리 ROM
마이크로 컴퓨터의 구성 클록
클록 회로 ROM
회로 RAM
RAM
A D
CPU
입력
CPU 입력
I/0 I/0 출력
출력
타이머

⒜ 일반적인 마이크로컴퓨터의 구성 ⒝ 마이크로컨트롤러

단일 칩 마이크로컴퓨터는 일반적인 마이크로프로세서와 구별하기 위하여


마이크로컨트롤러라고 한다.
제어 응용 시스템에 마이크로컨트롤러를 사용하게 되면 범용 마이크로프로
세서나 하드웨어적인 논리 회로를 사용하는 데 비하여 다음과 같은 장점을 얻
을 수 있다.
① 제품이 작고 가벼워진다. 시스템의 제어 부분이 마이크로 컨트롤러 LSI 1
개와 극히 적은 수의 외부 소자들도 간단히 구성되므로 크기와 무게가 현저히
줄어들고 소비 전력도 적어진다. 이에 따라, 전원 장치까지도 작고 가벼워진다.
② 제품의 가격이 싸진다. 컨트롤러 부분이 단순화됨에 따라 재료비, 제작비,
개발비가 감소되고, 개발 기간도 단축된다.
③ 시스템의 신뢰성이 향상된다. 컨트롤러가 단순화되어 부품 수가 적어지고
신뢰도가 높은 소자를 사용하므로 고장이 적고 유지 보수가 용이해진다.
④ 시스템의 융통성이 커진다. 하드웨어에 의존하는 부분을 소프트웨어로 처
리할 수 있게 되므로 기능의 변경이나 확장하기가 쉽다.

242
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

마이크로컨트롤러는 각 응용 분야에 적합하도록 매우 많은 종류와 모델이


개발 사용되고 있으며, 범용 마이크로프로세서를 지칭하는 MPU(micro
processor unit)와 구별하여 MCU(micro controller unit)라고 부르기도 한다.
보통 넓은 의미에서 마이크로프로세서라고 하면 범용 마이크로프로세서
(MPU)는 물론이고 마이크로컨트롤러(MCU) 등 CPU의 기능을 포함하는 단일
반도체 소자를 모두 지칭하는 포괄적인 개념이다.

5. 명령어 집합 방식
마이크로프로세서의 명령은 크게 연산 명령과 비 연산 명령이 있다. 연산 명
령은 산술 연산과 논리 연산 명령이 있으며, 비 연산 명령으로는 데이터의 전
송, 프로그램의 분기 명령 등이 있다.
이와 같은 명령어들을 구현하는 방식에는 복합 명령 집합 방식과 간소화된
명령 집합 방식이 있으며, 마이크로프로세서를 설계할 때 명령 집합 방식을 선
택하여야 한다.

1 복합 명령 집합 컴퓨터

복합 명령 집합 컴퓨터(complex instruction sets computer, CISC)는 기본적


인 목표를 모든 고급언어 문장들에 대해 각각 하나의 기계어 명령어가 대응되
도록 하여 컴파일 동작을 간소화시켜 전반적인 컴퓨터의 성능을 향상시키려는
방식으로 특징은 다음과 같다.
① 명령어의 수가 많다.
② 명령어 중에는 특별한 일(task)을 하는 것도 있다.
③ 주소 지정 방식이 다양하다.
④ 명령어의 길이가 가변적이다.
⑤ 명령어 중에는 기억 장치 내의 피연산자를 처리하는 것도 있다.
⑥ 하드웨어 구성이 많아지고, 계산 속도가 느려진다.
CISC의 구조는 단일 캐시 내에 명령어와 데이터를 함께 가지는 구조로 그림
Ⅵ-21과 같다.

단일 캐시를 사용하므로 같은 경로를 통해서 데이터와 명령어를 가져오며

그림 Ⅵ-21게
제어 장치 명령/데이터 경로
CISC 구조

마이크로 프로그램식 제어 기억 장치 캐시

주 기억 장치

243
메모리와 프로그램 가능한 논리 소자/ 마이크로프로세서

마이크로 프로그램 제어 방식을 사용한다.

2 간소화 명령 집합 컴퓨터

간소화 명령 집합 컴퓨터(reduced instruction sets computer, RISC)는 복합


명령어를 사용하지 않고 극히 간단한 명령어만을 사용하며, 주소 지정 방식도
최소한으로 단순화하고, 명령의 형식도 단순화한 방식이다.
수행되는 데 필요한 마이크로 코드의 양이 많고 사용 빈도가 낮은 명령어들
을 하드웨어에서 제거하여 소프트웨어가 담당하게 하여 성능을 개선한 것으로
특징은 다음과 같다.
① 명령어 수를 최소화하여 시스템을 작고 빠르게 한다.
② 주소 지정 방식을 최소화하여 제어 장치 구조를 간단하게 하고, 해독기에
필요한 결정 사항을 최소화한다.
③ 기억 장치에 대한 접근은 적재(load)/저장(store) 명령만 사용한다.
④ 모든 연산을 중앙 처리 장치 내의 레지스터에서 수행한다.
⑤ 명령어의 길이가 고정적이어서 해독하기 쉽다.
⑥ 적재/저장 명령을 제외한 모든 명령어의 실행은 한 사이클로 구성된다.
⑦ 제어 장치는 고정 배선 제어 방식으로 구성한다.
RISC의 구조는 명령 캐시와 데이터 캐시가 분리되어 있어 서로 다른 접근 경
로를 가지고 있으며 고정 배선 제어 방식을 사용한 것으로 그림 Ⅵ-22와 같다.

그림 Ⅵ-22게
고정 배선 제어 장치 데이터 경로
RISC 구조

명령 캐시 데이터 캐시

(명령) (데이터)
주 기억 장치

탐구 문제
1. 마이크로프로세서의 기능, 구조, 발전 과정 등을 인터넷을 이용하여 조
사해 보자.
2. 마이크로 컨트롤러에 대해서 인터넷을 이용하여 조사해 보자.

244
메모리와 프로그램 가능한 논리 소자/ 단원 학습 정리

1. 메모리의 개요
단원 학습 정리
・기억 장치 : CPU에서 처리할 프로그램이나 데이터를 저장하는 장치
・주 기억 장치 : CPU와 매우 빠른 속도로 데이터 전송이 이루어지므로 반
도체 메모리 소자가 사용됨.
・메모리는 반도체 메모리를 의미함.
・쓰기(write) : 데이터를 기억시키는 것
・읽기(read) : 기억된 데이터를 읽어들이는 것
・주소(address) : 메모리의 많은 저장 장소를 구별하는 것
・워드(word) : 각각의 주소마다 저장 할 수 있는 비트 수
・메모리 용량 : 기억할 수 있는 총 비트 수, 또는 바이트 수로 나타냄.
・메모리 칩의 용량 표기 : 워드 수×워드의 비트 수로 표기
・워드 수 : 기억 장소를 나타내는 주소의 개수로 2주소선의 수
・워드의 비트 수 : 데이터 선의 수
2. ROM
: ROM은 읽기만 할 수 있는 비휘발성 메모리이다.
・마스크 ROM : 제조 과정에서 데이터를 영구적으로 저장한 ROM
・PROM : 단 한 번만 기록할 수 있는 것
・EPROM : 기록과 소거가 가능한 ROM으로 자외선을 쬐어 소거
・EEPROM : 전기적으로 기록과 소거가 가능한 ROM
・플래시메모리 : EEPROM의 한 종류이며 블록 단위로 다시 프로그래밍이
가능한 메모리로서 ROM과 RAM의 특성을 모두 가지고 있다.
3. RAM
: RAM은 데이터를 읽고 쓰기를 자유롭게 할 수 있는 메모리로 휘발성이
있다.
・SRAM : 셀 구조는 플립플롭으로 안정된 데이터를 가지고 속도가 빠르나
셀 구조가 복잡하므로 집적도가 떨어진다.
・DRAM : 커패시터에 전하를 충전시켜서 데이터를 기억하는 방식으로 집
적도가 높으나 리프레시가 필요하다.
4. 프로그램 가능한 논리 소자
: PLD 내부의 기본적인 구조는 논리식의 곱의 합 형식을 실현하도록 AND
와 OR 게이트의 2단 배열로 나누어져 있다.
・PLE : AND 입력은 고정시키고, OR 입력만을 프로그램할 수 있다.
・PLA : AND 입력과 OR 입력 모두를 프로그램할 수 있다.
・PAL : AND 입력은 프로그램할 수 있고, OR 입력은 고정되어 있다.
5. 마이크로프로세서
: 마이크로프로세서는 1개의 칩으로 된 CPU를 가리킨다.

245
메모리와 프로그램 가능한 논리 소자/ 단원 학습 정리

1) 마이크로프로세서 : 연산 장치, 제어 장치, 레지스터들과 버스로 구성


2) 연산 장치(ALU) : 산술 논리 연산장치로 연산 결과는 누산기에 저장
3) 레지스터 : 순서 논리 회로로 구성되며 임시 기억 장소로 사용
4) 버스(bus) : 장치들을 서로 연결한 연결선들을 모아 놓은 신호 회선
・데이터 버스 : CPU와 외부 장치 사이에 데이터를 전송하며 양방향성
・주소 버스 : 메모리의 주소를 CPU가 지정하는 것으로 단 방향성
・제어 버스 : CPU와 외부 장치 사이에 제어 신호를 주고받는 회선
5) 제어 장치는 명령들을 순서대로 수행되도록 명령의 수행 순서를 제어한
다.
6) 마이크로프로세서의 기본 동작은 호출과 실행 과정으로 이루어진다.
・호출 사이클 : CPU가 메모리에 있는 명령을 호출하여 해독하는 시간
・실행 사이클 : CPU가 해독된 명령을 수행하는 시간
・명령 사이클 = 호출 사이클 + 실행 사이클
7) 마이크로컨트롤러는 1개의 LSI칩 속에 CPU, 메모리, 입출력 제어 인터페
이스 회로, 타이머 등을 내장한 마이크로프로세서이다.
8) CISC 구조는 고급언어 문장들에 대해 각각 하나의 기계어 명령어가 대응
되도록 하여 컴파일 동작을 간소화시켜 전반적인 컴퓨터의 성능을 향상
시키려는 방식으로 명령어의 수가 많고 주소 지정 방식이 다양하다.
9) RISC 구조는 간단한 명령어만을 사용하며, 주소 지정 방식도 최소한으로
단순화하고, 명령어의 길이가 고정적으로 모든 연산을 CPU 내의 레지스
터에서 수행한다.

단원 종합 문제 1. 다음 중 휘발성 기억 소자의 특징인 것은?


① 전원이 끊겨도 상태를 유지한다.
② 전원이 끊기면 기억 내용을 상실한다.
③ 기억 내용을 읽을 때 그 내용이 파괴된다.
④ 기억 내용을 읽어도 내용이 파괴되지 않는다.
⑤ 리프레시가 반드시 필요하다.

2. 입력 주소선이 12개, 출력 데이터선이 8개인 ROM의 기억 용량은 몇 KByte


인가?
①2 ②4 ③8 ④ 16 ⑤ 32

246
메모리와 프로그램 가능한 논리 소자/ 단원 종합 문제

3. 다음 기억 장치 중에서 리프레시가 필요한 것은?


① SRAM ② PROM ③ EPROM
④ EEPROM ⑤ DRAM

4. 다음 ROM에서 자외선으로 기억 내용을 소거할 수 있는 것은?


① mask ROM ② PROM ③ EPROM
④ EEPROM ⑤ 플레시 메모리

5. 다음 중 메모리의 셀이 플립플롭으로 구성되어 있는 것은?


① SRAM ② DRAM ③ EPROM
④ PROM ⑤ EEPROM

6. PLD의 내부 구조는 어떤 게이트들의 배열로 이루어져 있는가?


① AND-AND ② OR-OR ③ OR-AND
④ AND-OR ⑤ AND-NOT

7. PLD 중에서 AND, OR 입력 모두 프로그램이 가능한 것은?


① PLE ② PLA ③ PAL
④ FPGA ⑤ GAL

8. 마이크로프로세서의 주된 기능으로 알맞게 짝지어진 것은?


① 연산과 제어 ② 연산과 기억 ③ 기억과 입출력
④ 입출력과 제어 ⑤ 입출력과 연산

9. ALU에서 연산한 결과가 저장되는 레지스터는?


① 프로그램 카운터 ② 스택포인터 ③ 누산기
④ 프로그램 상태 워드 ⑤ 인덱스 레지스터

10. 다음에 실행할 명령의 주소를 가지고 있는 레지스터는?


① MBR ② MAR ③ IR
④ PC ⑤ Acc

11. 누산기(accumulator)에 대해서 바르게 설명한 것은?


① 연산 결과를 일시적으로 기억하는 장치다.
② 명령의 순서를 기억하는 장치다.
③ 명령 시행 상태를 기억하는 장치다.
④ 명령을 해독하는 장치다.
⑤ 명령을 기억하는 장치이다.

247
메모리와 프로그램 가능한 논리 소자/ 단원 종합 문제

12. 제어 장치의 일부로 명령을 실행하는 데 필요한 신호를 보내고 제어하는


회로의 게이트를 여는 구실을 하는 곳은 ?
① 명령 레지스터 ② 인코더(encoder) ③ 프로그램 카운터
④ 디코더(decoder) ⑤ 프로그램 상태 워드

13. OP code(명령 코드) 부분은 어느 레지스터로 이동하는가?


① SP ② MAR ③ PSW
④ PC ⑤ IR

14. CPU 내부에서 순간 순간의 상태를 기록하는 특별한 레지스터는?


① SP ② PSWR ③ IR
④ PC ⑤ MBR

15. 다음 중 RISC의 특성을 설명한 것은?


① 명령어 세트에는 고성능(complex) 인스트럭션들이 포함된다.
② 모든 연산은 CPU 레지스터를 사용하여 이루어진다.
③ 주소 지정 방식이 다양하다.
④ 명령의 수가 많아 프로그래밍이 용이하다.
⑤ 명령어 길이가 가변적이다.

16. 다음 중 CISC 컴퓨터의 특성을 설명한 것은?


① 마이크로 프로그램 방식에 의한 제어 장치의 구성이 유리하다.
② 제어 장치가 간단하여 고정 배선(hard-wired) 방식을 사용한다.
③ 메모리에 대한 접근은 load와 store 인스트럭션에 국한한다.
④ 명령의 수가 최소화되어 있다.
⑤ 명령어 길이가 고정적이다.

248
D/A변환 7
찾 ●아 ●보 ●기 DRAM 226

가수부 36 레지스터 183


가중치 없는 코드 42 리플 계수기 205
간소화 82 링 계수기 200
간소화 명령 집합 컴퓨터 244
개요도 96
결합 법칙 72 마스크 ROM 218
고밀도 직접 회로 9 마이크로컨트롤러 242
교환 법칙 72 마이크로컨트롤러 시스템 234
그레이 코드 42 마이크로프로세서 234
멀티플렉서 132
메모리 라이트 사이클 타임 216
내부 버스 238 메모리 버퍼 레지스터 236
논리곱의 합 79 메모리 액세스 타임 216
논리합의 곱 80 메모리 요구 신호 239
누산기 236 메모리 주소 레지스터 236
NAND 연산 61 명령 레지스터 236
NOR 연산 62 명령 사이클 240
NOT 연산 57 미국 표준 협회 47
MCU 234
MOS FET 225
단일 칩 마이크로컴퓨터 242 MOS SRAM 225
데이터 버스 238 MPU 234
데이터 분배기 135
데이터 셀렉터 132
동기 입력 177 바이어스 36
동기식 순서 회로 195 바이어스된 지수 36
동적 RAM 224 바이오스 217
두 수의 비교기 115 바이폴라 SRAM 224
드 모르간의 정리 73 반가산기 107
디멀티플렉서 135 반감산기 109
디지털 신호 6 반일치 회로 62

249
버스 238 언웨이티드 코드 150
버스 요구 신호 239 여기표 197
버스 확인 신호 239 연산 장치 235
버퍼 64 영숫자 코드 47
병렬 입력/병렬 출력 레지스터 189 오버플로 비트 237
병렬 입력/직렬 출력 레지스터 188 외부 버스 238
보수 58 우방향 시프트 레지스터 191
복합 명령 집합 컴퓨터 243 유니 코드 50
부동 소수점 35 인버터 58
부호 비트 27 읽기 모드 227
분배 법칙 72 읽기 신호 239
비동기 입력 177 입출력 요구 신호 239
비동기식 순서 회로 195 1의 보수 방식 27
비트 26 2바이트 완성형 코드 49
비휘발성 217 2바이트 조합형 코드 49
BCD 39 2의 보수 방식 29
2중 부정 72
2치 변수 54
선형 선택형 226 A/D 변환 7
소규모 직접 회로 9 AND 연산 55
스택 포인터 236 ASCII 코드 47
시프트 레지스터 184 EBCDIC 코드 48
실행 사이클 241 EEPROM 221
쌍대 관계 75 EPROM 220
쓰기 모드 227 LSB 107
쓰기 시간 216 OR 연산 56
쓰기 신호 239 OLMC 230
10진수 14 R/W 219
3초과 코드 41 RAM 224
CE 215 ROM 218
CMOS 10 RS 래치 166
SRAM 224
RS 플립플롭 169
아날로그 신호 6 XNOR 연산 63
어드레스 버스 238 XOR 연산 62

250
자리올림 수 107 토글 172

자리올림 수 비트 237 TTL 10

전가산기 108
전감산기 110
전비교기 117 패리티 비트 44

전파 지연 시간 206 팬 아웃 64

정규화 35 펌웨어 240

정적 RAM 224 표준 BCD 코드 47

제어 버스 239 표준형 81

제어 장치 239 프로그램 가능한 논리 소자 230

좌방향 시프트 레지스터 185 프로그램 계수기 236

주소 버스 238 프로그램 상태 워드 레지스터 237

중규모 직접 회로 9 프리셋 177

중앙 처리 장치 234 플래그 레지스터 237

지수부 36 플래시 메모리 221

지연 시간 64 플로팅 게이트 220

직렬 입력/병렬 출력 레지스터 187 플립플롭 164

직렬 입력/직렬 출력 레지스터 186 8진수 16

집적 회로 8 PAL 232

GAL 230 PALCE 134

JK 플립플롭 172 PLA 231


PLE 231
PROM 219

초고밀도 집적 회로 9
최대항 78
최소항 78 함수 98

출력 함수 98 항복 현상 220
해밍 코드 45
행렬 일치형 226

클록형 RS 플립플롭 169 호출 사이클 240

클리어 177 흡수 법칙 72

KS 완성형 코드 49

251
+5V

R1 R2 R3 R4 R5 R6 R7

252
4.7K 3.3K 3.3K 680 680 680 680

S2
D1 D2 D3 D4
푸시 버튼 LED(적색) LED(적색) LED(적색) LED(적색)
U2A U2B U3A U3B

2
2
7

S1 7476 7476 7476 7476


4 9 4 9

PR
PR 7
PR
PR

J Q 15 J Q 11 J Q 15 J Q 11
U1A 1 6 1 6
CLK CLK CLK CLK
슬라이드 스위치
1 2 16 Q 14 12 Q 10 16 Q 14 12 Q 10

CL
CL
CL

K K K K

3
8 CL
3
8

7404
1
J1
헤더

+5V
J2
헤더
1
+ C2 7476-5번 핀(VCC), 13번 핀(GND)
C1
100mF/25V 0.1mF/50V 7404-7번 핀(GND), 14번 핀(VCC)

1
J3
헤더

우방향 시프트 레지스터


Size Document Number Rev
A {Doc} 실습 과제 Ⅴ-1 1.0
Date: Thursday, April 26, 2001 Sheet 1 of 1
J1 +5V
헤더
1

C1 + C2 R1 R2 R3 R4 R5
100mF/25V 0.1mF/50V 10K 10K 10K 10K 3.3K

1
J2
헤더
S1 S2 S3 S4
슬라이드 스위치 슬라이드 스위치 슬라이드 스위치 슬라이드 스위치

U1A U1B U2A U2B

4
10
4
10

7474 7474 7474 7474


2 12 2 12

PR
PR
PR
PR

D Q 5 D Q 9 D Q 5 D Q 9
3 11 3 11
1 CLK CLK CLK CLK
J3 6 8 6 8

CL
CL
CL
CL

Q Q Q Q
헤더

1
1

13
13

+5V
D1 D2 D3 D4
LED(적색) LED(적색) LED(적색) LED(적색)

R6
3.3K
S5 R7 R8 R9 R10
680 680 680 680
푸시 버튼

74LS74-7번 핀(GND), 14번 핀(VCC)

병렬 입력 병렬 출력 레지스터
Size Document Number Rev
A {Doc} 실습 과제 Ⅴ-2 1.0
Date: Tuesday, August 08, 2000 Sheet 1 of 1

253
+5V

R1
2.2K

7408
U3A

254
U2A

2
U1A U1B 1 7476

2
7
7476 7476 3 4 15
4 15 9 11 2 J PR Q

PR
PR
J Q J Q 1
1 6 CLK
1 CLK CLK 16 14
CL

14 10 K Q
16 12

CL
CL
J1 K Q K Q
+5V
3

헤더

3
8
R2
3.3K

S1
푸시 버튼 +5V
+5V
+5V
J2
헤더
1 R3

10
9
8
7
6
3.3K
C1 C2 U4
R4 13 A 1 7
100mF/25V 0.1mF/50V R5 12 1
R6 11 B 2 2
R7 10 C 4 6
1 R8 9 D 8 4
R9 15 E BI/RBO 5
J3 7-세그먼트 F RBI
R10 14 G LT 3
헤더 (+)공통 단자
270×7 7447

1
2
3
4
5
7476-5번 핀(VCC), 13번 핀(GND)
동기식 3비트 2진 계수기
7408-7번 핀(GND), 14번 핀(VCC)
Size Document Number Rev
7447-8번 핀(GND), 16번 핀(VCC) A 실습 과제 Ⅴ-3 1.0
{Doc}
Date: Tuesday, April 26, 2001 Sheet 1 of 1
74LS76-5번 핀(VCC), 13번 핀(GND)
74LS47-8번 핀(GND), 16번 핀(VCC)
+5V
74LS08-7번 핀(GND), 14번 핀(VCC)
S1 74LS32-7번 핀(GND), 14번 핀(VCC) +5V
R1 3.3K
R2 2.2K
푸시 버튼

U1A U1B U2A

2
7
2
7476 7476 7476
4 15 9 11 4 15
J Q J Q J Q

PR
PR
PR
1 CLK 6 1 CLK
1 CLK
16 14 12 10 16 14

CL
CL
CL
J1 K Q K Q K Q
헤더

3
8
3
+5V
J2 1
헤더 3
2
1

+ U3A 7432
C1 C2
100mF/25V 0.1mF/50V
+5V 1 4
3 6
1 5
2
J3
헤더 U4A 7408 U4B 7408

10
9
8
7
6
U7
R4 13 A 7
R5 12 1
B 2 1 +5V
R6 11 C 4 2 3.3K
R7 10 D 8 6 R3
R8 9 E BI/RBO 4
7-세그먼트 R9 15 5
F RBI
(+)공통 단자 R10 14 G 3
LT

1
2
3
4
5
270×7 7447

동기식 5진 계수기
Size Document Number Rev
A {Doc} 실습 과제 Ⅴ-4 1.0
Date: Tuesday, August 08, 2000 Sheet 1 of 1

255
J1 +5V +5V
헤더
1

256
R1 R2 R3 R4 R5 R6 R7
C1 C2 1K 680 680 680 680 680 1K
100mF/25V 0.1mF/50V

1
J2
헤더 D1 D2 D3 D4 D5
S1 LED(적색) LED(적색) LED(적색) LED(적색) LED(적색)
푸시
버튼
U1A U1B U2A U2B U3A

1
13
1
13
1

7474 7474 7474 7474 7474


6 8 6 8 6
Q Q Q Q Q

CL
CL
CL
CL
CL

1 3 11 3 11 3
CLK CLK CLK CLK CLK
2 5 12 9 2 12 2

PR
PR
PR
PR
PR

J3 D Q D Q D Q 5 D Q 9 D Q 5
헤더

4
4

10

4
10
+5V

R8 10K S2

푸시 버튼

74LS74-7번 핀(GND), 14번 핀(VCC)


동기식 5진 링 계수기
Size Document Number Rev
A {Doc} 실습 과제 Ⅴ-5 1.0
Date: Tuesday, August 08, 2000 Sheet 1 of 1
+5V

R1
1K

U1A U1B U2A

2
7
2
7476 7476 7476
4 15 9 11 4 15

PR
PR
PR
J Q J Q J Q
1 6 1
1 CLK CLK CLK
16 14 12 10 16 14
Q Q Q

CL
CL
CL
J1 +5V K K K
헤더

3
8
R2 3
3.3K
S1

푸시 버튼
+5V

+5V

J2
헤더

10
9
8
7
6
1 R3
U4 3.3K
+ R4 13 A 7
C1 C2 R5 12 1
B 2 1
100mF/25V 0.1mF/50V R6 11 2
C 4
R7 10 D 8 6
R8 9 E BI/RBO 4
1 R9 15 F 5
R10 14 RBI
G LT 3
J3 7-세그먼트
헤더 (+)공통 단자 270×7 7447

1
2
3
4
5
74LS76-5번 핀(VCC), 13번 핀(GND)
74LS47-8번 핀(GND), 16번 핀(VCC) 비동기식 3비트 2진 계수기
Size Document Number Rev
A {Doc} 실습과제 Ⅴ-6 1.0
Date: Tuesday, August 08, 2000 Sheet 1 of 1

257
+5V

R1 R2
2.2K 2.2K

258
U1A U1B U2A U2B

2
7
2
7
7476 7476 7476 7476
4 15 9 11 4 15 9 11
Q J Q J Q J Q

PR

PR
PR
PR

J
1 6 1 6
1 CLK CLK CLK CLK
+5V 16 14 12 10 16 14 12 10
Q Q Q Q

CL
K

CL
CL
CL

J1 K K K
헤더

3
8
3
8

S1 R3
3.3K
푸시 버튼

+5V +5V
J2
헤더 +5V
1

10
9
8
7
6
C1 C2
100mF/25V 0.1mF/50V R3
U4 3.3K
R5 13 7
1 A 1 U3A
R6 12 B 1
R7 11 2 2 1
J3 C 4 6 3
R8 10 D 8
헤더 R9 9 4 2
R10 15 E BI/RBO 5
R11 14 F RBI 3
7-세그먼트 G LT 7400

1
2
3
4
5
(+)공통 단자 270×7
7447

74LS76-5번 핀(VCC), 13번 핀(GND)


74LS47-8번 핀(GND), 16번 핀(VCC) 비동기식 10진 계수기
74LS00-7번 핀(GND), 14번 핀(VCC) Size Document Number Rev
A {Doc} 실습 과제 Ⅴ-7 1.0
Date: Thursday, August 08, 2000 Sheet 1 of 1
반도체 소자와 집적 회로/ 반도체의 개요

해해답

Ⅰ. 디지털 시스템의 개요

<단원 종합 문제>
1. 디지털 신호:시간이 흐름에 따라 그 값이 연속적이지 않고 끊어지는 신호, 즉 이산적으로
변화하는 신호
1. 아날로그 신호:시간이 흐름에 따라 그 값이 끊어지지 않고 연속적으로 변화하는 신호
2. 카세트 테이프에 녹음된 음악은 아날로그 형식의 정보로 기록되어 있고, 콤팩트 디스크에
녹음된 음악은 디지털 형식의 정보로 기록되어 있다. 따라서, 잡음 손실의 영향을 받기 쉬
운 아날로그 형식은 디지털 형식에 비해 여러 번 복사하면 음질이 많이 떨어진다.
3. (장점) ① 신뢰도가 높다. ② 정확도가 높다. ③ 구성이 용이하고 경제성이 높다. ④ 저렴한
비용으로 저장할 수 있다. ⑤ 잡음에 강하고 손실이 거의 없다.
1. (단점) 회로가 복잡하여 진다.
4. (장점) ① 소형 ② 고 신뢰도 ③ 저 전력 ④ 가격이 저렴
1. (단점) ① 열에 약함 ② 과전압이나 역전압에 쉽게 파손
5. ②
6. p6 ( 2, 다. 디지털 집적 회로의 특성) 참조
7. CMOS형 IC의 입력 단자는 약 5pF 정도의 정전 용량을 가지고 있기 때문에 여기에 정전
기가 축적되면 망가질 수가 있다. 따라서, 보관할 때에는 알루미늄 포일에 싸두거나 도전성
의 스펀지에 꽂아 두어 정전기에 영향을 받지 않도록 해야 한다.
8. 팬 아웃이란 한 개의 게이트 출력 단자에 정상적으로 구동시킬 수 있는 부하 입력의 최대
수를 말한다.

Ⅱ. 정보의 표현

<단원 종합 문제>
1. 10011000 2. 568, 2E16 3. ⑴ 10010, ⑵ 10110 4. ⑴ -13, ⑵ -86
5. ④ 6. ② 7. ⑤ 8. ④

259
반도체 소자와 집적 회로/ 반도체의 개요

Ⅲ. 불 대수

<결과 정리>
1. 실습 Ⅲ-1 AND, OR, NOT 변환
표 Ⅲ-6참AND 연산 결과표 표 Ⅲ-7참OR 연산 결과표 표 Ⅲ-8참NOT 연산 결과표
입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V) 입력전압(V) 출력전압(V)

A B Y A B Y A Y

0 0 0 0 0 0 0 5

0 5 0 0 5 5 5 0

5 0 0 5 0 5

5 5 5 5 5 5

2. 실습Ⅲ-2 NAND, NOR, XOR, XNOR 연산


표 Ⅲ-10참NAND 연산 결과표 표 Ⅲ-11참NAND 게이트 조합 회로 결과표
입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y A B Y

0 0 5 0 0 0
0 5 5 0 5 5
5 0 5 5 0 5
5 5 0 5 5 5
・( OR ) 연산의 결과와 동일

표 Ⅲ-12참NOR 연산 결과표 표 Ⅲ-13참NOR 게이트 조합 회로 결과표


입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B Y A B Y

0 0 5 0 0 0
0 5 0 0 5 0
5 0 0 5 0 0
5 5 0 5 5 5

・( AND ) 연산의 결과와 동일

260
반도체 소자와 집적 회로/ 반도체의 개요

표 Ⅲ-14참XOR, XNOR 연산 결과표


입력 전압(V) 출력 전압(V)

A B X Y

0 0 0 5

0 5 5 0

5 0 5 0

5 5 0 5

표 Ⅲ-15참패리티 검사 회로 결과표
입력 전압(V) 출력 전압(V)

A B C D Y

0 0 0 0 0
0 0 0 5 5
0 0 5 0 5
0 0 5 5 0
0 5 0 0 5
0 5 0 5 0
0 5 5 0 0
0 5 5 5 5
5 0 0 0 5
5 0 0 5 0
5 0 5 0 0
5 0 5 5 5
5 5 0 0 0
5 5 0 5 5
5 5 5 0 5
5 5 5 5 0

•4개의 입력 중에서 5V가 짝수 개이면 출력이 0V이고, 홀수 개이면 출력이 5V가 되어 항상 짝수


개가 됨을 알 수 있다.

261
반도체 소자와 집적 회로/ 반도체의 개요

3. 실습 Ⅲ-3 불 대수의 정리
표 Ⅲ-16참분배 법칙 결과표 표 Ⅲ-17참다중 부정 결과표
입력 전압(V) 출력 전압(V) 입력 전압(V) 출력 전압(V)

A B C Y1 Y2 A Y1 Y2 Y3

0 0 0 0 0 0 5 0 5

0 0 5 0 0 5 0 5 0

0 5 0 0 0
0 5 5 5 5
5 0 0 5 5
5 0 5 5 5
5 5 0 5 5
5 5 5 5 5

표 Ⅲ-189참드 모르간의 정리 결과표


입력 전압(V) 출력 전압(V)
A B Y1 Y2 Y3 Y4

0 0 5 5 5 5

0 5 0 0 5 5

5 0 0 0 5 5

5 5 0 0 0 0

•따라서, Y1=Y2, Y3=Y4이므로 드 모르간의 제1, 제2 정리가 증명됨.

4. 실습 Ⅲ-4 논리식의 간소화

표 Ⅲ-22참결과표
입력 전압(V) 출력 전압(V)

A B Y1 Y2

0 0 0 0

0 0 0 0

5 5 0 0

5 5 5 5

Y1 =( AB )
Y2 =( AB )

262
반도체 소자와 집적 회로/ 반도체의 개요

표 Ⅲ-23참결과표
입력 전압(V) 출력 전압(V)

A B Y1 Y2

0 0 0 0 0

0 0 5 0 0

0 5 0 0 0

0 5 5 1 1

5 0 0 1 1

5 0 5 1 1

5 5 0 1 1

5 5 5 1 1

Y1 =( (A+B)(A+C) )
Y2 =( A+BC )

•따라서, 위의‘표 Ⅲ-23 결과표’


와‘표 Ⅲ-24 결과표’
에서 확인한 것과
같이 3개의 게이트로 구성된 Y1과 2개의 게이트로 구성된 Y2가 같으므로
회로가 간소화되었음을 알 수 있다.

<단원 종합 문제>
1.
게이트 논리 기호 논리식 진리표

A B Y
Y=A・B
0 0 0
A
AND Y Y=AB 0 1 0
B
1 0 0
Y=A×B
1 1 1

A B Y
A 0 0 0
OR Y Y=A+B 0 1 0
B
1 0 1
1 1 1

Y=A A Y
NOT A Y 0 1
Y=A′ 1 0

263
반도체 소자와 집적 회로/ 반도체의 개요

2.
1) NAND 2) NOR

+VCC +VCC

Y Y
A

A B

3.
1) NAND 2) NOR
A A
Y Y
B B

4.
1) AND 2) OR
A
Y A
B
Y
3) NOT B
A Y

5.
1) AND 2) OR

A A
Y
Y B

3) NOT

A Y

6.
A

264
반도체 소자와 집적 회로/ 반도체의 개요

7.
1) A B C Y 2) A B C Y

0 0 0 0 0 0 0 0

0 0 1 1 0 0 1 0

0 1 0 0 0 1 0 1

0 1 1 1 0 1 1 0

1 0 0 0 1 0 0 0

1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1

1 1 1 1 1 1 1 0

--D+BCD+ACD+A
8. Y=AC --BD인 진리표를 작성한다.

A B C D Y A B C D Y

0 0 0 0 0 1 0 0 0 0

0 0 0 1 0 1 0 0 1 1

0 0 1 0 0 1 0 1 0 0

0 0 1 1 0 1 0 1 1 1

0 1 0 0 0 1 1 0 0 0

0 1 0 1 1 1 1 0 1 1

0 1 1 0 0 1 1 1 0 0

0 1 1 1 1 1 1 1 1 1

위의 진리표에서 출력이 1인 최소항들을 합하면 논리곱의 합형으로 표시


된다.
--BC
Y=A --D+A
--BCD+AB
---- --CD+ABC
CD+AB --D+ABCD

9.‘Y=A --+BC’ 에서 입력 변수가 3개이므로 각각 빠진 변수를 추가한다.


-- --(B+B
A =A --)=A
--B+A
-- B
-- =(B+A
-- B
--)(C+C
--)
--BC+A
Y =A --BC-- +A
-- B
--C+A -- B
----
C
--
BC=BC(A+A)=ABC+ABC --

따라서, 모든 항들을 연결하면


--+BC
Y=A
--BC+A
Y=A --BC
--+A
-- B -- B
--C+A ---- --BC
C+ABC+A

265
반도체 소자와 집적 회로/ 반도체의 개요

-- B
Y=A ----
C+A---- --BC
BC+A --+A
--BC+ABC

--=(A+B)(B+C
10. Y=B+AC --)

입력 변수가 3개이므로 각각 빠진 변수를 추가한다.


--)=(A+B+C)(A+B+C
(A+B)=(A+B)+(C・C --)
--)=(B+C
(B+C --)+(A・A
--)=(A+B+C
--)(A
--+B+C
--)

따라서, 모든 항들을 연결하면


Y=B+AC-- =(A+B)(B+C
--)
--)(A+B+C
Y=(A+B+C)(A+B+C --)(A-- +B+C
--)
--)(A
Y=(A+B+C)(A+B+C -- +B+C--)

Ⅳ. 조합 논리 회로

<결과 정리>
1. 실습 Ⅳ-1 전가산기와 전감산기 회로 실습

표 Ⅳ-8 전가산기 결과표 표 Ⅳ-9 전감산기 결과표

입력 출력 입력 출력

A B Ci S C0 A B Bi D B0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 1 1
0 1 0 1 0 0 1 0 1 1
0 1 1 0 1 0 1 1 0 1
1 0 0 1 0 1 0 0 1 0
1 0 1 0 1 1 0 1 0 0
1 1 0 0 1 1 1 0 0 0
1 1 1 1 1 1 1 1 1 1

266
반도체 소자와 집적 회로/ 반도체의 개요

2. 실습 Ⅳ-2 4비트 비교기 회로 실습

표 Ⅳ-16 4비트 비교기의 결과표

입 A B
Ai<Bi Ai=Bi Ai>Bi G Z S
력 A3 A2 A1 A0 B3 B2 B1 B0

1 0 0 0 1 0 0 0 0 0 0 0 1 0 0

2 1 1 0 0 1 1 0 0 0 0 0 0 1 0

3 0 1 1 1 1 0 0 0 0 0 0 0 0 1

4 0 1 1 0 0 0 1 1 0 0 0 1 0 0

5 0 0 0 0 0 0 0 0 0 0 0 0 1 0

6 0 1 0 0 1 0 0 0 0 0 0 0 0 1

7 0 0 1 1 0 0 1 0 0 0 0 1 0 0

1 0 0 1 0 0

8 0 0 0 0 0 0 0 0 0 1 0 0 1 0

0 0 1 0 0 1

1 0 0 1 0 0

9 0 0 0 1 0 0 0 0 0 1 0 1 0 0

0 0 1 1 0 0

1 0 0 0 0 1

10 0 0 1 0 0 1 0 0 0 1 0 0 0 1

0 0 1 0 0 1

267
반도체 소자와 집적 회로/ 반도체의 개요

3. 실습 Ⅳ-3 8×3 부호기와 2×4 해독기 회로

표 Ⅳ-22 8×3 부호기의 입출력 결과표

입력 출력

E1 D7 D6 D5 D4 D3 D2 D1 D0 X Y Y

1 1 1 1 1 1 1 1 0 1 1 1

1 1 1 1 1 1 1 0 1 1 1 1

0 1 1 1 1 1 1 1 0 1 1 1

0 1 1 1 1 1 1 0 1 1 1 0

0 1 1 1 1 1 0 1 1 1 0 1

0 1 1 1 1 0 1 1 1 1 0 0

0 1 1 1 0 1 1 1 1 0 1 1

0 1 1 0 1 1 1 1 1 0 1 0

0 1 0 1 1 1 1 1 1 0 0 1

0 0 1 1 1 1 1 1 1 0 0 0

표 Ⅳ-23 2×4 해독기의 결과표

입력 출력

G B A D3 D2 D1 D0
1 0 0 1 1 1 1
1 0 1 1 1 1 1
1 1 0 1 1 1 1
1 1 1 1 1 1 1
0 0 0 1 1 1 0
0 0 1 1 1 0 1
0 1 0 1 0 1 1
0 1 1 0 1 1 1

268
반도체 소자와 집적 회로/ 반도체의 개요

4. 실습 Ⅳ-4 7-세그먼트 해독기 회로 실습

표 Ⅳ-30 7-세그먼트 해독기의 결과표

BCD 제어 입력 7-세그먼트 BCD 제어 입력 7-세그먼트


DCBA ågåfåeådåcåbåa 숫자 DCBA å g å f å ed
å åcåbåa 숫자

0000 1000000 0 0101 0010010 5


0001 1111001 1 0110 0000011 6

0010 0100100 2 0111 1111000 7

0011 0110000 3 1000 0000000 8

0100 0011001 4 1001 0011000 9

5. 실습 Ⅳ-5 8비트 병렬 가산기 회로


표 Ⅳ-31 8비트 가산기 결과표

순번 A B S C4 C8

1 10001000 11000011 01001011 0 1

2 00011000 10011111 10110111 1 0

3 10101011 10001000 00110011 1 1

4 01010101 10101010 11111111 0 0

5 10101010 10101000 01010010 1 1

10

269
반도체 소자와 집적 회로/ 반도체의 개요

6. 실습 Ⅳ-6 BCD-3초과 코드
표 Ⅳ-35 BCD-3초과 코드의 결과표

BCD 코드 3초과 코드
10진수
A B C D W X Y Z

0 0 0 0 0 0 0 1 1

1 0 0 0 1 0 1 0 0
2 0 0 1 0 0 1 0 1

3 0 0 1 1 0 1 1 0

4 0 1 0 0 0 1 1 1

5 0 1 0 1 1 0 0 0

6 0 1 1 0 1 0 0 1

7 0 1 1 1 1 0 1 0

8 1 0 0 0 1 0 1 1

9 1 0 0 1 1 1 0 0

<단원 종합 문제>
1. A
F

2. 가. 카르노 도
BBi BBi
00 01 11 10 00 01 11 10
A A

0 1 1 0 1 1 1

1 1 1 1 1

⒜D ⒝ BO

270
반도체 소자와 집적 회로/ 반도체의 개요

나. 함수식
D=(A⊕B)⊕Bi

BO=Bi(A◉B)+AB
다. 회로도

HS HS
A
B
D
Bi

BO

3. 비교기 회로

H (A›B)

A
E (A=B)
B

L (A‹B)

-- -
4. D 0 =AB D 1 =AB

D 2 =AB D 3=AB

5. Z=D1 +D3 +D5 +D7


Y=D2 +D3 +D6 +D7
X=D4 +D5 +D6 +D7

271
반도체 소자와 집적 회로/ 반도체의 개요

6. S1 S0

I0

I1
Y

I2

I3

7. ⒜ 멀티플렉서
⒝ 디멀티플렉서

8. 1×4 디멀티플렉서 회로
S1 S0

D0
I

D1

D2

D3

9. A2 +B2 → 6번핀 S2
캐리비트 → 2번핀 S3

272
반도체 소자와 집적 회로/ 반도체의 개요

10. BCD-3초과 코드 변환기

BCD-3초과 코드 변환기 결과표

BCD 코드 3초과 코드
10진수
A B C D W X Y Z

0 0 0 0 0 0 0 1 1

1 0 0 0 1 0 1 0 0
2 0 0 1 0 0 1 0 1

3 0 0 1 1 0 1 1 0

4 0 1 0 0 0 1 1 1

5 0 1 0 1 1 0 0 0

6 0 1 1 0 1 0 0 1

7 0 1 1 1 1 0 1 0

8 1 0 0 0 1 0 1 1

9 1 0 0 1 1 1 0 0

Ⅴ. 순서 논리 회로

<결과 정리>

구형파 신호

TIME/DIV= 0.5msec VOLTS/DIV= 2V

그림 Ⅴ-19게발생 구형파

273
반도체 소자와 집적 회로/ 반도체의 개요

Q 신호

TIME/DIV= 0.5msec VOLTS/DIV= 2V

그림 Ⅴ-20게JK 플립플롭의 출력

클록 발생 수 발광 다이오드
◯ ◯ ◯ ◯
초기 상태
D1 D2 D3 D4

◯ ◯ ◯
첫 번째
D1 D2 D3 D4
◯ ◯ ◯
두 번째
D1 D2 D3 D4

◯ ◯ ◯
세 번째
D1 D2 D3 D4
◯ ◯ ◯
네 번째
D1 D2 D3 D4

표 Ⅴ-8우우방향 시프트 레지스터

274
반도체 소자와 집적 회로/ 반도체의 개요

클록 발생 수 발광 다이오드
◯ ◯ ◯ ◯
초기 상태
S1 S2 S3 S4

스위치 조정 S1=1, S2=0, S3=1, S4=0

클록 신호 ◯ ◯

발생 후 S1 S2 S3 S4

스위치 조정 S1=0, S2=1, S3=0, S4=1

클록 신호 ◯ ◯

발생 후 S1 S2 S3 S4

표 Ⅴ-9병병렬 입력 병렬 출력 레지스터

표시된 7-세그먼트 값
클록 발생 수
기준값 측정값

초기 상태 0 0

첫 번째 1 1

두 번째 2 2

세 번째 3 3

네 번째 4 4

다섯 번째 0 0

표 Ⅴ-20병동기식 5진 계수기

275
반도체 소자와 집적 회로/ 반도체의 개요

클록 발생 수 발광 다이오드
◯ ◯ ◯ ◯ ◯
초기 상태
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
첫 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
두 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
세 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
네 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
다섯 번째
D0 D1 D2 D3 D4

◯ ◯ ◯ ◯
여섯 번째
D0 D1 D2 D3 D4

표 Ⅴ-21동동기식 5진 링 계수기

표시된 7-세그먼트 값
클록 발생 수
기준값 측정값

초기 상태 0 0

첫 번째 1 1

세 번째 3 3

다섯 번째 5 5

일곱 번째 7 7

여덟 번째 0 0

표 Ⅴ-23동비동기식 3비트 2진 리플 계수기

276
반도체 소자와 집적 회로/ 반도체의 개요

표시된 7-세그먼트 값
클록 발생 수
기준값 측정값

초기 상태 0 0

첫 번째 1 1

두 번째 2 2

세 번째 3 3

네 번째 4 4

다섯 번째 5 5

여섯 번째 6 6

일곱 번째 7 7

여덟 번째 8 8

아홉 번째 9 9

열 번째 0 0

표 Ⅴ-24비비동기식 10진 리플 계수기

<단원 종합 문제>
1. ③ 2. ② 3. ⑤ 4. ① 5. ② 6. ①

277
반도체 소자와 집적 회로/ 반도체의 개요

Ⅵ. 메모리와 프로그램 가능한 논리 소자

<결과 정리>

번지 DIP-SW1 기억할 데이터 읽기 데이터-LED 출력 소거 후의


A3 A2 A1 A0 10진수 16진 D7 D6 D5 D4 D3 D2 D1 D0 16진 값(16진)
2
0 0 0 0 0(0 ) 00 0 0 0 0 0 0 0 0 00 FF

0 0 0 1 1(12) 01 0 0 0 0 0 0 0 1 01 FF

0 0 1 0 4(22) 04 0 0 0 0 0 1 0 0 04 FF

0 0 1 1 9(32) 09 0 0 0 0 1 0 0 1 09 FF

0 1 0 0 16(42) 10 0 0 0 1 0 0 0 0 10 FF

0 1 0 1 25(52) 19 0 0 0 1 1 0 0 1 19 FF

0 1 1 0 36(62) 24 0 0 1 0 0 1 0 0 24 FF

0 1 1 1 49(72) 31 0 0 1 1 0 0 0 1 31 FF

1 0 0 0 64(82) 40 0 1 0 0 0 0 0 0 40 FF

1 0 0 1 81(92) 51 0 1 0 1 0 0 0 1 51 FF

1 0 1 0 100(102) 64 0 1 1 0 0 1 0 0 64 FF

1 0 1 1 121(112) 79 0 1 1 1 1 0 0 1 79 FF

1 1 0 0 144(122) 90 1 0 0 1 0 0 0 0 90 FF

1 1 0 1 169(1352) A9 1 0 1 0 1 0 0 1 A9 FF

1 1 1 0 196(142) C4 1 1 0 0 0 1 0 0 C4 FF

1 1 1 1 225(152) E1 1 1 1 0 0 0 0 1 E1 FF

실험 Ⅵ-1의ROM 2764의 소거, 써넣기, 읽기 결과표

278
반도체 소자와 집적 회로/ 반도체의 개요

번지 DIP-SW1 쓰기 데이터 DIP-SW2 읽기 데이터-LED 출력

A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 16진 D7 D6 D5 D4 D3 D2 D1 D0 16진

0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00

0 0 0 1 0 0 0 1 0 0 0 1 11 0 0 0 1 0 0 0 1 11

0 0 1 0 0 0 1 0 0 0 1 0 22 0 0 1 0 0 0 1 0 22

0 0 1 1 0 0 1 1 0 0 1 1 33 0 0 1 1 0 0 1 1 33

0 1 0 0 0 1 0 0 0 1 0 0 44 0 1 0 0 0 1 0 0 44

0 1 0 1 0 1 0 1 0 1 0 1 55 0 1 0 1 0 1 0 1 55

0 1 1 0 0 1 1 0 0 1 1 0 66 0 1 1 0 0 1 1 0 66

0 1 1 1 0 1 1 1 0 1 1 1 77 0 1 1 1 0 1 1 1 77

1 0 0 0 1 0 0 0 1 0 0 0 88 1 0 0 0 1 0 0 0 88

1 0 0 1 1 0 0 1 1 0 0 1 99 1 0 0 1 1 0 0 1 99

1 0 1 0 1 0 1 0 1 0 1 0 AA 1 0 1 0 1 0 1 0 AA

1 0 1 1 1 0 1 1 1 0 1 1 BB 1 0 1 1 1 0 1 1 BB

1 1 0 0 1 1 0 0 1 1 0 0 CC 1 1 0 0 1 1 0 0 CC

1 1 0 1 1 1 0 1 1 1 0 1 DD 1 1 0 1 1 1 0 1 DD

1 1 1 0 1 1 1 0 1 1 1 0 EE 1 1 1 0 1 1 1 0 EE

1 1 1 1 1 1 1 1 1 1 1 1 FF 1 1 1 1 1 1 1 1 FF

전원을 껐다 켠 후의 데이터 변화:데이터가 변화하였다.

실험 Ⅵ-2읽SRAM 6264의 읽기 및 쓰기 결과표

RISC의 구조는 명령 캐시와 데이터 캐시가 분리되어 있어 서로 다른 접근 경


로를 가지고 있으며 고정 배선 제어 방식을 사용한 것으로 그림 Ⅵ-22와 같다.

<단원 종합 문제>
1. ② 2. ② 3. ⑤ 4. ③ 5. ① 6. ④ 7. ② 8. ①
9. ③ 10. ④ 11. ① 12. ④ 13. ⑤ 14. ② 15. ② 16. ①

279
인용 및 참고 문헌 Ⅰ. 디지털 시스템의 개요

1. 堀桂太郞「디지털 회로 입문」
. 성안당. 1999, pp. 3~42.
2. 서열규 외.「실험과 함께 하는 디지털 논리회로」
. 형설출판사. 1999, pp. 12~
13. 65~80.
3. 이우춘 외.「최신 논리회로」
. 한올 출판사. 1999, pp. 61~76.
4. 이재민.「디지털 논리회로의 기초」
. 광문각. 2000, pp. 11~16.
5. 진경시 외.「최신 디지털 공학」
. 기전연구사. 2000, pp. 13~19. 22~27.
6. 편집부.「실용 디지털 IC 기술」
. 도서출판 세화. 1988, pp. 11~57

Ⅱ. 정보의 표현

1. 이용국.「디지털 논리 회로」
. 기술 연구사. 1995, pp. 38~65.
2. 이대영 외.「디지털시스템」
. 희중당. 1997, pp. 21~45.
3. 강경진 외.「디지털 시스템」
. 생능출판사. 994., pp. 14-45.
4. 김용운 외.「재미있는 수학여행」
. 김영사. 1994, pp. 59-62.
5. 강승식 외.「실용정보 처리론」
. 생능 출판사. 2000, pp. 18~38.
6. 우진운 외.「80x86 어셈블리어」
. 상조사. 1999, pp. 15~32.
7. Morris Mano. 「Logic and Computer Design Fundamentals」
. Prentice Hall.
pp. 8~25.

Ⅲ. 불 대수

1. 구성모 외.「현대 디지털 공학 실험」


. 복두출판사. 1999, pp. 9~53.
2. 김일경 외.「디지털 논리회로 실험」
. 광문각. 1996, pp. 11~89.
3. 박준식 외.「디지털 공학 기초 실험」
. 기한재. 1998, pp. 11~49.
4. 서열규 외.「실험과 함께하는 디지털 논리회로」
. 형설출판사. 1999, pp. 34~
146.
5. 이두복 외.「디지털 공학 실험」
. 동일출판사. 1998, pp. .21~83.
6. 이우춘 외.「최신 논리회로」
. 한올 출판사. 1999, pp. 81~116.
7. 이재민.「디지털 논리회로의 기초」
. 광문각. 2000, pp. 48~69.
8. 진경시 외.「최신 디지털 공학」
. 기전연구사. 2000, pp. 75~130.

Ⅳ. 조합 논리 회로

1. 강민섭.「디지털 논리 회로 설계」
. 상조사. 1998, pp. 13~165
2. 성평식.「논리 회로 설계」
. 대림. 1995, pp. 3~146
3. 박기주 외.「디지털 논리 회로 설계」
. 동일. 1997, pp. 11~215
4. 전자공학회.「디지털 회로 및 시스템 실험」
. 청문각. 1996, pp. 3~463

280
5. Yarbrough.「디지털 논리 회로」
. 영한. 1999, pp. 12~344
6. 김대호 외.「논리 회로기초」
. 대림. 1995, pp. 3~145
7. 정용진 외.「논리 회로설계」
. 상조사. 1994, pp. 11~185
8. 황희용.「디지털 논리와 컴퓨터설계」
. 동일 출판사. 1991, pp. 11~188
9. 김경복.「최신 디지털 공학」
. 상조사. 1996, pp. 11~123

Ⅴ. 순서 논리 회로

1. 김자룡 외.「디지탈 논리회로 설계」


. 이한출판사. 1999, pp. 243~293.
2. 김정훈 외.「디지털 논리회로 실험」
. 연학사. 2000, pp. 123~148.
3.. 김성일 외.「디지탈 논리회로 실험」
. 복두출판사. 1999, pp. 171~188.
4. 윤재강 외.「디지털 논리회로”
」. 동일출판사. 1999, pp. 128~159.
5. 이재민.「디지털 논리회로의 기초」
. 광문각. 2000, pp. 144~172.
6. 홍성민 외.「디지털 회로실험」
. 동일출판사. 1999, pp. 230~256.
7. 이토오야스시.「디지털회로」
. 대광서림. 2000, pp. 67~111.
8. 天野英晴 外.「알기쉬운 디지털 회로」
. 일본옴사・성안당. 1999, pp. 65~109.
9. Morris Mano. 「Logic and Computer Design Fundamentals」
. Prentice Hall,
pp. 173~214.
10. 이용국.「디지털 논리 회로」
. 기술 연구사. 1995, pp. 174-245.
11. 이대영 외.「디지털시스템」
. 희중당. 1997. pp. 279~347.
12. 하판봉 외.「디지털 전자공학」
. 시그마프레스. 1997, pp. 416~447, pp. 530~
548.
13. 최승진 외.「전기・전자・전산을 위한 디지털 공학」
. 웅보출판사. 1996, pp.
228~286.

Ⅵ. 메모리와 프로그램 가능한 논리 소자

1. 서열규 외.「디지털 논리회로」


. 형설출판사. 1999, pp. 211~257.
2. 이우춘 외.「최신 논리회로」
. 한올 출판사. 1999, pp. 255~273.
3. 홍안의.「디지털 논리 회로 설계」
. 보문당. 1998, pp. 201~239.
4. 하재철 외.「최신 디지털 논리회로」
. 영진서관. 2000, pp. 271~297.
5. 김태중.「8051 프로그래밍」
. 두남문화사. 1998
6. 차영배.「ONE-CHIP MICROCOMPUTER 8051」
. 다다미디어. 2000
7. 차영배.「어셈블리어로 배우는 8051」
. 동일출판사. 2000
8. 정기철 외.「8051 마이크로프로세서」
. 복두출판사. 1999

281

You might also like