본문내용
1. 디지털 시계의 설계와 구현
1.1. 디지털 시계의 설계 목적
디지털 시계의 설계 목적은 그동안 학습했던 내용을 토대로 디지털 시계를 설계하여 디지털 응용회로 설계에 대한 개념을 정립하고 설계 절차를 학습하는 것이다.
디지털 시계 설계를 통해 카운터 회로, 시간 표시를 위한 디코더, 오전/오후 표시 회로, 시간 설정 회로 등 디지털 응용회로의 핵심 구성요소들을 설계하고 이해할 수 있다. 이를 통해 복잡한 디지털 회로 설계의 기본 개념을 체득할 수 있다.
또한 디지털 시계는 주변에서 흔히 볼 수 있는 디지털 응용 제품의 대표적인 사례로, 이를 직접 설계해봄으로써 디지털 회로 설계의 전반적인 프로세스와 구현 방법을 익힐 수 있다.
요약하면, 디지털 시계의 설계 목적은 디지털 응용회로 설계 기술을 습득하고 실제 회로 구현을 통해 설계 역량을 기르는 것이라 할 수 있다.
1.2. 디지털 시계의 이론적 배경
1.2.1. 카운터 회로 설계
카운터는 입력 펄스의 수를 세는 장치이며 대표적인 플리플롭 응용 장치이다. 카운터에는 비동기 카운터, 동기식 카운터, 프리세트 카운터 등이 있다.
비동기 카운터는 직렬 카운터이며 플리플롭을 다수 종속으로 연결하는 구조로 되어 있다. 플리플롭의 출력 전이가 다른 플리플롭을 트리거 시키는 원인으로 작용하여 '리플 카운터'라고도 불린다. 비동기 카운터는 상향 카운터(Up Counter)와 하향 카운터(Down Counter)가 있다. 상향 카운터는 각 플리플롭이 클록펄스의 하강 에지에서 변화하고 Q A에서는 입력 클록 주파수의 1/2, Q B에서는 1/4, Q C에서는 1/8, Q D에서는 1/16의 주파수를 갖는 구형파가 얻어진다. 하향 카운터는 각 플리플롭이 클록펄스의 상승 에지에서 변화하고 Q A에서는 입력 클록 주파수의 1/2, Q B에서는 1/4, Q C에서는 1/8, Q D에서는 1/16의 주파수를 갖는 구형파가 얻어진다.
우리가 주변에서 흔히 볼 수 있는 디지털시계는 카운터를 이용해 만든 대표적인 순차 회로 중 하나이다. 디지털 시계에서 쓰이는 카운터는 enable 제어 신호를 가지고 있는 카운터를 설계해야 한다. enable 제어 신호를 가져오는 이유는 모든 카운터가 하나의 클록펄스에 동기되어 있어 만약 enable 제어 신호가 없다면, 클록펄스가 하나씩 허가될 때마다 모든 카운터들이 동시에 1씩 증가하게 된다.
시계는 초의 1의 자리에 해당하는 10진 카운터가 0부터 9까지 세는 동안에 또 다른 카운터들이 동작을 하면 안 된다. 0부터 9까지 갔다가 다시 0으로 돌아갈 때 초의 10의 자리에 해당하는 6진 카운터가 1 증가해야 한다. 또한, 분을 보면 1의 자리에 있는 10진 카운터는 초의 10의 자리에 있는 6진 카운터가 5에서 0으로 변하는 시점(59초에서 00초로 변할 때)에 맞춰서 1 증가해야 한다. 즉 1Hz 클록이 인가되는 시점은 초의 일의 자리 10진 카운터가 증가하는 것이다. 이처럼 시계를 구성하고 있는 카운터가 1이 증가하는 시점이 다 다르기 때문에 카운터마다 enable 제어 기능을 갖게 설계해야 한다.
각 카운터는 우측에 있는 카운터로부터 입력되는 enable 제어신호 E_i가 1일 때만 1 증가하도록 설계해야 한다. 또한 좌측에 있는 카운터로 보낼 때는 enable 제어 신호 E_o로 만들어 주어야 한다. 출력 E_o를 만들기 위해서는 자신의 카운터 값이 최댓값인 경우만을 디코딩하면 안 되고, 카운터의 단계가 올라갈수록 현재 자신의 값과 바로 밑에 있는 모든 카운터가 각자 최상의 값을 가지고 있으면 출력 E_o를 1로 만들어 주어야 한다.
이미 만든 회로에 Enable 제어 신호를 추가하려면 설계하고 싶은 카운터를 입력 ...