제 7 장카운터와레지스터 (Counters and Registers) 7-1 비동기( 리플) 카운터리플카운터의회로연결및동작 : 모든 JK 입력은 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 카운터 4 비트리플카운터 주파수분주 - 한개의 F/F는 CLK 입력에대해입력주파수의 1/2로주파수를분주 - 그림 7-1에서클럭펄스가 16 khz이면, 출력 A의파형은 8 khz, 출력 B는 4 khz, 출력 C는 2 khz, 출력 D는 1 khz (1/16 으로분주) 카운터의마지막출력주파수는입력주파수를 MOD수에의해분주 < 예제 7-3> 1 Hz출력을내는 MOD-60 카운터는몇개의 F/F 이필요? 풀이 ) 2 6 =64, 최소 6개의 F/F필요 -1-
7-2 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로동작 글리치가 발생하는 출력 : 출력 B는 101-110-000의 파형 순서에서 0-1-0로잠시 1의상태로좁은양의펄스인 spike 또는 glitch 발생 - Mod-6 카운터의상태도 unused state : 111 unstable state : 110-2-
MOD 수의변환 리플카운터의모드수는원하는모드값이되었을때 1이되는모든 F/F의 출력을 NAND 게이트입력으로연결하여 F/F를강제로리셋 예: mod-7 카운터 111 상태가될때 000로리셋하기위해 NAND에 ABC F/F 출력연결 < 예제 7-5> 다음카운터의 mod 수와출력 D에서의주파수 그림(a) NAND 입력인 D,C,B는 카운터가 1110 에도착하였을때 0000으 로리셋 - 카운터는 0000 부터 1101까지의 안정된 14개의 상태로 mod-14 카운터 입력주파수 = 30 khz D 출력주파수 = 30 khz/ 14 = 2.14 khz MOD X 카운터의일반적설계과정 : 1. 2 N X를만족하는 F/F의최소수 N을결정하고리플카운터로연결만약, 2 N = X라면과정 2 와 3은생략 2. 모든비동기클리어입력에 NAND 게이트의출력연결 3. 카운트값 X에서 1이되는 F/F의출력들을 NAND 입력에연결 < 예제7-6> 0부터 9까지카운트할수있는 MOD-10 카운터설계 2 4 = 16이므로 4개의 F/F 필요, Mod-10=1010이되면리셋하기위하여 D 와 B 출력을 NAND 입력에연결 10 진카운터/BCD 카운터 - MOD-10 카운터 = 10 진카운터 : 임의순서로 10개의상태를가짐 BCD 카운터 : 0000-0001 -... - 1000-1001의이진순서로계수 < 예제7-7> 60Hz의라인주파수를 1Hz로분주하는 MOD-60 카운터설계 2 6 = 64 > 60 : <- N=6개의 F/F 사용 60(111100) 을카운트할때클리어 <- C, D, E, F 출력을 NAND에연결 -3-
7-3 IC 비동기식카운터 - 74293/74LS293, 7493 등 1. 74293 출력 : Q0 (LSB) Q1, Q2, Q3(MSB) 2. 두개의클럭입력 : 은 는 Q0 의입력, Q1의입력으로 NGT에동작 3. 비동기리셋입력 : MR1,MR2는 master reset, 11일때 모든 F/F를클리어 4. Q1, Q2, Q3는 3 비트리플카운터로연결 <- mod-8 카운터 Q0 <- mod-2 카운터 < 예제7-8> 74LS293에 10kHz의클럭을입력하여 mod-16 카운터로동작하 도록결선 Q0의 출력을 에 연결하면 mod-2 x mod-8 = mod-16 카운터 10 khz의펄스는클럭인 Q0의에인가 -4-
< 예제 7-9> 74293을 mod-10 카운터로결선 mod-10은 4개의 F/F가필요하므로 Q0는에연결카운터가 1010(mod 수=10) Q1의출력 이될때 Q3 과을마스터리셋에연결 ( 내부적으로 NAND 게이트가있으므로이를사용 ) < 예제 7-10> 74293을이용한 mod-14 카운터 1110(14) 에도달하였을때 Q3, Q2, Q1 출력을 NAND 로입력<- 외부에 AND 게이트를하나사용 < 예제 7-11> 74293을 2개사용하여구성한 mod-60 카운터 두단계에의해서입력주파수를 1/60으로분주 mod-10 카운터는 1010일때리셋 Q3 = f in /10로 mod-6 카운터의 CP1에입력 mod-6 카운터는 Q0 는미사용, 110일때리셋 Q3 주파수 : f out = (f in /10) / 6 = f in / 60-5-
CMOS 비동기카운터 - 74HC4024 : 7 비트(mod-128) 비동기카운터, 1 마스터리셋입력 - 74HC4040 : 12 비트(mod-2048) 카운터, 1 MR (active high) 입력 7-4 비동기식다운카운터 - up counter : 0 부터증가하는순서로계수 - down counter : 최대값으로부터감소하는순서의카운터 -3비트 mod-8다운 카운터동작순서 A F/F(LSB) 은클럭펄스마다반전( 토글) BF/F은A가0에서1로될때토글 C는B가0에서1로될때토글 - 리플다운카운터의 A 입력클럭이 NGT로동작 한다면 -> F/F의출력을인버터로반전하여야다 운카운터로동작 -> F/F의반전출력을다음단의 CLK에연결 -6-
7-5 리플카운터의전달지연 -N번째 F/F 상태변화 : 클럭펄스발생후 N 시간의전달지연누적 <- 카운터의동작속도가느리다. 낮은동작주파수 - 동작주파수가낮은경우전달지연은카운터동작에크게영향이없다 - 주파수가높으면전달지연효과는상대적으로크다. <- 오동작 - 지연시간과최대주파수의관계 T clock = N, f max = 1 / (N ) N개의 F/F을리플연결시 fmax 이하로동작가능 7-6 동기식( 병렬) 카운터 - 카운터를구성하는모든 F/F이한개의클럭에의해동시에트리거링 - 각 F/F의상태를결정하는추가논리회로필요 - 속도빠르다. -4비트동기형 MOD-16카운터 -7-
- 동기식카운터의동작원리 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진카운터 7-7 병렬다운카운터와업/ 다운카운터 - 병렬다운카운터의구성 : J, K입력에각 F/F 의반전출력을연결, 카운터출력은정상출력사용예) 그림 7-17의 up 카운터의 A, B, C 대신에 A', B', C' 를각 AND에연결하면 3비트다운카운터 - 병렬 up/down 카운터 : = 1 -> up 카운터 : 000-001-010-... -110-111-000 = 0 -> down 카운터 : 111-110-101-...-001-000-111-8-
- IC : 74LS190, 74HC190 - 동기식업/ 다운카운터 7-8 프리셋카운터 - 비동기 ( 클럭에무관) 또는동기적으로카운터의시작점을미리설정할수있는카운터 = 1 : 정상카운터동작 =0 : 병렬데이터(P 2,P 1 P 0 ) 를비동기적으로카운터에 load - IC : 74190, 74191, 74192, 74193 - 비동기프리세트카운터 IC - 동기식프리세트카운터 : 프리세트시병렬로드입력이클럭에동기 74160, 74161, 74162, 74163 7-9 74193 카운터 - 비동기프리셋과리셋을가진 mod-16 up/down 동기형카운터 -9-
두개의클럭입력 (CP U 와CP D ) 중, 다른한개는 1로유지 한개가클럭으로사용될때 와 : 출력이최대값 (1111) 또는최소값(0000) 에도달하였을때발생하는캐리로카운터확장시클럭으로사용 < 예제7-14> 74193이업카운터로동작하는회로의병렬입력이 1011 이고, CP U,, MR을 그림과 같이 인 가. 카운터의 초기상태를 0000이라할때카운터의출력파형 -10-
< 예제7-15> 다운카운터로구성된 74193, 병렬입력은 0111로연결, 카운터의초기상태가 0000 이라할때출력파형 74193을이용한가변 MOD 수 - 프리셋을이용하여 MOD 수변화 : 프리세트수부터최대( 최소) 수까지카운트 - 74193은 0101(5 10 ) 의병렬로드입력을가진다운카운터 - 를에연결- 카운터 다단계배열 (multistage arrangement) 가 0000이면 =0이되고 이때병렬입력 load <- 는반주기이전에 카운터가 0101이되므로다시 1 로간다.(glitch) - 카운터는 5-4-3-2-1-(0,5) 로 mod-5 : 프리셋시반주기 는 0000, 반주기는 0101 상태 -11-
와는둘이상의카운터를다단계로연결할때사용 0 255 (up) 또는 255 0(down) 의카운터동작 8 비트병렬입력과카운터출력 7-11 카운터의디코딩 - 카운터 F/F의상태를표시하는방법각 F/F 출력에 LED 연결디코딩방법- 타이밍제어, 순서처리기등에사용 Active high 디코딩 - mod-x 카운터는 X개의서로다른상태가있으며어떤특정한상태를인지하는회로를카운터디코딩 - 디코더출력의논리레벨에따라 active HIGH 또는 active LOW 디코더 - mod-8 카운터와디코딩회 로 : 8개의 3입력 AND 게이트 는한번에하나씩만 high 출력 발생 - 카운터의특정상태를이용한제어파형발생회로 - Active low 디코딩 : NAND 게이트를사용하여디코 딩출력을 active low 로. -12-
7-12 디코딩글리치 - 리플카운터에서 F/F 연시간차이에의하여출력에서글리치발생 간의전달지 AND 게이트 -X0,X2디코딩파형에서의글리치는 A와 B사이지연이원인 - 글리치가문제가되는경우 : 카운터의출력을다른회로를제어하기위하여사용할때 - 비동기리플카운터: F/F간의지연시간차이에의해임시적상태발생예 : 카운터가 011에서 100 변화시 011 -> 01 -> 0 0 -> 00으로차례로변화하므로 010과 000의임시상태존재 - 디코딩글리치문제가심각한경우문제를해결방법 (1) 동기식병렬카운터사용 (2) strobing : 모든 AND 게이트의입력에스토로브신호연결 - 모든 F/F이 NGT에서응답하여안정된상태가될때까지디코딩 AND 게이트를동작시키지않도록스트로브신호사용 -13-
7-13 Cascading BCD 카운터 - BCD 카운터를종속연결하여 0-999 까지카운트하고그결과를 10진으로디스플레이하는회로 7-14 동기식카운터설계 - 임의순서로동작하는카운터설계 --> 순차회로설계(sequential circuit design) J-K F/F 을이용하여순차회로를설계하는일반적인방법 - 기본개념 모든 F/F의클럭은동시에한개의마스터클럭에연결 클럭의에지트리거링전에각 F/F의 JK 입력에는다음상태를결정하기 위한상태인가 - J-K 여기표(excitation table) : F/F의다음상태를결정하기위하여인가 하여야할 JK입력 순차회로설계과정 [1 단계] 비트수(F/F 수) 를결정하고상태변화순서결정 예 : 3 비트카운터 101, 110, 111은미사용상태 (unused state, undesired state) -14-
[ 2 단계] 상태변화를볼수있는상태천이도작성. 미사용상태포함 [3 단계] 상태천이표작성 : 현재상태와다음상태와의관계표시 [4 단계] 회로여기표(circuit excitation table) 작성 : 상태천이표에 J,K 입력열첨가 - 현재상태에서다음상태로의천이를일으키는 J,K 입력값을각열에표시 -N비트이면 2N개의열필요 [5 단계] 각 J와 K 입력에대한최적화된논리식유도 - 각 J,K 입력에대한 K-맵을회로여기표로부터작성후논리식유도 <-- F/F input function,k A = 1-15-
[6 단계] 논리도작성 - 모든 F/F는병렬로클럭에연결각 F/F의 J,K 입력은 F/F 입력함수의논리회로연결 <-- 순차회로 = F/Fs( 상태기억소자) + 조합회로(F/F 의상태결정) F/F 의각출력은상태표에서다음상태에대한입력으로사용 : 순서의따라 F/F 의출력이결정되므로순서회로라한다. 입력의 스텝모터제어 2 상제어, 코일 1과 2 는반대위상, 코일 3과 4도반대위상방향제어 : CW, CCW 전류의위상변화로제어. -JK 회로여기표 :D입력은상태출력이아닌외부독립입력 -16-
-JKF/F 입력함수 - 논리도 -17-
JK외의다른 F/F를사용한순차회로설계 - F/F 여기표 : Q(t)- 현재상태, Q(t+1)- 다음상태 R/S D T F/F Q(t) Q(t+1) S R 0 0 0 1 1 0 1 1 0 X 1 0 0 1 X 0 Q(t) Q(t+1) 0 0 0 1 1 0 1 1 D 0 1 0 1 Q(t) Q(t+1) 0 0 0 1 1 0 1 1 T F/F은토글 F/F으로 JK F/F의입력을토글상태인 11으로연결한것과동일하다. T 0 1 1 0 * 순차회로설계단계의 [ 단계4] 의 F/F 여기표를위의각 F/F의여기표를사용하여작성 [ 단계5] 에서의각 F/F 의입력함수에대한논리식을구한다. N 비트회로에서, RS를사용할경우 2N 개의여기열, D나 T를사용할경우는 N개의여기열필요 - 표7-3의카운터를 D F/F이나 RS F/F 을사용하여 ( 동시에) 설계, [ 단계4] 의회로여기표작성 현재상태 C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 다음상태 C B A 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 여기 RS 여기 D S C R C S B R B S A R A D C D B D A 0 x 0 x 1 0 0 0 1 0 x 1 0 0 1 0 1 0 0 x x 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 0 1 0 x 0 x 0 0 0 0 1 0 x 0 1 0 0 0 0 1 0 1 0 x 0 0 0 0 1 0 1 0 1 0 0 0 [ 단계5] 각 SR 입력에대한 K-map을작성하고최적화된논리식각 D 입력에대한 K-map을작성하고최적화된논리식 [ 단계6] 논리도: 각 F/F을사용하여클럭을병렬연결하고 F/F 입력함수는 5에서구한식을사용하여연결 -18-
7-15 시프트레지스터카운터 링카운터 - 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카운터 존슨카운터 - twisted-ring counter : switched-tail ring, 전출력을첫단의입력에연결 -N비트로서 MOD-2N카운터구성 링카운터의마지막단의반 - 각 F/F 출력파형의 duty cycle은 50% -19-
존슨카운터의디코딩 - 존슨카운터는링카운터보다 1/2의 F/F를사용하지만카운터의상태를알기위해서는디코딩게이트가필요하다. - 디코딩게이트는항상 2N개의 2 입력 AND 게이트가필요 7-16 카운터응용 : 주파수카운터주파수카운터 - 주파수신호를측정하고디스플레이할수있는회로 - 일정샘플링구간동안입력되는주파수를카운팅하는회로 Z 출력은카운터의클럭으로사용하고카운터는초기클리어다단 BCD 카운터를사용하여그결과를직접디스플레이 -20-
- 정확한샘플펄스를얻기위한회로 - 완전한주파수카운터 -21-
7-17 카운터응용 : 디지털시계 - 디지틀시계의블록도 - 시간회로 7-17 IC 레지스터종류 1. Parallel in/parallel out, PIPO 2. Serial in/serial out 3. Parallel in/serial out 4. Serial in/parallel out 7-18 PIPO -74174, 74178-74174, 6비트 PIPO 6 비트병렬데이터(D 5 -D 0 ) 는클럭 CP의 PGT에서레지스터에로드 리셋입력은모든 F/F를비동기적으로리셋 -22-
- 74178, 4비트 PIPO with shift 7-21 직렬입력 / 병렬출력 - 74164/74LS164/74HC164 - 입력 : A and B - 출력 : 8 비트병렬시프트레지스터 -23-
[ 예제 7-24] 74164 레지스터의초기내용을 00000000이라고하면클럭펄스가인가될때마다의상태변화는? - 74194/LS194/HC194 4 비트 bidirectional universal shift register: right shift, left shift, parallel load, hold - 74373/LS373/HC373/HCT373 8 비트(octal) 레지스터로 3상출력을가진 D 래치로구성 - 74374/LS374/HC374/HCT374 8 비트레지스터로 3상출력을가진에지트리거하는 D F/F 으로구성 -24-