10진 카운터 회로도 - 10jin kaunteo hoelodo

[ 학습목표 ]

1. 카운터의 종류를 안다.

2. 비동기식 2진(10진) 업/다운 카운터의 동작원리에 대하여 이해한다.

3. 동기식 2진(10진) 업/다운 카운터의 동작원리에 대하여 이해한다.

4. 링/존슨 카운터의 동작원리에 대하여 이해한다.

[ 학습내용 ]

10. 카운터(Counter)

10.1 카운터의 종류

카운터는 순서회로의 가장 대표적인 응용회로로서, 수를 헤아릴 수 있는 회로이다. 즉 플립플롭의 클록입력단자에 인가되는 주기적인 신호의 개수를 헤아린다. 주기적인 신호의 개수를 헤아린다는 것은 시간을 계산할 수 있음을 의미한다. 따라서 카운터는 디지털 시스템 설계 시에 매우 유용하게 이용되는 소자다.

일반적인 카운터의 종류는 세 가지 요소에 의해서 구분할 수 있다. 물론 이외에도 특별한 카운터가 있다. 세 가지 요소는 다음과 같이 나눌 수 있다.

(

동기식 카운터

)(

2진 카운터

)(

업(UP) 카운터

)

비동기식

10진 카운터

다운(DOWN) 카운터

동기식과 비동기식은 카운터의 출력이 하나의 입력 클록에 의해 동기 되는지의 여부에 의해 구분된다. 동기식은 모든 플립플롭이 하나의 입력 클록에 의해서 출력이 동기되기 때문에 플립플롭의 클록 입력단자에 인가되는 신호선이 같다. 반면에 비동기식은 플립플롭마다 클록입력단자에 인가되는 신호선이 서로 다르다.

2진과 10진은 카운터의 계수(計數) 범위에 의해서 결정된다. n비트(Bit) 2진 카운터의 계수 범위는 0 ~ (2n-1)인 반면에 10진 카운터의 계수 범위는 0~9이다. 따라서 카운터는 4비트 카운터이다.

카운터의 계수 값이 증가하면 업 카운터이고, 감소하면 다운 카운터이다.

세 가지 요소를 조합하여 총 8종류의 카운터로 나눌 수 있다. 우선 8종류의 일반적인 카운터에 대하여 알아보고 그 외의 특별한 기능이 있는 카운터에 대해서 알아보도록 하자.

10.1.1 비동기식 2진 업(up)/다운(down) 카운터

비동기식 카운터를 리플(Ripple)카운터라고 한다. 카운터 내의 플립플롭 출력이 동시에 발생되지 않고 순차적으로 발생한다고 해서 일컫는 말이다. 앞단의 플립플롭의 출력이 다음 단 플립플롭의 클록으로 인가되기 때문에 출력이 순차적으로 발생한다.

카운터 출력은 3비트이다. 즉 이다. 이때 가 MSB이다. 외부 클록입력은 첫 번째 단의 플립플롭 클록 입력단자에 인가되고 다음 단 플립플롭의 클록 입력단자에는 이전 단의 가 인가된다.

클록이 발생할 때마다 값은 증가된다. 계수 범위는 2진 카운터이므로 0~7이다.

초기에 이면 다음 클록에서는 로 증가한다. 이것을 그림으로 나타내면 아래 그림과 같고 순서 회로의 상태도와 같다.

[3비트 2진 업 카운터의 상태도]

3비트 2진 업 카운터의 동작 상태를 타이밍도로 나타내면 아래 그림과 같다.

[3비트 2진 업 카운터의 타이밍도]

카운터의 출력 변화를 나타내었다. 타이밍도의 가장 아래쪽에 나타낸 의 파형도는 3개의 신호 값들을 묶어서 2진 값으로 표현한 것이다. 여러 개의 신호선 들의 묶음을 버스(BUS)라고 하며 이러한 신호들의 타이밍도는 위와 같은 방법으로 표현하면 된다.

