JANGUN


디지털 논리회로


지음 : 김형근



목차

제1장 컴퓨터와 디지털 논리회로
제2장 데이터 표현
제3장 논리게이트와 부울대수
제4장 부울함수의 간소화 및 구현
제5장 조합논리회로
제6장 순서논리회로
제7장 레지스터와 카운터
제8장 기억장치와 PLD



제1장 컴퓨터와 디지털 논리회로

1. 시스템이란 입력과 출력을 갖는 검은 상자로서, 어떠한 목적을 달성하기 위하여 상호 작용하는 구성요소들의 집합이다.
2. 디지털 시스템은 편리성, 융통성, 단순성, 안정성, 견고성, 정확성 등과 같은 장점을 가지고 있다.
3. 디지털 시스템을 설계하는 단계는 회로 설계 단계, 논리 설계 단계, 시스템 설계 단계, 실제적 설계 단계 등으로 나눌 수 있다.
4. 디지털 논리회로는 저장요소가 없는 조합논리회로와 저장요소가 있는 순서논리회로로 크게 분류된다.
5. 디지털 회로는 집적회로로 구현되어 있다.
6. 집적도란 단위 실리콘 칩에 집적할 수 있는 게이트의 수를 말하는데, 이러한 집적도를 기준으로 하여 집적회로는 소규모 집적, 중규모 집적, 대규모 집적, 초대규모 집 적으로 나눌 수 있다.



제2장 데이터 표현

1. 진법이란 수를 숫자로서 나타내는 방법으로 특히 숫자의 위치에 따라 가중치를 부여하는 방법이다.
2. 2진수에서는 2-보수와 1-보수가 있고, 10진수에서는 10-보수와 9-보수가 있다.
3. 10진 코드에는 BCD 8421 코드, BCD 2421 코드, BCD 84-2-1 코드, 3초과 코드, 그레이 코드 등이 있고, 영숫자 코드에는 ASCII 코드, EBCDIC 코드, 유니코드 등 이 있다.



제3장 논리게이트와 부울대수

1. 논리연산은 두 개의 이산 값에 적용되는, 논리적 의미를 갖는 연산들을 의미한다.
2. 부울대수는 0 또는 1의 값을 갖는 논리변수와 논리연산을 다루는 대수이다.
3. 논리집합을 대상으로 이루어지는 대표적인 논리연산으로는 AND 연산, OR 연산, NOT 연산 세 가지가 있다.
4. 디지털 논리회로를 구성하는 논리게이트는 AND, OR, NOT, NAND, NOR, XOR, XNOR 게이트 등이 있다.
5. 부울함수는 논리변수의 상호관계를 나타내기 위해 부울변수, 부울연산기호, 괄호 및 등호 등으로 나타내는 대수적 표현이다.
6. 부울함수는 논리 게이트들로 구성되는 논리회로도를 작성할 수 있다.
7. 부울함수는 진리표로 유일하게 나타낼 수 있으나, 동일 진리표를 만족하는 부울함수는 여러 개가 될 수 있다.
8. 여러 개의 부울함수는 여러 개의 논리회로를 갖게 되므로 단순화(간소화)된 부울함수가 필요하다.
9. 부울함수의 간소화 방법은 1) 대수적인 방법, 2) 도표를 이용한 방법, 3) 테이블을 이용한 방법 등이 있다.
10. 하나의 진리표를 부울함수로 유일하게 나타내는 방법으로 정규형 표현이 있는데 최소항의 곱형태와 최대항의 합형태의 두 종류가 있다.
11. 부울함수가 복잡할수록 구현되는 논리회로도는 복잡해지므로 부울함수를 간소화할 필요가 있다.
12. 부울대수의 기본 공식과 몇 가지 기본적인 방법을 이용하여 부울함수를 간소화 시키는 것을 대수적 간소화라 한다.
13. 부울함수의 표준형은 곱항의 합형태와 합항의 곱형태가 있다.



제4장 부울함수의 간소화 및 구현

