9. 카운터 9-1 비동기 카운터 9-2 동기 카운터 9-3 업/다운 동기 카운터 9-4 동기카운터 설계 9. 카운터 9-1 비동기 카운터 9-2 동기 카운터 9-3 업/다운 동기 카운터 9-4 동기카운터 설계 9-5 캐스케이드 카운터 9-6 카운터 디코딩 9-7 카운터 응용 9-8 고장진단 9-9 의존표시 논리기호 9-10 프로그램 논리 디지털 시스템 응용
9-1 비동기 카운터 비동기 2진 카운터 (Asynchronous Binary Counter) 9-1 비동기 카운터 비동기 2진 카운터 (Asynchronous Binary Counter) 2진 카운터의 최대 모듈러스(modulus) : 2n 단, n은 카운터에 있는 플립-플롭 수
비동기 카운터의 전파지연 전파지연때문에 FF들이 동시에 트리거되지 않음(비동기) 클럭 주파수를 너무 크게 하면 문제가 생김 최대 누적 지연시간 < 클럭 주기
<예제 9-1> 4-비트 비동기 2진 카운터가 있다 <예제 9-1> 4-비트 비동기 2진 카운터가 있다. 각 플립-플롭은 네거티브-에지에서 트리거되며 10ns의 전파 지연을 갖고 있다. 이 카운터가 제대로 작동하기 위한 최대 클럭 주파수를 구하라. ≪해≫ tp(tot)= 4X10ns = 40ns fmax = 1/40ns = 25MHz
비동기 십진 카운터 2n개 이하의 상태를 갖는 카운터 : truncated sequence 모듈러스-10 카운터(‘1010’이 되는 순간 클리어 시킴)
부분 디코딩(partial decoding) : Q1과 Q3만이 NAND 게이트 입력에 연결, 10을 디코드 <예제 9-2> 0000에서 1011까지의 2진 시퀀스를 갖는 모듈러스-12 비동기 카운터를 구현하라. ≪해≫
IC 예 : 74LS93A 4-비트 2진 카운터 하나의 플립-플롭과 3-비트 비동기 카운터로 구성
<예제 9-3> 74LS93A를 사용하여 모듈러스-12 카운터를 구현하라. ≪해≫
9-2 동기 카운터 2비트 동기 2진 카운터 플립플롭들이 동시에 트리거됨 00 01 11 10
3비트 동기 2진 카운터 플립플롭들이 동시에 트리거됨 clk Q2 Q1 Q0 1 2 3 4 5 6 7 8
4비트 동기 2진 카운터
IC 예 : 74LS163A 동기 4-비트 2진 카운터 LOAD에 LOW가 입력되면, 다음 클럭 펄스에서 데이터를 입력 두 개의 ENABLE 입력 ENP와 ENT가 모두 HIGH일 때만 카운터가 동작 카운터가 terminal count인 15 (TC=15)에 도달하면 리플 클럭 출력 (RCO)이 HIGH : ENABLE 입력과 함께 카운터를 확장하는데 사용
동기 10진 카운터 (Synchronous Decade Counters) 클럭펄스 Q3 Q2 Q1 Q0 Initially 1 2 3 4 5 6 7 8 9 10 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 J0 = K0 = 1 J1 = K1 = J2 = K2 = Q0 Q1 J3 = K3 = Q0 Q1 Q2 + Q0 Q3
J0 = K0 = 1 J1 = K1 = J2 = K2 = Q0 Q1 J3 = K3 = Q0 Q1 Q2 + Q0 Q3
IC 예 : 74LS160A 동기 BCD 디케이드 카운터
9-3 업/다운 동기 카운터 양방향 카운터 클럭펄스 Q3 Q2 Q1 Q0 Initially 1 2 3 4 5 6 7 9-3 업/다운 동기 카운터 양방향 카운터 클럭펄스 Q3 Q2 Q1 Q0 Initially 1 2 3 4 5 6 7 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 J0 = K0 = 1 J1 = K1 = Q0 UP+ Q0 DOWN J2 = K2 = Q0 Q1 UP + Q0 Q1 DOWN
74HC190 업/다운 디케이드 카운터 MAX/MIN 출력은 UP-모드에서 최종 카운트인 9 (1001)에 도달할 때나, DOWN-모드에서 최종 카운트인 0(0000)에 도달할 때 HIGH 클럭 출력 및 카운트 ENABLE 입력 과 함께 카운터를 직렬로 연결할 때 사용
9-4 동기카운터 설계 순차회로의 일반적인 모델
Analysis Design 동기 카운터의 설계 방법 상태도(State Diagram) 상태 표(Next-State Table) 작성 Analysis 상태전이표(FF Transition Table) 작성 Design 카르노-맵 (Karnaugh Maps) 작성 상태방정식(state Equation) 카운터 구현 (Counter Implementation)
1. 상태 도( State Diagram) 0/0 1/0 1/0 0/1 0/1 0/0 1/0 1/0 00 01 11 10 00
2. 상태 표( State Table ) 현재상태 Q2 Q1 Q0 다음상태 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 상태 도( State Diagram)
0 1 1 X 3. 플립-플롭 상태 전이표 (설명) J K 0 0 0 1 1 0 1 1 0 X 1 X X 1 출력의 전이 Qn Qn+1 플립플롭 입력 J K 0 0 0 1 1 0 1 1 0 X 1 X X 1 X 0 J K Q 유지 1 반전 (설명) 0 1 J K 상태변화 1 출력결과 1 X
3. 플립-플롭 상태 전이표 S R 0 0 0 1 1 0 1 1 0 X 1 0 0 1 X 0 D 0 0 출력의 전이 Qn Qn+1 플립플롭 입력 S R 0 0 0 1 1 0 1 1 0 X 1 0 0 1 X 0 출력의 전이 Qn Qn+1 플립플롭 입력 D 0 0 0 1 1 0 1 1 1 SR 플립플롭 D 플립플롭
4. 상태 전이표 작성 Q Qn+1 J K 0 0 0 1 1 0 1 1 0 X 1 X X 1 X 0 현재상태 Q2 Q1 Q0 다음상태 0 0 0 0 0 1 0 1 1 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 1 X
5. 카르노 맵 작성
6. 논리식 및 회로도 구현 입력 논리식 카운터 구현
Example 다음과 같은 상태도를 갖는 동기식 카운터를 설계하라
1. 상태표 2. 전이표 Jc Kc JB KB JA KA 000 001 X 1 010 011 100 101 110 111 x 1. 상태표 2. 전이표 현재 다음 CBA Jc Kc JB KB JA KA 000 001 X 1 010 011 100 101 110 111 x
3. 카르노 맵 JC=BA JB=A JA=1 KC=BA KB=A KA=1 1 X 1 1 1 X X 1 X X 1 X 1 1 1 00 01 11 10 C 00 01 11 10 00 01 11 10 1 X 1 X 1 X 1 1 1 JC=BA JB=A JA=1 BA BA BA C 00 01 11 10 C C 00 01 11 10 00 01 11 10 X 1 X 1 X 1 1 1 1 KC=BA KB=A KA=1
Example: 9-5 J-K 플립-플롭을 사용하여 그림의 상태 선도와 같은 불규칙한 2진 계수 시퀀스를 가진 카운터를 설계하라. <응용 1> S-R 플립-플롭을 사용하여 설계하라. <응용 2> D 플립-플롭을 사용하여 설계하라.
(solution) J1 = 1 J2 = Q1 J0 = 1 K2 = Q1 K1 = 1 K0 = Q’2 1 X X 1 X 1 X 현재상태 다음상태 Q2 Q1 Q0 1 J2 K2 J1 K1 J0 K0 X 1 Q1,Q0 Q1,Q0 Q1,Q0 Q2 00 01 11 10 Q2 00 01 11 10 Q2 00 01 11 10 X 1 X 1 X 1 1 1 1 J1 = 1 J2 = Q1 J0 = 1 Q1,Q0 Q1,Q0 Q1,Q0 Q2 00 01 11 10 Q2 00 01 11 10 Q2 00 01 11 10 X 1 X 1 X 1 1 1 1 K2 = Q1 K1 = 1 K0 = Q’2
Example others Don’t care 동기식 홀수 카운터 2 4 6 1 8 3 9 5 7 0000 0010 0100 0000 2 0010 4 6 0100 0110 1 1000 0001 8 3 0011 9 1001 others 5 0101 0111 7 Don’t care
2. 상태표와 전이표 현상태 다음 DCBA JD KD Jc Kc JB KB JA KA 0000 0001 X 1 0011 2. 상태표와 전이표 현상태 다음 DCBA JD KD Jc Kc JB KB JA KA 0000 0001 X 1 0011 0010 0101 0100 0111 0110 1001 1000
JD KD JC KC 3. 카르노맵 작성 = B+A’ 1 CBA 1 A’ BA B 1 X X 1 X 1 X BA BA DC 00 01 11 10 DC 00 01 11 10 00 01 11 10 1 X 00 01 11 10 X 1 CBA 1 JD KD A’ BA BA DC 00 01 11 10 DC 00 01 11 10 1 X BA 00 01 11 10 00 01 11 10 X 1 B JC KC = B+A’
JB KB JA KA 3. 카르노맵 작성 1 D’A 1 X A’ 1 X 1 X 1 X BA DC BA 00 01 11 10 00 01 11 10 DC 00 01 11 10 00 01 11 10 1 X D’A 00 01 11 10 X 1 1 JB KB A’ BA BA DC 00 01 11 10 DC 00 01 11 10 00 01 11 10 1 X 1 00 01 11 10 X JA KA
4. 회로도 작성
<예제 9-6> 그레이 코드 시퀀스를 갖는 동기 3-비트 업-다운 카운터를 구성하라 <예제 9-6> 그레이 코드 시퀀스를 갖는 동기 3-비트 업-다운 카운터를 구성하라. 카운터는 UP/DOWN 제어 입력 Y가 1일 때는 증가 방향 (UP-COUNT)으로, 0일 때는 감소 방향 (DOWN-COUNT)으로 진행한다.
9-5 캐스케이드 카운터 캐스케이드 카운터 : 카운터의 마지막 플립-플롭의 출력을 그 다음 카운터의 입력에 연결하여 구동 9-5 캐스케이드 카운터 캐스케이드 카운터 : 카운터의 마지막 플립-플롭의 출력을 그 다음 카운터의 입력에 연결하여 구동 비동기 캐스케이드 카운터 예 -> 전체 모듈러스 : 4×8 = 32
동기 캐스케이드 카운터 예: 주파수 분주기 -> 전체 모듈러스 : 10 × 10 × 10 = 1000
<예제 9-8> 74LS160 카운터를 사용하여 1MHz 클럭으로부터 10kHz의 파형을 얻고자 한다 ≪해≫
Truncated Sequence를 가진 캐스케이드 카운터 Full modulus cascading & truncated sequence 74LS161A 4-비트 2진 카운터를 이용한 40,000-분주 카운터 - 65,536 - 40,000 = 25,536 = 63C0(16진수)
9-6 카운터 디코딩 <예제 9-9> 3-비트 동기 카운터의 2진 상태 2와 7의 디코딩을 구현하라. 또한, 디코딩 게이트의 전체 카운터 타이밍 선도와 출력 파형을 그려라. ≪해≫
디코딩 글리치 (Decoding Glitch)
글리치를 제거하는 방법 : 글리치가 사라진 후 디코딩된 출력을 ENABLE -> strobing
9-7 카운터 응용 디지털 시계
60 분주 카운터 Hour 카운터
자동차 주차 제어
Parallel-to-Serial 데이터 변환
9-8 고장진단 <예제 9-10> 다음 그림과 같이 절단 시퀀스를 갖는 카운터의 주파수를 측정하고 있다. 이 카운터는 정상적으로 동작하고 있는가? 정상이 아니라면 문제점이 무엇인가?
<예제 9-11> 카운터의 출력이 그림과 같이 관찰되었다. 이 카운터에 문제가 있는지 분석해보라.
9-9 의존표시 논리기호 새로운 ANSI/IEEE 표준의 기본
9-10 프로그램 논리 GAL22V10의 모드 구성 조합 모드 (s1s0=10 or 11)
레지스터 모드(s1s0=00 or 01)
디지털 시스템 응용 교통 신호등 제어시스템의 순차논리 설계
연습문제 9-1
연습문제 9-2
연습문제 9-14
연습문제 9-16 00 10 11 01
연습문제 9-18 9 5 1 10~15 : Don’t Care 4 8 6 2 3 7
연습문제 9-18 (계속_)
연습문제 9-20
End of Chapter 9