Chapter 10. 카운터
비동기식 카운터의 동작을 이해하고 설계할 수 있다. 동기식 카운터의 동작을 이해하고 설계할 수 있다. 링 카운터와 존슨 카운터의 동작을 이해하고 응용할 수 있다. IC 카운터를 이용하여 다양한 형태의 카운터를 설계할 수 있다. 카운터의 주요 응용으로서 디지털 시계와 주파수 카운터의 동작 원리를 이해할 수 있다. 01. 비동기식 카운터 02. 동기식 카운터 03. 기타 카운터 04. IC 카운터 05. 카운터의 응용
01 비동기식 카운터 비동기식 카운터는 첫 번째 플립플롭의 CP 입력에만 클록펄스가 입력되고, 각 플 립플롭의 출력을 다음 플립플롭의 CP 입력으로 사용한다. 플립플롭의 출력 전이가 다음 플립플롭을 트리거시킨다. 비동기식 카운터는 리플(ripple) 카운터라고도 부른다. 카운터에서 구별되는 상태의 수가 m일 때 modulo- m(간단히 mod- m; m 진)의 카 운터이다. 비동기식 카운터는 JK 플립플롭 또는 T 플립플롭을 사용하여 구성한다. 카운터는 상향 카운터(up counter)와 하향 카운터(down counter)가 있다.
01 비동기식 카운터 1. 비동기식 상향 카운터 4비트 2진 상향 카운터 클록펄스 QD QC QB QA 10진수 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <상태표>
01 비동기식 카운터 각 플립플롭은 클록펄스의 하강에지에서 변화한다. QA에서는 입력 클록 주파수의 1/2, QB에서는 1/4, QC에서는 1/8, QD에서는 1/16의 주파수를 갖는 구형파가 얻어진다. <논리 회로도> <타이밍도>
01 비동기식 카운터 비동기식 계수기의 동작속도 <상태도> fmax : 최대 클록 주파수, n : 플립플롭 수, tpd : 플립플롭 당 전파지연시간 예를 들어, tpd =20ns, 플립플롭의 수가 4개인 4비트 2진 비동기식 카운터를 설계할 경우 클록 주파수는 12.5[MHz] 이하이어야 한다. <상태도>
01 비동기식 카운터 2. 비동기식 하향 카운터 4비트 2진 하향 카운터 클록펄스 QD QC QB QA 10진수 15 2 14 3 13 4 12 5 11 6 10 7 9 8 16 <상태표>
01 비동기식 카운터 <논리 회로도> <타이밍도>
01 비동기식 카운터 <상태도>
01 비동기식 카운터 3. 상승에지에서 동작하는 비동기식 카운터 4비트 2진 하향 카운터(상승에지 트리거) <논리 회로도> <타이밍도>
01 비동기식 카운터 4비트 2진 상향 카운터(상승에지 트리거) <논리 회로도> <타이밍도>
<비동기식 4비트 상향/하향 카운터> 01 비동기식 카운터 4. 비동기식 상향/하향 카운터 S=0으로 하면 MUX의 입력 D0와 출력 F가 연결 : 상향 카운터 S=1로 하면 MUX의 입력 D1 과 출력 F가 연결 : 하향 카운터 <비동기식 4비트 상향/하향 카운터>
01 비동기식 카운터 5. 비동기식 modulo-m 카운터 비동기식 10진 카운터(BCD 카운터, decade counter) 0에서 9까지의 카운트를 반복 BCD 카운터를 구성하려면 4개의 플립플롭이 필요 16개의 상태 중에서 10개의 상태만을 사용 클록펄스 QD QC QB QA 10진수 1 2 3 4 5 6 7 8 9 10 <상태표>
glitch는 카운터의 오동작 원인이 될 수 있다. 01 비동기식 카운터 카운터 출력이 (목표하는 최고 카운트)+1에 도달한 순간을 포착하여 모든 플 립플롭을 0으로 Clear QB와 QD 출력을 NAND 게이트로 결합하고 그 출력을 모든 플립플롭이 clear 입력에 연결 glitch는 카운터의 오동작 원인이 될 수 있다.
01 비동기식 카운터 4자리 10진 카운터의 블록도 4자리 10진수인 0000~9999까지 카운트할 수 있는 카운터
01 비동기식 카운터 6. 프리세트 카운터 0보다 큰 수로부터 카운터를 시작할 수 있다. LOAD=0 : 정상적인 상향 카운터로 동작 LOAD=1 : 프리세트 입력으로 초기화(PD PC PB PA=0110 이면, QD QC QB QA=0110)
[프리세트 카운터의 modulus] = [최대 modulus 2n ] - [프리세트된 수] 01 비동기식 카운터 QD QC QB QA=0000일 때에 한해서 NOR 게이트의 출력 즉, LOAD=1이 되고, 기타의 경우에는 출력이 0이 된다. 따라서 PD PC PB PA=0110으로 설정하고 카운터가 계수를 하여 QD QC QB QA=0000 이 되는 순간 카운터의 출력은 0110으로 프리세트된다. Modulus 설정방법 [프리세트 카운터의 modulus] = [최대 modulus 2n ] - [프리세트된 수] n : 카운터에서 플립플롭의 수
02 동기식 카운터 플립플롭에서의 전파지연 tPD인 경우 n개의 플립플롭을 종속 연결한 비동기식 카운터의 전체 전파지연은 ntPD가 된다. 이러한 지연 때문에 입력 클록펄스를 모든 플립플롭에 공통으로 인가하는 동 기식 카운터를 사용 1. 2비트 동기식 2진 카운터 현재 상태 다음 상태 플립플롭 입력 QB QA JB KB JA KA 1 × <상태도> <상태 여기표>
<2비트 동기식 2진 카운터 회로 및 타이밍도> 02 동기식 카운터 <카르노 맵> <2비트 동기식 2진 카운터 회로 및 타이밍도>
<3비트 동기식 2진 카운터의 상태도> 02 동기식 카운터 2. 3비트 동기식 2진 카운터 JK 플립플롭을 사용하여 설계 <3비트 동기식 2진 카운터의 상태도>
02 동기식 카운터 현재 상태 다음 상태 플립플롭 입력 QC QB QA JC KC JB KB JA KA 1 ×
<3비트 동기식 2진 카운터 회로 및 타이밍도> 02 동기식 카운터 <3비트 동기식 2진 카운터 회로 및 타이밍도>
<4비트 동기식 2진 카운터의 상태도> 02 동기식 카운터 3. 4비트 동기식 2진 카운터 JK 플립플롭을 사용하여 설계 <4비트 동기식 2진 카운터의 상태도>
02 동기식 카운터 현재 상태 다음 상태 플립플롭 입력 QD QC QB QA JD KD JC KC JB KB JA KA 1 ×
02 동기식 카운터
02 동기식 카운터
02 동기식 카운터 <논리 회로도> <타이밍도>
02 동기식 카운터 <4비트 동기식 2진 카운터의 상태표>
02 동기식 카운터 n비트 동기식 2진 카운터 상태표로부터 플립플롭의 입력함수를 추정할 수 있다. 하위의 모든 출력이 1일 때, 각 출력은 0은 1로, 1은 0으로 변화한다. 토글동작이 필요할 때, J와 K 입력은 모두 1이 되어야 한다. 따라서 플립플롭의 입력 함수는 간단하게 하위비트의 논리적 AND이다.
02 동기식 카운터 4. 동기식 BCD 카운터 동기식 BCD 카운터의 상태도
02 동기식 카운터 동기식 BCD 카운터의 상태 여기표 자리 올림수 출력 C는 BCD 카운터의 계수가 9(1001)가 되었을 때 논리 1이 되 도록 한다. 현재 상태 다음 상태 플립플롭 입력 출력 QD QC QB QA JD KD JC KC JB KB JA KA C 1 ×
02 동기식 카운터 카르노 맵
02 동기식 카운터
02 동기식 카운터 동기식 BCD 카운터 회로도
02 동기식 카운터 5. 3비트 동기식 2진 상향/하향 카운터 3비트 동기식 상향/하향 카운터의 상태도 외부 입력 x=0 : 증가 카운터 외부 입력 x=1 : 감소 카운터 3비트 동기식 상향/하향 카운터의 상태도
02 동기식 카운터 3비트 동기식 상향/하향 카운터의 상태 여기표 현재 상태 입력 다음 상태 플립플롭 입력 QCQBQA x JC KC JB KB JA KA 0 0 0 0 0 1 × 1 1 1 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0
02 동기식 카운터 카르노 맵
02 동기식 카운터 3비트 동기식 2진 상향/하향 카운터의 회로도
02 동기식 카운터 6. 주파수 분할 <16진 카운터 블록도> <(mn)분주회로 개념도 >
03 기타 카운터 1. 링 카운터 임의의 시간에 한 개의 플립플롭만 논리 1이 되고 나머지 플립플롭은 논리 0이 되는 카운터 논리 1은 입력펄스에 따라 그 위치가 한쪽 방향으로 순환 상태도
03 기타 카운터 상태 여기표 현재 상태 다음 상태 플립플롭 입력 QA QB QC QD DA DB DC DD 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 1
03 기타 카운터 카르노 맵
03 기타 카운터 처음에 INIT 단자를 논리 0으로 하면 첫 번째 플립플롭만 출력이 0이 되고, 나머 지 플립플롭의 출력은 0이 된다. INIT 단자를 다시 논리 1로 하면 링 카운터의 최 초의 출력은 QA QB QC QD =1000이다. 이후부터 클록펄스가 입력될 때마다 클록펄스의 상승에지에서 오른쪽으로 한 자 리씩 이동을 하며, QD 의 출력은 다시 DA 로 입력된다.
03 기타 카운터 링 카운터 응용: 커피 자판기(Vending Machine) 동작순서 [단계 1] 동전이 들어오는 것을 기다린다. [단계 2] 동전을 확인하고 적절한 잔돈을 돌려준다. [단계 3] 선택스위치(블랙, 크림, 및 설탕)을 읽어라. [단계 4] 공급창(커피를 빼내는 곳)에 종이컵을 떨어뜨린다. [단계 5] 종이컵에 인스턴트 커피를 붓는다. [단계 6] 선택된([단계 3])대로 크림이나(과) 설탕을 추가하라. [단계 7] 컵에 뜨거운 물을 붓는다. [단계 8] 물, 커피, 크림 및 설탕이 적절히 공급되었는지를 검사한다. 만약 적으면 적당한 메시지를 보이게 한다. [단계 9] [단계 1]로 간다.
<링 카운터를 응용한 커피자판기 동작도> 03 기타 카운터 처음에 𝐶𝐿𝑅 를 논리 0으로 하여 QA=1이 되고 QB=QC=…QH=0이 된다. 이제 𝐶𝐿𝑅 를 논리 1로 한다. <링 카운터를 응용한 커피자판기 동작도>
03 기타 카운터 2. 존슨 카운터 n개의 플립플롭으로 구성된 링 카운터는 n 가지의 서로 다른 상태를 출력
03 기타 카운터 <4비트 존슨 카운터의 상태표 > 존슨 카운터의 단점은 사용되지 않는 초기상태가 주어지면 사용되지 않는 계 수의 순서만이 계속하여 반복하게 된다. 이 단점은 회로에서 세 번째 플립플롭 의 입력을 다음 불 함수로 수정하면 해결할 수 있다. <4비트 존슨 카운터의 상태표 > 클록펄스 QA QB QC QD 10진수 1 8 2 12 3 14 4 15 5 7 6
04 IC 카운터 1. IC 비동기식 카운터 7493(4bit binary counter) 2진 카운터와 8진 카운터가 독립적으로 내장 2진 카운터 : 클록 입력은 Input A이고 출력은 QA 8진 카운터 : 클록 입력은 Input B이고 출력은 QDQCQB 16진 카운터 : 클록 입력을 Input A에 넣고, QA를 Input B에 연결하고 출력은 QDQCQBQA 에서 얻는다. <7493 핀 배치도>
04 IC 카운터 7492(divide-by-twelve counter) 7490(decade counter) 2진 카운터(mod-2)와 6진 카운터(mod-6)가 독립적으로 내장 사용법은 7493에 준한다. 7490(decade counter) 2진 카운터(mod-2)와 5진 카운터(mod-6)가 독립적으로 내장 <7492 핀 배치도> <7490 핀 배치도>
04 IC 카운터 2. IC 동기식 카운터 74163(synchronous presettable mod-16 counter with asynchronous clear) 74163은 4비트 동기식 2진 카운터 4개의 D 플립플롭으로 구성되며, 4 비트의 병렬입력과 병렬출력이 있다. CLEAR LOAD ENP, ENT 기 능 1 × 플립플롭이 clear된다. 병렬입력이 수행된다. 불변상태가 된다. 카운터가 동작한다. <74163 핀 배치도> <74163 카운터의 동작표>
04 IC 카운터 카운터가 마지막 상태인 15(11112)가 되면 RCO는 논리 1이 된다. ENP와 ENT 입력 및 RCO 출력은 더 높은 계수순서를 갖는 카운터를 설계할 때 사용 <8비트 카운터>
04 IC 카운터 mod-m 카운터로 사용 가능 <5에서 15까지 카운트하는 mod-11 카운터> <0에서 12까지 카운트하는 mod-13 카운터>
04 IC 카운터 74162(synchronous presettable BCD counter with asynchronous clear) 핀 기능, 동작, 사용법 등은 74163과 같다. 74163은 4비트 동기식 16진 카운터이지만, 74162는 4비트 10진 동기식 카운터 74161(synchronous presettable mod-16 counter with asynchronous clear) 핀 기능, 동작, 사용법 등이 74163과 같은 presettable 16진 동기식 상향 카운 터이다. 또한 비동기적인 클리어 입력을 갖는다. 74160(synchronous presettable BCD counter with asynchronous clear) 74160은 74161과 동일한 입력과 출력을 가지며, 74161은 4비트 동기식 16진 카운터이지만, 74160은 4비트 10진 동기식 카운터이다.
04 IC 카운터 74169(Synchronous presettable up/down mod-16 counter) 16진 상향/하향 동기식 카운터이다. 제어입력 U/ D 를 논리 1로 하면 상향 카운터, 0으로 하면 하향 카운터로 동작 프리세트 데이터 입력 DCBA는 LOAD 를 논리 0으로 할 때 클록펄스의 상승 에지 에서 출력을 프리세트시킨다. 카운트가 일어나려면 ENP와 ENT가 둘 다 논리 0으 로 되어야 한다. 출력 QD, QC, QB, QA가 상향 모드 시에는 1111, 하향 모드 시에는 0000에 도달하면 RCO(ripple carry output)가 논리 0이 된다. <74169 핀 배치도>
04 IC 카운터 74168(synchronous presettable up/down BCD counter) 10진의 단일 modulus를 가지며 동작은 74169에 준한다. 74190(presettable synchronous up/down BCD counter) 핀 기능, 동작, 사용법 등이 74163과 같은 presettable 16진 동기식 상향 카운 터이다. 또한 비동기적인 클리어 입력을 갖는다. LOAD CTEN DN/ UP 기 능 1 × 증가 카운터로 동작한다. 감소 카운터로 동작한다. 병렬입력이 수행된다. 불변상태가 된다. <74190의 동작표> <74190 핀 배치도>
04 IC 카운터 74191(presettable synchronous up/down mod-16 counter) 74191은 4비트 16진 상향/하향 동기식 카운터로서 핀 배치도는 74190과 같다. CTEN =0이면 계수가능 상태이고, 1이면 계수정지 상태가 된다. D/ U =0이면 상향 카운터로 동작하고, 1이면 하향 카운터로 동작한다. 이 외의 모든 동작은 74190에 준한다.
05 카운터의 응용 1. 디지털 시계 발진회로 디지털 시계에 안정적인 클록(clock)을 제공할 목적으로 설계되는 회로 첫 번째 방법 : 가정용 220[V] 전원의 안정된 60Hz의 주파수를 이용 두 번째 방법 : CR 발진회로를 이용하는 방법 세 번째 방법 : 수정 발진자(crystal oscillator)를 사용하는 방법 <디지털 시계의 블록 다이어그램>
05 카운터의 응용 분주회로 발진회로로부터 얻어진 구형파를 이용하여 디지털 시계의 기본 단위인 1초를 나타내기 위한 1Hz 주파수를 얻는 회로 <CR 발진회로> <수정 발진자를 사용한 회로> <60Hz 정현파에서 1Hz 구형파를 얻는 회로>
05 카운터의 응용 <4020을 이용하여 1Hz 구형파를 얻는 회로> <카운터 회로의 블록도>
05 카운터의 응용 <분, 초 단위의 카운터 디코더 및 드라이브 회로> <시 단위의 카운터, 디코더 및 드라이브 회로>
05 카운터의 응용 <디지털 시계의 전체 회로도>
05 카운터의 응용 2. 주파수 카운터 임의의 주기적인 파형의 주파수(frequency)를 측정하는 디지털 기기 측정 주파수는 t=1초이면 표시된 수치가 곧 주파수가 된다. t=10초이면 소수점을 한 자리 높인다. t=0.1초이면 소수점을 한 자리 낮춘다. <주파수 카운터의 블록도>
05 카운터의 응용 Reset용 파형정형 Gate 신호 <주파수 카운터 회로도>
05 카운터의 응용 <주파수 카운터의 타이밍도>