는 클록에 의해 동작하며, JK플립플롭의 입력이 모두 11이므로 클록의 모서리가 발생하면 이전 상태와 반대(토글)가 된다. 따라서 는 클록의 파형과 같다. 의 클록이 발생하면 토글이 된다. 왜냐하면 의 클록 입력이 이기 때문이다. 또한 의 출력도 의 클록에 의해서 토글된다. 비동기식은 출력이 순차적으로 발생하므로 클록이 발생한 이후 최대 출력 지연시간은 아래와 같다.

지연시간 = 플립플롭의 개수 × 플립플롭의 지연시간

위의 타이밍도에서는 111 → 000으로 변화할 때 이러한 최대 지연시간이 발생한다. 즉 클록이 발생한 위치에서 최종 출력이 발생할 때까지는 3개의 플립플롭 지연시간만큼 지연된다. 이것은 비동기식의 단점이기도 하다.

비동기식 2진다운 카운터의 동작은 업 카운터와 크게 다르지 않다. 차이점은 클록이 발생하면 카운터 값이 감소한다. 아래 그림은 3비트 비동기식 2진다운 카운터의 회로도이다.

[ 3비트 동기식 2진 다운 카운터의 회로도 ]

다운 카운터는 이전단의 보수 출력()이 다음단의 클록 입력단자로 인가된다. 카운터 값()은

7(111) → 6(110) → 5(101) → 4(100) → 3(011) → 2(010) → 1(001) → 0(000) → 7(111) → …

의 순서로 변한다. 즉 카운터 값이 감소한다.

10.1.2 비동기식 10진 업(up)/다운(down) 카운터

10진 카운터의 동작은 2진 카운터와는 달리, 계수 범위가 0~9이다. 따라서 10진 카운터의 비트 수는 최소한 4비트이다. 아래 그림은 4비트 비동기식 10진 업 카운터의 회로이다.

[4비트 비동기식 10진 카운터의 회로]

비동기식 10진 카운터는 2진 카운터와는 달리 회로가 약간 복잡하다. 는 클록마다 토글하고 은 입력 J값에 따라 토글하기도 하고 0이 되기도 한다. 의 클록마다 토글하며 는 좀더 복잡하여 입력 J와 클록 입력에 인가되는 값에 의해서 출력이 결정된다.

이러한 회로의 특성에 따라 타이밍도를 그려보면 카운터 값이 증가됨을 알 수 있다.

10.1.3 동기식 2진 업(up)/다운(down) 카운터

비동기식 카운터와는 달리 모든 동기식 카운터는 순서회로 설계방법에 의해서 설계가 가능하다. 왜냐하면 순서 회로의 플립플롭 블록의 클록이 모두 동일한 입력단자에 의해 연결되기 때문이다. 즉 하나의 입력 신호에 의해서 플립플롭의 출력이 동시에 발생한다.

[3비트 동기식 2진 업 카운터]

위 카운터에 대한 타이밍도는 아래와 같다.

[3비트 동기식 2진 업 카운터의 타이밍도]

카운터 출력은 클록의 상승 모서리가 발생하면 동시에 발생한다. 먼저 는 클록이 발생할 때 마다 토글한다. 값에 의해서 결정된다. 가 0이면 JK입력이 00이므로 이전 상태를 그대로 유지하고 1이면 11이므로 토글한다. 첫 번째 클록에서는 가 0이므로 은 0이 그대로 유지되고, 두 번째 클록에서는 가 1이므로 은 1로 토글된다. 마찬가지로 값에 의해서 결정된다. 따라서 의 동작도 의 동작과 동일하다.

동기식 카운터는 동일한 클록에 의해서 동시에 출력이 발생하므로 출력지연시간도 플립플롭 한 개의 지연시간과 같다. 비동기식 보다 출력이 보다 빨리 발생하는 장점이 있다.

10.1.4 링 카운터(ring count)

클록이 발생할 때마다 카운터 출력으로 1이 시프트(Shift, 이동)되는 카운터이다. 카운터 출력 중 오직 한 출력만 1이 발생하므로 카운터 값을 디코딩 하지 않아도 10진 변환이 가능하다. 아래 그림은 5단 링 카운터의 순차표 및 회로도이다.

