10장카운터
비동기 ( 리플 ) 카운터 리플카운터의회로연결및동작 : 모든 JK(T) 입력은 1로연결하여토글모드로동작 클럭펄스는 LSB F/F 에만인가 -클럭펄스의 NGT/PGT 에서출력변화 나머지 F/F의 CLK는그전단의 LSB의출력연결 - 그전단출력의 NGT/PGT에서출력변화 모든 clear 입력은동시에연결 각 F/F 사이에는시간지연발생 MOD : N 개의 F/F 사용시최대 2 N -1 까지계수, mod-2 N 카운터 2 비트비동기 2 진카운터 2 개의 J-K 또는 T F/F 을사용하여구성 상태 00-01-10-11-0001 10 11 으로동작되는카운터 1 CLK A J J B CLK A 0 1 T 1 T 2 T 3 T 4 K K 0 0 1 1 FFA FFB B 0 1 2
3 비트비동기카운터 000부터 111까지계수 : Mod-8 카운터 증가카운터 1 A B J J J C CLK K K K FFA FFB FFC T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 CLK A B C 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1 감소카운터 : 반전출력사용 111 110 101 100 011 010 001 000 111 -... 1 J A J B J C CLK K K K FFA FFB FFC 3
up counter : 0 부터증가하는순서로계수 비동기식감소카운터 down counter : 최대값으로부터감소하는순서의카운터 3 비트 mod-8 다운카운터동작순서 AF/F(LSB) 은클럭펄스마다반전 ( 토글 ) B F/F은 A가 0에서 1로될때토글 C는 B가 0에서 1로될때토글 리플다운카운터의 A 입력클럭이 NGT로동작한다면 -> F/F의출력을인버터로반전하여야다운카운터로동작 F/F 의반전출력을다음단의 CLK 에연결 CBA 111 110 101 100 Recycles 011 010 001 000 4
Mod-8 비동기증가 / 감소카운터 카운터 control 입력 Count-up A B C 1 J J J CLOCK K K K Count-down 주파수분주한개의 F/F는 CLK 입력에대해입력주파수의 1/2로주파수를분주클럭주파수가 8 khz이면, A 의파형은 4 khz, 출력 B 는 2 khz, 출력 C는 1 khz이다. 입력클럭을 1/8로분주즉, 카운터의마지막출력주파수는입력주파수를 MOD수에의해분주 예 : 1 Hz출력을내는 MOD-60 카운터는몇개의 F/F 이필요? 2 6 = 64, 최소 6 개의 F/F 필요 5
MOD 수 2 N 인카운터 2 N 보다작은 MOD 수로동작하는카운터 0에서 2 N 이하의 MOD 수까지연속적인값으로계수하는회로예 : 3 비트리플카운터를 MOD6 카운터로설계 모든 F/F는리플카운터로연결 NAND 게이트의출력을모든 F/F의클리어입력에연결 NAND 입력에 B 및 C F/F의출력연결 CBA = 000 001 010 011 100 101 110 000 카운터를클리어시키기위한임시상태 * 110 상태 : NAND 출력이 0가되어 F/F의비동기클리어가바로동작하여모든 F/F 는 0가된다. 이때 110의임시상태는잠시나타났다가바로 000가되어카운터는 Mod-6로동작 6
카운터에서의 Glitch 출력 글리치가발생하는출력 : 출력 B 는 101-110-000110 000 의파형순서에서 0-1-0로잠시 1의상태로좁은양의펄스인 spike 또는 glitch 발생 Mod-6 카운터의상태도 unused state : 111 unstable state : 110 MOD 수의변환 리플카운터의모드수는원하는모드값이되었을때 1이되는모든 F/F의출력을 NAND 게이트입력으로연결하여 F/F 를강제로리셋예 : mod-7 카운터 111 상태가될때 000으로리셋하기위해 NAND에 ABC F/F 출력연결 7
모드수와주파수 예 : 다음카운터의 mod 수와출력 D에서의주파수는? 그림 (a) NAND 입력인 D,C,B는카운터가 1110에도착하였을때 0000으로리셋 카운터는 0000부터 1101까지의안정된 14개의상태로 mod-14 카운터 입력주파수 = 30 khz D 출력주파수 = 30 khz / 14 = 2.14 khz 예 : 그림 (b) 는 1010 에서리셋 Mod-10 카운터 0000 ~1001 : BCD 카운터 8
MOD X 카운터의일반적설계과정 1. 2 N X를만족하는 F/F의최소수 N을결정하고리플카운터로연결만약, 2 N = X라면과정 2 와 3은생략 2. 모든비동기클리어입력에 NAND 게이트의출력연결 3. 카운트값 X에서 1이되는 F/F의출력들을 NAND 입력에연결 < 예 >0 부터 21 까지카운트할수있는 MOD-22 카운터설계 2 5 = 32이므로 5개의 F/F 필요, Mod-22=10110 에리셋하기위하여 E, C, B 출력을 NAND 입력에연결 < 예 > 60Hz의라인주파수를 1Hz로분주하는 MOD-60 카운터설계 2 6 = 64 > 60 : N=6개의 F/F 사용 60(111100) 을카운트할때클리어 <- C, D, E, F 출력을 NAND 에연결 9
BCD (MOD-10) 리플카운터 0(0000) 에서 9(1001) 까지 10개의상태 4개의 F/F 1010 에서비동기리셋 글리치발생 : 1001 1010 0000 B출력 1 CLK A J J B C J J D K R K R K R K R FFA FFB FFC FFD CLK A B 돌발펄스 C D CLR 10
74293/74LS293, 7493 비동기 IC 카운터 -74293 출력 : 0 (LSB), 1, 2, 3(MSB) - 두개의클럭입력 : 은 0의입력, 은 1의입력으로 NGT에동작 - 비동기리셋입력 : MR1,MR2는 master reset, 11 일때모든 F/F 를클리어 - 1, 2, 3는 3비트리플카운터로연결 mod-8 카운터 0 mod-2 카운터 mod 2 x mod 8 = mod 16 74LS293 에 10 khz의클럭을입력하여 mod-16 카운터로동작하도록결선 0 의출력을에연결하면 mod-2 x mod-8 = mod-16 카운터 10 khz의펄스는 0의클럭인 0 에인가 11
74293의여러가지결선 74293 을 mod-10 카운터로결선 mod-10 은 4 개의 F/F 가필요하므로 0는 1에연결 카운터가 1010(mod 수 =10) 이될때 3과 1의출력을마스터리셋에연결 ( 내부적으로 NAND 게이트가있으므로이를사용 ) 74293 을이용한 mod-14 카운터 1110(14) 에도달하였을때 3, 2, 1 출력을 NAND 로입력 <- 외부에 AND 게이트를하나사용 12
mod-60 카운터 74293 을 2 개사용하여구성한 mod-60 카운터 두단계에의해서입력주파수를 1/60으로분주 mod-10 카운터는 1010 일때리셋 3 = fin/10로 mod-6 카운터의 1에입력 mod-6 카운터는 0는미사용, 110일때리셋 3 주파수 : fout = (fin/10)/6/ = fin /60 13
리플카운터의전달지연 N번째 F/F 상태변화 : 클럭펄스발생후 N tpd 시간의전달지연누적 카운터의동작속도가느리다. 낮은동작주파수에동작 동작주파수가낮은경우전달지연은카운터동작에크게영향이없다 주파수가높으면전달지연효과는상대적으로크다. <- 오동작 지연시간과최대주파수의관계 Tclock = N tpd, fmax = 1 / (N tpd) N 개의 F/F 을리플연결시 fmax 이하로동작 14
동기 ( 병렬 ) 카운터 클럭펄스가모든플립플롭의클럭입력에연결되며, 하나의마스터클럭은모든플립플롭을동시에동작시킴 병렬카운터 순차논리회로의설계에따라설계할수있다. 카운터의동작시전파지연시간이없다. <- 고속카운터동작 2 비트동기식 2 진카운터 순차논리회로방식으로설계 상태도여기표작성 00 01 11 10 J A = B = K A, J B =1 = K B 15
3 비트 synchronous binary 카운터 3 비트동기식 2 진카운터 순차회로설계방법사용 J A = K A = BC, J B = K B = C, J C = K C =1 T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 CLK C B A 16
동기 4 비트이진카운터 mod-16 이진병렬카운터동기식카운터의동작원리 A 의 JK 는 11 이므로 NGT 가발생할때마다토글 B 는 A=1 인상태에서 NGT 가들어올때마다토글 ( A=1일때 JK=11) C는 A=B=1일때 NGT가들어오면토글 (AB=11 일때 JK=11) F/F D는 A=B=C=1일때 NGT 신호가들어가면토글 (ABC=111일때 JK=11) 이와같이 F/F 수가확장되더라도유사하게연결 -IC 74LS160/162, 74HC160/162 : 동기식십진카운터 74LS161/163, 74HC161/163 : 동기식 16진카운터 17
동기식 BCD 카운터 동기식 10 진카운터 0(0000) 에서 9(1001) 까지의 10 개상태 C(carry) 출력 카운터의계수가 9 일때 1 0000 0001 1001 0010 1000 0011 0111 0100 0110 0101 J A =K A =1, J B =K B =AD', J C =K C =AB, J D =ABC, K D =A' C = AD 18
3 비트동기식 2 진증감카운터 x=0 증가 0-1-2-6-7-0.. x=1 감소 7-6-5-.1-0-7.. 동기식 2진증감카운터 111 0/ 1/ 000 0/ 001 0/ 0/ 1/ 1/ 110 1/ 010 0/ 1/ 1/ 101 011 1/ 1/ 100 0/ 0/ 0/ JA = KA =1 JB = KB = A xor x JC = KC =ABx' +A'B'x A c B A IC : 74LS190, 74HC190 J C C J B B 1 J A A 동기식업 / 다운카운터 K C C K B B K A FFC FFB FFA A x 19
Preset 카운터 비동기 ( 클럭에무관 ) 또는동기적으로카운터의시작점을미리설정할수있는카운터 PL = 1 : 정상카운터동작 = 0 : 병렬데이터 ( P 2 P 1 P 0 ) 를비동기적으로카운터에 load - 74190, 74191, 74192, 74193 - 비동기프리세트카운터 IC - 동기식프리세트카운터 : 프리세트시병렬로드입력이클럭에동기 74160, 74161, 74162, 74163 20
74193 동기형카운터 비동기프리셋과리셋을가진 mod-16 up/down 동기형카운터 T CU 와T CD : 출력이최대값 (1111) 또는최소값 (0000) 에도달하였을때발생하는캐리로카운터확장시클럭으로사용 21
74193 카운터응용 예 : 74193이업카운터로동작하는회로의병렬입력이 1011이고, U, PL, MR을그림과같이인가. 카운터의초기상태를 0000이라할때카운터의출력파형 22
74193 카운터응용 다운카운터로구성된 74193, 병렬입력은 0111로연결, 카운터의초기상태가 0000이라할때출력파형 23
74193 카운터응용 74193 을이용한가변 MOD 수 프리셋을이용하여 MOD 수변화 : 프리세트수부터최대 ( 최소 ) 수까지카운트 74193 은 0101 (5) 의병렬로드입력을가진다운카운터 TC D 를 PL 에연결- 카운터가 0000 이면 TC D =0 이되고이때병렬입력 load TC D 는반주기이전에카운터가 0101이되므로다시 1로간다.(glitch 발생 ) 카운터는 5-4-3-2-1-(0,5) 로 mod-5 : 프리셋시반주기는 0000, 반주기는 0101 상태 24
Multistage 연결 카운터확장 TC D 와TC U 는둘이상의카운터를다단계로연결할때사용 0 255 (up) 또는 255 0(down) 의카운터동작 8 비트병렬입력과카운터출력 25
타이밍순차회로 타이밍순차회로 (Timing Sequencer) 동작순서 (sequence of operations) 는제어장치에의해정의되고, 동작을주관하는제어장치는타이밍신호들로구성되며, 이신호는동작이수행되는타이밍순차를결정 카운터와디코더를사용한타이밍신호발생기 2비트의카운터는 4개의서로다른상태를출력하며, 디코더는카운터의출력을입력하여 4 개의서로다른타이밍신호상태를출력 동작원리 : 디코더가카운터에서발생되는 4개의상태를구분시켜타이밍신호의순차를발생시키며, 임의의주어진시간의하나의타이밍신호는 4개의클럭펄스주기가된다. + A A T T D 0 0 0 I1 D1 1 1 I D2 T 2 2 D 2 비트카운터 2 4 디코더 3 T 3 A 0 A T T T 1 0 1 2 T 3 26
카운터디코딩 mod-x 카운터는 X 개의서로다른상태가 있으며어떤특정한상태를인지하는회로를카운터디코딩 디코더출력의논리레벨에따라 active HIGH 또는 active LOW 디코더 mod-8 카운터와디코딩회로 : 8개의 3입력 AND 게이트는한번에하나씩만 high 출력발생 카운터의디코딩 27
- 카운터의특정상태를이용한제어파형발생회로 카운터디코딩 - Active low 디코딩 : NAND 게이트를사용하여디코딩출력을 active low로. 28
디코딩글리치 - 리플카운터에서 F/F 간의전달지연시간차이에의하여 AND 게이트출력에서글리치발생 - X0, X2 디코딩파형에서의글리치는 A와 B 사이지연이원인 - 글리치가문제가되는경우 : 카운터의출력을다른회로를제어하기위하여사용할때 - 비동기리플카운터 : F/F간의지연시간차이에의해임시적상태발생예 : 카운터가 011에서 100 변화시 011 -> 010 -> 000 -> 100 으로차례로변화하므로 010 과 000 의임시상태존재 - 디코딩글리치문제가심각한경우문제를해결방법 (1) 동기식병렬카운터사용 (2) strobing : 모든 AND 게이트의입력에스토로브신호연결 - 모든 F/F이 NGT에서응답하여안정된상태가될때까지디코딩AND 게이트를동작시키지않도록스트로브신호사용 29
Ring counter circulating shift register: 마지막 F/F 출력을첫단 F/F 입력으로 feedback 연결 구성 F/F 중 1 비트만 1의상태로유지 -> power-on시 1개의 F/F만을 1로하고나머지는 0 상태로프리셋하는회로필요 클럭의 PGT 에서 1 비트씩우로이동 (shift right), 마지막비트는피드백 N 비트링카운터는 MOD-N카운터 30
Johnson Counter twisted-ring counter : switched-tail ring, 링카운터의마지막단의반전출력을첫단의입력에연결 N 비트로서 MOD-2N 카운터구성 각 F/F 출력파형의 duty cycle 은 50% 3 비트 -D FF 사용 4 비트 - JK FF 사용 J J J J K K FFA FFB FFC FFD K K 존슨카운터의디코딩존슨카운터는링카운터보다 1/2의 F/F를사용하지만카운터의상태를알기위해서는디코딩게이트가필요하다. - 디코딩게이트는항상 2N 개의 2 입력 AND 게이트가필요 31
1. 디지털시계 카운터의응용 발진회로 발진 분주 카운터 디코더 표시 회로 회로 회로 회로 회로 디지털시계의블록다이어그램 디지털시계에클록 (clock) 을제공 220[V] 전원의안정된 60Hz의주파수를이용 RC 발진회로를이용하는방법 수정발진자 (crystal oscillator) 를사용하는방법 분주회로 발진회로의정현파를이용하여 1초를나타내는 1Hz 주파수를얻는회로 60Hz 60Hz 6Hz 1Hz 슈미트트리거 10 6 7490 7492 60Hz 정현파에서 1Hz 구형파를얻는회로 32
CLK RES 4020 14 13 12 11 10 9 8 7 6 5 4 1 2 2 4 2 10 2 5 2 11 4020을이용하여 1Hz 구형파를얻는회로 카운터회로 Hour Minute Second 12진 6진 10진 6진 10진 카운터 카운터 카운터 카운터 카운터 카운터회로의블록도 33
7492( 6) 7490( 10) 1Hz D C B A D C B A 7447 7447 분, 초단위의카운터디코더및 드라이브회로 또는 7448 또는 7448 a b c d e f g a b c d e f g R 0 (1) R 0 (2) 7492( 2) R 0 (1) R 0 (2) 7490( 10) 1 펄스 / 시간 D C B A D C B A 시단위의카운터, 디코더및드라이브회로 7447 또는 7448 7447 또는 7448 a b c d e f g a b c d e f g 34
디지털시계의전체회로도 +5V +5V +5V +5V +5V +5V 330 330 330 330 330 330 SND517 SND517 SND517 SND517 SND517 e f d g a b c a b c d e f g 13 12 11 10 9 15 14 a b c d e f g 13 12 11 10 9 15 14 a b c d e f g 13 12 11 10 9 15 14 a b c d e f g 13 12 11 10 9 15 14 a b c d e f g 13 12 11 10 9 15 14 a b c d e f g 13 12 11 10 9 15 14 A B C D E F G BI / R R B 1 2 4 8 O BI LI A B C D E F G BI / R R B 1 2 4 8 O BI LI A B C D E F G BI / R R B 1 2 4 8 O BI LI A B C D E F G BI / R R B 1 2 4 8 O BI LI A B C D E F G BI / R R B 1 2 4 8 O BI LI 7447 7447 7447 7447 7447 7447 A B C D E F G BI / R R B 1 2 4 8 O BI LI 7 1 2 6 4 5 3 7 1 2 6 4 5 3 7 1 2 6 4 5 3 7 1 2 6 4 5 3 7 1 2 6 4 5 3 7 1 2 6 4 5 3 2 13 1 12 11 9 12 9 8 11 12 11 9 12 9 8 11 12 11 9 12 9 8 11 12 A B C D 7492 A B C D A B C D 7490 7492 A B C D 7490 A B C D 7492 A B C D 7490 11 10 9 A B R 0 R 0 (1) (2) A B R 0 R 0 R 9 R 9 (1)(2) (1) (2) A B R 0 R 0 (1) (2) A B R 0 R 0 R 9 R 9 (1)(2) (1) (2) A B R 0 R 0 (1) (2) A B R 0 R 0 R 9 R 9 (1)(2) (1) (2) 14 1 6 7 14 1 2 3 6 7 14 1 6 7 14 1 2 3 6 7 14 1 6 7 14 1 2 3 6 7 8 3 4 6 5 7410 S 1 S 2 hour minite 74HC04 : GND(7), Vcc(14) 74LS10 : GND(7), Vcc(14) 74LS47 : GND(8), Vcc(16) 74LS90 : GND(10), Vcc(5) 74LS92 : GND(10), Vcc(5) 4020 : GND(8), Vcc(16) 1Hz 2Hz 15 11 14 10 10 11 100K 1 2 3 74HC04 0.01μ 4 5 6 4020 100K 35
2. 주파수카운터 임의의주기적파형의주파수 (frequency) 를측정하는디지털기기 측정주파수는 Frequency = Counter t Output t=1초이면표시된수치가곧주파수가된다. t=10 초이면소수점을한자리높인다. t=0.1초이면소수점을한자리낮춘다. 미지입력 증폭기 카운터 클록발진기 분주기 t Gate Enable 주파수카운터의블록도 36
100KHz OSC 74160 10 10 10 10 10 10Hz 1Hz 0.1Hz Gate 신호 +V CC J K 7476 +V CC R C 3 4 5 A 1 A 2 B t Gate Enable 7408 7414 미지입력 Count 74121 Gate 파형정형 RESET strobe 74160 74160 74160 74160 10 10 10 10 CLK Reset 용 4bit 4bit 4bit 4bit 래치 래치 래치 래치 7447 7447 7447 7447 7475 시작끝시작 Gate Enable strobe 끝 주파수카운터의회로도 FND 507 미지입력 CLK RESET 37