1. 부울함수 간소화의 대표적인 방법으로 주어진 부울함수에 대하여 카노우 도표를 사용하는 도표 간소화 방법이 있다.
2. 카노우 도표는 여러 개의 사각형으로 된 그림이며, 사각형은 각각 하나의 최소항 또는 최대항을 나타낸다.
3. 카노우 도표는 입력변수 n 에 따라 2 n 개의 정사각형으로 구성되므로, 도표의 복잡도를 고려하여 여섯 개 이하의 변수만을 고려한다.
4. 카노우 도표는 2변수, 3변수, 4변수 카노우 도표가 주로 사용되며, 인접 사각형을 고려하여 부울함수룰 간소화 한다.
5. 어떤 논리회로에서는 입력변수들의 조합에 따라서 함수값이 발생하지 않는 경우나 0 이나 1 중 어떠한 함수값이 출력값으로 나와도 무관한 경우가 있는데 이를 무관 조건이라 한다.
6. 실제 회로를 설계할 때, AND와 OR 게이트보다 NAND와 NOR 게이트를 사용하여 부울함수를 구현하는 경우가 더 많다.
7. NAND 게이트는 AND, OR 게이트의 연산기능을 수행할 수 있도록 구성할 수 있기 때문에 임의의 부울함수를 NAND 게이트로 구현할 수 있다. 이때 부울함수는 곱의 합형태로 변환되어 있어야 한다.
8. NOR 게이트도 NAND 게이트와 유사하게 AND, OR 게이트의 연산기능을 수행하도록 구성할 수 있기 때문에, 임의의 부울함수를 NOR 게이트로 구현할 수 있다. 이때 부울함수는 합의 곱형태로 변환되어 있어야 한다.



제5장 조합논리회로

1. 조합논리회로는 현재의 입력에 의해서만 출력값이 결정되는 회로이다.
2. 조합논리회로의 분석은 주어진 논리회로도로부터 출력 부울함수나 진리표를 구하는 것이고, 설계는 주어진 회로에 대한 설명으로부터 논리회로도를 구하는 것이다.
3. 기본 연산회로는 가 ⋅감 ⋅승 ⋅제의 산술연산회로를 말한다.
4. 가산기(adder)는 2진수의 덧셈을 수행하는 조합논리회로로서 반가산기(Half Adder)와 전가산기(Full Adder)로 나타낸다.
5. 반가산기(HA)는 한 비트의 2진수에 다른 한 비트 2진수를 더하는 산술회로로 2개의 입력과 2개의 출력을 갖는다.
6. 전가산기(FA)는 세 입력 비트의 합을 계산하는 조합논리회로로 3개의 입력과 2개의 출력으로 구성된다.
7. 감산기(subtractor)는 2진수의 뺄셈을 수행하는 조합논리회로로서 반감산기(Half Subtractor)와 전가산기(Full Subtractor)로 나타낸다.
8. 반감산기(HS)는 한 비트의 2진수에서 다른 한 비트의 2진수를 빼서 그 차를 산출하는 조합논리회로이다.
9. 전감산기(FS)는 바로 앞의 자리에서 빌려온 1을 고려하여 세 비트 사이의 뺄셈을 수행하는 조합논리회로이다.
10. 가⋅감산기는 덧셈과 뺄셈을 가산기만으로 수행하는 조합논리회로이다.

11. 코드변환기는 하나의 2진 코드를 다른 2진 코드로 바꾸어 주는 조합논리회로이다.
12. 패리티비트는 에러를 검출해 내는 에러 검출용 비트을 말한다.
13. 패리티비트를 이용하는 방법에는 짝수패리티검출 방식과 홀수패리티검출 방식, 그리고 2중 패리티검출 방식이 있다.
14. BCD-세븐 세그먼트 표시기는 세븐 세그먼트를 이용하여 BCD 코드의 10진 표시를 나타내는 장치로 BCD 코드를 10진 숫자로 직접 볼 수 있게 해 준다.

15. 인코더란 부호화되지 않는 입력을 받아서 부호화된 출력으로 내보내는 부호화기다.
16. 디코더는 n 비트의 2진 코드를 최대 2n 개의 서로 다른 정보로 바꿔 주는 조합논리회로이다.
17. 디코더를 이용하여 부울함수를 구현할 수 있으며, n 개의 입력과 m 개의 출력을 가진조합논리회로를  nⅹ2n  디코더와 m 개의 OR 게이트로 만들 수 있다.
18. 멀티플렉서는 여러 개의 입력선 중에서 하나를 선택하여 단일의 출력으로 내보내는 조합논리회로이다.
19. 멀티플렉서는 2n 개의 입력선 중에서 특정 입력선을 선택하기 위해서는 n개의 선택변수가 있어야 한다.
20. 멀티플렉서는 데이터 선택기(data selector)라고도 하며, 약어로 MUX 로 표현한다.
21. 멀티플렉서는 OR 게이트를 가진 디코더와 같은 기능을 수행하며, n 개의 선택입력과  2n 개의 데이터 입력을 가진 멀티플렉서를 이용하면 n+1 개의 변수를 가진 부울함수를 구현할 수 있다.
22. 디멀티플렉서는 데이터 분배기라고도 불리며, 멀티플렉서와 반대되는 연산을 수행하는 조합논리회로이다.