[5단 링 카운터의 순차표 및 회로도]

초기 버튼을 이용하여 5개 플립플롭의 출력()를 10000으로 초기화 한다. 초기화하는 방법은 비동기 입력인 를 이용한다. 초기버튼에 0을 인가하면, 첫 단 플립플롭의 출력은 이므로 1이 된다. 나머지 플립플롭은 이므로 모두 0으로 초기화 된다. 이후에 초기버튼은 1로 하고 클록의 상승 모서리를 발생시키면 순차표와 같이 1이 한자리씩 이동한다. 링 카운터의 장점은 카운터의 출력을 디코딩하지 않아도 10진 변환이 가능하다는 점이다. 예를 들면 2진 업 카운터 값이 011인 경우 10진 변환을 하면 3일 때만 1이 나오도록 하면 된다.

즉 카운터 값이 000에서 클록이 3개 발생하면 카운터 값이 011이 되고 이때만 출력이 1이 나오도록 하는 것이다. 이 경우 일반 카운터를 사용하면 3비트 카운터 외에 AND게이트를 추가하여 10진수 3을 디코딩 해야 한다. 카운터 값의 모든 가능한 출력을 변환하려면 디코더 로직이 추가 되어야 한다.

링 카운터를 사용하면 이러한 디코딩 로직이 필요 없다. 그림에서 보는 바와 같이 클록이 발생하면 1이 이동하게 되므로 해당 10진 출력만 1이고 나머지는 모두 0이 된다. 따라서 출력 값만 보면 클록이 몇 개 발생했는지 알 수 있다. 가 1이면 클록이 발생하지 않은 경우이다. 즉 카운터 값 000을 디코딩 한 출력이다. 이 1이면 클록이 1개 발생한 경우이다. 즉 카운터 값이 001을 디코딩 한 출력이다. 이와 같이 링 카운터를 이용하면 일반 카운터 값의 10진 변환시에 매우 유용하다. 단점은 일반 카운터보다 플립플롭이 많이 사용된다. n비트 2진 카운터의 경우, 계수 범위가 0 ~ (2n-1)인 반면에 n비트 링 카운터의 계수 범위가 0 ~ (n-1)이다. 따라서 계수범위가 매우 작다. 동일한 계수 범위를 갖기 위해서는 링 카운터의 플립플롭 개수는 많이 필요하다.

10.1.5 존슨 카운터(Johnson count)

존슨 카운터는 시프트 카운터라고 말하며 이것은 특별한 순차를 만들어 낸다. 아래 그림은 4단 존슨 카운터의 순차표 및 회로도이다.

[4단 존슨 카운터의 순차표 및 회로도]

위 그림의 회로도를 보면 링 카운터의 회로도와 유사함을 알 수 있다. 링 카운터와 다른 점은 마지막 단 플립플롭의 출력이 첫 번째 단의 입력으로 인가된다. 존슨 카운터는 카운터 단의 크기만큼 1의 폭을 갖는 파형이 각단으로 이동한다.

[ 학습정리 ]

1. 일반적인 카운터의 종류는 세 가지 요소에 의해서 구분할 수 있다.

(

동기식 카운터

)(

2진 카운터

)(

업(UP) 카운터

)

비동기식

10진 카운터

다운(DOWN) 카운터

2. 비동기식 카운터를 리플(Ripple)카운터라고 하는데 이 말은 카운터 내의 플립플롭 출력이 동시에 발생되지 않고 순차적으로 발생한다고 해서 일컫는 말이다.

3. 순서 회로의 플립플롭 블록의 클록이 모두 동일한 입력단자에 의해 연결되기 때문에 비동기식 카운터와는 달리 모든 동기식 카운터는 순서회로 설계방법에 의해서 설계가 가능하다. 즉 하나의 입력 신호에 의해서 플립플롭의 출력이 동시에 발생한다.

4. 링 카운터는 클록이 발생할 때마다 카운터 출력으로 1이 시프트(Shift, 이동)되는 카운터이다.