카운터 (논리 회로)
IT위키
더 많은 작업
카운터(counter, 계수기)는 논리 회로에서 들어오는 클록 펄스의 수를 세어 그 값을 플립플롭들의 상태로 기억하는 순차 논리 회로로, 주파수를 일정한 비율로 낮추는 분주기로도 쓴다.
| 구분 | 비동기 카운터(리플 카운터) | 동기 카운터 |
|---|---|---|
| 클록 | 첫 단만 외부 클록을 받고, 뒤 단은 앞 단의 출력을 클록으로 받는다 | 모든 플립플롭이 같은 클록을 받는다 |
| 회로 | 토글 상태(J = K = 1)의 JK 플립플롭이나 T 플립플롭을 줄줄이 잇기만 하면 된다 | 각 단의 J·K(T) 입력을 앞 단 출력의 AND 로 정하는 게이트가 필요하다 |
| 속도 | 출력 변화가 단마다 전파 지연만큼 늦게 번져(물결처럼) 단이 많을수록 느리고, 잠깐 틀린 값(글리치)이 보인다 | 모든 단이 한꺼번에 바뀌어 빠르다 |
토글 플립플롭 한 단은 클록 주파수를 1/2 로 낮춘다. 비동기 카운터의 각 단 출력은 앞 단의 절반 주파수다.
- (n 은 단 수)
- 예: J·K 를 모두 +5V(논리 1)에 묶은 JK 플립플롭 두 개를 잇고 첫 단 클록에 2kHz 구형파를 넣으면, 첫 단 출력은 1kHz, 둘째 단 출력은 500Hz 구형파다
- 출력의 듀티비는 50% 다. 에지마다 뒤집히기 때문이다
- 1/3, 1/10 처럼 2 의 거듭제곱이 아닌 분주는 아래의 mod-N 카운터로 만든다
- 상향(up) 카운터는 0, 1, 2, … 로, 하향(down) 카운터는 거꾸로 센다. 비동기 카운터에서 뒤 단 클록을 Q 대신 Q' 에서 따면 방향이 바뀐다
- mod-N 카운터(N 진 카운터)는 0 부터 N - 1 까지 N 개의 상태를 되풀이한다. 2n ≥ N 인 n 단을 쓰고, 값이 N 이 되는 순간 리셋한다. 10진 카운터(BCD 카운터)는 4 단으로 0~9 를 센다
- 필요한 플립플롭 수는 세야 할 상태 수 N 에 대해 2n ≥ N 인 가장 작은 n 이다. 예: 0 부터 8 까지 세려면 상태가 9 개이므로 23 = 8 로는 모자라고 4 개(24 = 16)가 필요하다. 가장 큰 수 8 을 그대로 플립플롭 수로 보거나(8 개) 상태 수(9 개)로 보면 틀린다
- 상향·하향을 함께 세는 업-다운 카운터도 상태 수는 같으므로 플립플롭 수가 같다. 방향을 바꾸는 제어 입력과 게이트만 늘어난다
시프트 레지스터의 마지막 출력을 첫 입력으로 되돌려 만든다.
| 카운터 | 되먹임 | n 단일 때 상태 수 |
|---|---|---|
| 링 카운터 | 마지막 단 Q 를 첫 단으로 | n |
| 존슨 카운터(트위스트 링) | 마지막 단 Q' 를 첫 단으로 | 2n |