제6장 순서논리회로

1. 순서논리회로는 조합논리회로와 피드백을 형성하는 저장요소로 구성된다.
2. 순서논리회로는 동기 순서논리회로와 비동기 순서논리회로로 분류된다.
3. 플립플롭은 입력신호에 의해서 상태를 바꾸도록 지시할 때까지는 현재의 2진 상태를 유지하는 논리소자이다.
4. 래치는 플립플롭의 가장 기본적인 형태로, 클럭 신호에 관계없이 출력을 변화시키는 비동기 논리소자이다.
5. SR 래치는 비동기 순서논리회로의 저장요소이며 2개의 NOR 게이트나 2개의 NAND 게이트로 구성할 수 있으며, 각각 세트와 리세트의 두 입력을 갖는다.
6. SR 래치에 게이트를 추가하여 래치가 한 클럭 펄스 발생기간 동안에만 입력에 응답하도록 만든 래치를 SR 래치 또는 RS 플립플롭이라고도 하며 동기 순서논리회로의 저장요소로 사용된다.
7.  RS 플립플롭의 동작에서는 제어입력인 클럭 C 가 1 이고, S, R 이 각각 1, 1 일 때 미정상태라는 문제가 나타난다.
8.  RS 플립플롭의 문제점을 제거하는 방법으로 D 플립플롭이 사용되며, D 플립플롭은 자신의 내부와 외부 사이에 2진 정보를 순간적으로 저장하는 데 적합하다.
9. JK 플립플롭은 RS 플립플롭에서 나타나는 미정상태를 정의하여 사용할 수 있도록 한 RS 플립플롭의 개량된 형태이다.

10. 순서논리회로를 분석한다는 것은 플립플롭의 상태와 입출력 상태의 시간적 변화를 적절히 나타내는 것을 말한다.
11. 순서논리회로의 분석은 상태표 작성으로 이루어진다.
12. 상태표의 작성은 플립플롭의 상태 변화에 의한 입력을 알면 구할 수 있고, 플립플롭의 입력은 입력방정식으로 표현된다.
13. 상태도는 상태표를 그림으로 나타낸 것으로서, 회로의 상태변화를 도형으로 나타내기 때문에 회로분석을 보다 쉽게 할 수 있다.

14. 순서논리회로의 설계는 설계명세로부터 상태표를 작성하고 이를 통해 플립플롭의 입출력 방정식을 도출한 뒤 논리회로도로 그리는 과정이다.
15. 순서논리회로를 설계할 때 상태는 플립플롭의 상태를 의미하므로 상태가 2개인 경우는 1개의 플립플롭이 필요하며, 일반적으로는 상태가 2n 인 경우 n개의 플립플롭이 필요하다.



제7장 레지스터와 카운터

1. 레지스터는 데이터를 일시 저장하거나 전송하는 장치로서, n 비트 레지스터는 n 개의 플립플롭으로 구성되고, n 비트의 2진 정보를 저장할 수 있다.
2. 레지스터에 새로운 데이터를 기억시키는 과정을 적재한다고 하며, 입력된 데이터를 그대로 기억하는 역할을 수행하는 레지스터를 데이터 적재 레지스터라고 한다.
3. 시프트 레지스터는 데이터의 자리이동방식에 따라 왼쪽 시프트, 오른쪽 시프트, 양방향 시프트 레지스터 등으로 분류된다.
4. 시프트 레지스터의 구성은 직렬로 플립플롭을 연결한 것으로, 한 플립플롭의 출력을 다음 플립플롭의 입력에 연결한다.
5. 직렬전송은 하나의 직렬입력과 하나의 직렬출력을 갖는 시스템으로 한 방향으로 시프트하는 동안 한 번에 한 비트씩 전송하게 된다.
6. 병렬전송을 레지스터의 모든 비트가 한 클럭펄스로 동시에 전송되는 방법으로 전송속도가 매우 빠르다.
7. 병렬적재 양방향 시프트 레지스터는 왼쪽과 오른쪽의 양쪽 방향으로의 시프트와 병렬적재가 가능한 레지스터를 말한다.
8. 카운터는 입력 클럭펄스의 적용에 따라 미리 정해진 순서를 밟아 가는 순서논리회로이다.
9. 카운터를 동작 클럭펄스의 인가방식에 따라 분류하면 비동기식 카운터와 동기식 카운터로 나눌 수 있다.
10. 카운터를 계수방식에 의해 분류하면 2n 진 카운터라 부르는 2진 카운터와 모듈러스 카운터인 N진 카운터, 그리고 시프트 카운터로 나눌 수 있다.
11. 비동기식 카운터는 카운터를 구성하고 있는 각 플립플롭에 동시에 클럭이 가해지지 않는 카운터로서, 리플 카운터라고도 한다.

