Digital System Design
디지털 시스템 디자인
- 디지털 시스템 디자인은 크게 3가지 계층적 구조로 구분된다.
( System > Logic > Circuit)
* Digital System의 장점
1. 디지털 신호는 아날로그 신호에 비해 전송이 용이하다.
2. 이진법 논리(0/1)의 특성상 에러 확률이 아날로그 신호에 비해 현저히 낮다.
3. 좋은 품질의 재생이 가능하다. (손실율이 낮다)
4. 제작이 간편하다.
* Digital System의 단점
1. A/D 또는 D/A 컨버터가 필요하다. (아날로그와 데이터 신호를 서로 변환시켜주는 장치)
Analog - Digital
Analog: 연속적으로 변화하는 물리량으로 아날로그 값들은 대체로 연속적인 특성을 보인다. 아날로그 물리량의 예로는 전압, 전류 등 일상생활에서 흔히 접하는 값들이 있다.
Digital: 임의의 시간에서의 값이 최솟값의 정수배로 되어있으며, 그 이외에 중간값(정의되지 않은 값)을 취하지 않는다. 이로인해 디지털값들은 불연속적(이산적)이라는 특성을 가진다.
1. System Design
- 전체 시스템을 Sub system으로 분해하고, 각 Sub system들을 특성화하여 설계하는 단계
- Sub system에는 각종 소자(Gates)들이 조합되어 있다.
2. Logic Design
- 특정 기능을 구현하기 위한 Basic building block들을 어떻게 상호 연결할 것인가를 설계하는 단계
* Basic building block: AND gate, OR gate, NOT gate와 같은 기본소자들을 의미한다.
- Logic Design을 통해 설계되는 회로엔 크게 두 가지 타입이 있는데,
이들을 Combinational Circuit(조합회로), Sequential Circuit(순차회로)이라 부른다.
가. Combinational Logic Circuit (조합회로)
- 출력값이 오로지 현재 입력값에 의해서만 영향을 받는 구조이다.
- Boolean Function으로 구성된다.
- 위와 같은 이유로 기억 소자가 필요없는 구조이다.
나. Sequential Logic Circuit (순차회로)
- 출력값이 Present Value 뿐만 아니라, Past Value에 의해서도 영향을 받는 구조이다.
- 순차회로 = 조합회로 + Flip Flops
* Initial state setting을 통해 FFs(Flip Flops)의 초깃값을 설정할 수 있다.
* Gates의 종류에 따라, input, output 개수의 제한이 존재할 수 있다.
* Logic Circuit = Combinational Logic Circuit + Sequential Logic Circuit
※ Logic Design Procedure
1. From the specification of the circuit, determine the required number of inputs and outputs and assign a symbol to each.
2. Derive the truth table that defines the required relationship between the inputs and outputs.
3. Obtain the simplified boolean functions for each output variables.
4. Draw the logic diagram and verify the correctness of the design.
3. Circuit Design
- 회로 내에 각종 소자들을 직접 구현하는 단계로 세 단계중 가장 하위 레벨에 속하는 단계이다.
- 이 영역은 전자공학의 영역으로, 컴퓨터 공학에서는 Abstraction(추상화)을 통해 간단하게 표현한다.
* Abstraction (추상화)
The number of Input & Output Notation on Diagram (입출력 개수의 간단한 표기 방법)
- 어떤 시스템에서 입력값이 M개, 출력값이 N개일 때의 간단한 표기법
Ex. Sequential Circuit Diagram
여기서, Combinational Circuit(조합회로)의 총 입력값의 개수는 \(M + b\)개 이고,
총 출력값의 개수는 \(N + a\)개 이다.
Sequential Logic Circuit (순차 회로)
- 시간의 흐름에 따라 State*가 변화하는, 메모리를 가진 회로이다.
- 기본적인 메모리 소자에는 Latch*와 Flip-Flop*이 있다.
* State
- 메모리 소자가 저장하고 있는 이진수를 의미한다.
* Latch
- Clock 신호 없이, 입력값에 의해서만 출력이 결정되는 회로소자이다.
- PWM 파형 생성, 555-타이머에서와 같이, Pulse 파형을 생성할 때 응용된다.
* Flip-Flop
- 입력값들이 Clock 신호에 맞춰서 입력되어 출력이 결정되는 회로소자이다.
- Synchronization*이 필요한 경우에 응용된다. (대표적으로, 카운터, 레지스터 등)
* Synchronization (동기화)
- 상태의 변화가 같은 시간에 발생하도록 하는 것이다.
* Synchronous Circuit (동기화 회로)
- 모든 메모리 소자가 Clock 신호에 맞춰 일률적으로 상태가 변화되는 회로이다.
- Clock에 동기화되어 있지 않으므로, 각 소자의 조합으로 된 회로의 지연 시간이 모두 다르다.
(따라서, 복잡한 회로에서 시간 지연의 누적에 의해 동기화를 못하게 되는 경우가 발생하기도 한다.)
- 비동기 개념은 동기 회로에서 Clock 주기 사이에 제어를 가능하도록 하는 Interrupt의 역할로 사용되기도 한다.
* Asynchronous Circuit (비동기 회로)
- Clock 신호에 동기화되는 것이 아닌,
이전 출력, 입력의 변화에 의해 Trigger되어 상태가 변화되는 회로이다.