본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

카운터(counter, 계수기)는 논리 회로에서 들어오는 클록 펄스의 수를 세어 그 값을 플립플롭들의 상태로 기억하는 순차 논리 회로로, 주파수를 일정한 비율로 낮추는 분주기로도 쓴다.

플립플롭 n 개로 0 부터 2n - 1 까지 2n 가지 상태를 셀 수 있다. 상태가 바뀌는 순서와 플립플롭에 클록을 주는 방법에 따라 나뉜다. 지금까지 센 값을 기억해야 하므로 순차 논리 회로다. 이진수를 하나씩 올리는 동작 자체는 이진 카운터 문서에도 있다.

비동기 카운터와 동기 카운터

편집 원본 편집
구분 비동기 카운터(리플 카운터) 동기 카운터
클록 첫 단만 외부 클록을 받고, 뒤 단은 앞 단의 출력을 클록으로 받는다 모든 플립플롭이 같은 클록을 받는다
회로 토글 상태(J = K = 1)의 JK 플립플롭이나 T 플립플롭을 줄줄이 잇기만 하면 된다 각 단의 J·K(T) 입력을 앞 단 출력의 AND 로 정하는 게이트가 필요하다
속도 출력 변화가 단마다 전파 지연만큼 늦게 번져(물결처럼) 단이 많을수록 느리고, 잠깐 틀린 값(글리치)이 보인다 모든 단이 한꺼번에 바뀌어 빠르다

토글 플립플롭 한 단은 클록 주파수를 1/2 로 낮춘다. 비동기 카운터의 각 단 출력은 앞 단의 절반 주파수다.

fout=fin2n (n 은 단 수)
  • 예: J·K 를 모두 +5V(논리 1)에 묶은 JK 플립플롭 두 개를 잇고 첫 단 클록에 2kHz 구형파를 넣으면, 첫 단 출력은 1kHz, 둘째 단 출력은 500Hz 구형파다
  • 출력의 듀티비는 50% 다. 에지마다 뒤집히기 때문이다
  • 1/3, 1/10 처럼 2 의 거듭제곱이 아닌 분주는 아래의 mod-N 카운터로 만든다

상향·하향 카운터와 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