12. 동기식 카운터는 카운터를 구성하고 있는 모든 플립플롭에 동시에 클럭 펄스가 가해진다.
13. 동기식 카운터는 모든 플립플롭이 한꺼번에 동작하기 때문에 동작속도의 향상을 기할 수 있다.
14. 동기식 2진 카운터는 2진 순서를 따르는 카운터이다.
15. 모듈로–N 카운터는 N개의 상태를 반복하는 카운터이다.
16. 링 카운터는 시프트 레지스터를 응용한 가장 간단한 카운터이다.
17. 링 카운터는 출력비트 중 한 비트만이 1 이 되고, 입력 펄스에 의해서 한쪽 방향으로 1 의 위치가 순환된다.
18. 존슨 카운터는 링 카운터와 유사한 동작을 수행하지만, 링 카운터에 비해 2배의 상태를 계수한다.
19. 카운터를 설계하려면 순서논리회로의 설계과정을 그대로 따른다.



제8장 기억장치와 PLD

1. 기억장치로는 RAM과 ROM이 있으며, ROM과 유사한 동작을 수행할 수 있는 논리장치로 프로그래밍이 가능한 논리장치(PLD)가 있다.
2. RAM은 사용자가 자유롭게 데이터를 읽거나 쓸 수 있는 휘발성 기억장치를 말한다.
3. RAM에는 정적인 RAM인 SRAM과 동적인 RAM인 DRAM의 두 가지 종류가 있다.
4. RAM은 저장할 수 있는 단어 수와 각 단어를 구성하는 비트 수로 그 규모를 정의한다.
5. 2k×n RAM 은 저장할 수 있는 단어의 수가 2k 개이고, 각 단어는 n 비트로 이루어져 있음을 나타낸다.
6. RAM의 내부구조는 1비트의 2진 정보를 저장할 수 있는 기본단위의 기억소자와 각 단어를 선택하기 위한 디코딩 회로로 이루어져 있다.
7. RAM의 용량을 증가시키는 데에는 기억장치 내의 단어의 수를 증가시키는 방법과 단어의 비트수를 증가시키는 방법이 있다.
8. ROM은 하드웨어적으로 쓰여져 있는 데이터를 읽어낼 수만 있는 기억장치로, 그 내용을 변경할 수도 없고 전원을 끊어도 내용이 소멸되지 않는 특징이 있다.
9. ROM은 특별한 패턴 구조로 프로그래밍 할 수 있는 내부의 전자 퓨즈선으로 구성되어 있으며, 일단 한 형태로 프로그래밍하면 전원의 유무에 관계없이 그 패턴을 그대로 유지한다.
10. ROM의 내부구조는 디코더와 OR 게이트로 구성된 메모리 배열로 이루어져 있으며, 디코더에 OR 게이트를 연결하면 ROM을 이용한 조합논리회로의 구현이 가능하다.

11. PLD는 프로그래밍이 가능한 논리장치로 프로그래밍이 가능한 전자 퓨즈선으로 연결된 게이트의 배열로 구성된 집적회로를 말한다.
12. PLD는 PROM, PAL, PLA의 세 가지 형태가 있으며, AND–OR 배열의 프로그래밍 가능 여부로 구별된다.
13. PROM은 고정된 AND 배열과 프로그래밍이 가능한 OR 배열로 이루어진 ROM을 말한다.
14. PLA는 ROM과 같은 기능을 수행하지만, ROM의 단점을 보완한 프로그래밍 가능한 논리장치로 모든 입력변수를 디코딩하지 않으며, 모든 최소항도 만들지 않는다.
15. PLA를 이용한 조합논리회로의 구현이란 PLA의 내부를 구성하는 AND–OR 게이트 배열을 프로그래밍 한다는 것을 의미한다.
16. PLA를 이용한 조합논리회로를 구현하려면 조합논리회로의 논리를 나타내는 PLA프로그래밍표를 작성하면 되고, 작성된 프로그래밍표를 사용하여 PLA가 제작된다.
17. PAL에서 OR 게이트 배열은 고정되어 있고, AND 게이트 배열은 프로그래밍이 가능한 소자로 PLA와 유사하다.
18. PAL은 AND 게이트의 배열에 대한 프로그래밍이 가능하기 때문에 PLA보다는 값이 싸고, 비교적 간단한 논리함수의 실현에 효과적이다.