8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 pulse 1pulse...

29
1 8. 카운터 목표 § 카운터의 개요 § 카운터의 특성 § 리플 상향 카운터 § 리플 카운터의 파형 § 리플 하향 카운터 § 자동정지 카운터 § 주파수 분배기로서의 카운터 § 카운터 IC의 응용 카운터의 개요 § 카운터의 주요 역할 상향 또는 하향 카운트 증가 또는 감소 카운트 시퀀스 이벤트(Sequence events) 주파수 분주 어드레싱 메모리 임시메모리 § 카운터의 정의 입력(클록) 이 하나 정해진 순서에 따라 출력이 결정 카운터의 특징 § 비트수 (4비트, 8비트 등) § 최대 카운트 4 비트 = 2 4 = 0000 - 1111 (2진수) 8 비트 = 2 8 = 0000 0000 - 1111 1111 (2진수) § 카운터의 계수(modulus of a count) 카운터가 카운트를 시작해서 완전히 한 바퀴를 돌아 카운트를 끝낸 다음 다시 처음 상태로 돌아올 때까지의 상태 수 십진 카운터 4비트 8비트 § 상향 또는 하향 카운터 § 비동기식 또는 동기식 카운터 § 프리셋(Preset) 카운터 § 자동정지 카운터

Upload: others

Post on 17-Oct-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

1

8. 카운터

목표

§ 카운터의 개요

§ 카운터의 특성

§ 리플 상향 카운터

§ 리플 카운터의 파형

§ 리플 하향 카운터

§ 자동정지 카운터

§ 주파수 분배기로서의 카운터

§ 카운터 IC의 응용

카운터의 개요

§ 카운터의 주요 역할

– 상향 또는 하향 카운트

– 증가 또는 감소 카운트

– 시퀀스 이벤트(Sequence events)

– 주파수 분주

– 어드레싱 메모리

– 임시메모리

§ 카운터의 정의

– 입력(클록) 이 하나

– 정해진 순서에 따라 출력이 결정

카운터의 특징

§ 비트수 (4비트, 8비트 등)§ 최대 카운트

– 4 비트 = 24 = 0000 - 1111 (2진수)– 8 비트 = 28 = 0000 0000 - 1111 1111 (2진수)

§ 카운터의 계수(modulus of a count)카운터가 카운트를 시작해서 완전히 한 바퀴를 돌아

카운트를 끝낸 다음 다시 처음 상태로 돌아올 때까지의 상태 수– 십진 카운터– 4비트– 8비트

§ 상향 또는 하향 카운터§ 비동기식 또는 동기식 카운터§ 프리셋(Preset) 카운터§ 자동정지 카운터

Page 2: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

2

리플 카운터

0 0 0 00 0 0 1

2진수 출력

0 0 1 00 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 0

Pulse 1

클록 입력

모든 J-K 플립플롭의 입력은 1 이어서 토글모드

PS 와 CLR 입력은비활성화 되어있다.

Pulse 2Pulse 3Pulse 4Pulse 5Pulse 6Pulse 7Pulse 8

8번쨰의 클록 펄스에서는 플립플롭들은차례로 H-L 펄스를 받기 때문에

모든 FF들이 토클한다.카운터에서 카운터의 리플을 주목하라.

4비트 카운터 는 16개의 상태를 가지며2진수 0000 부터 1111까지 카운트한 후

다시 0000으로 돌아간다.이 카운터는 mod-16 카운터이다.

리플 카운터와 파형

0 0 0 00 0 0 1

2진수 출력

0 0 1 00 0 1 10 1 0 00 1 0 1

Pulse 1

클록 입력

Pulse 2Pulse 3Pulse 4Pulse 5

Clock input

1s output

2s output

4s output

FF가 H-L 펄스에서트리거 된다.

CLK는 1s FF을,1s FF는 2s FF을,2s FF는 4s FF을

토글한다.

십진 카운터2진수 출력

0 1 1 11 0 0 0

Pulse 1

클록입력

Pulse 2Pulse 3Pulse 4Pulse 5Pulse 6Pulse 7Pulse 8

1 0 0 10 0 0 00 0 0 10 0 1 00 0 1 10 1 0 00 1 0 1

1001에서 카운드 시작한다. 다음 클록펄스가 카운터를 1010을 출력하면

곧바로 NAND 게이트를 동기화하여카운터를 0000으로 리셋한다.

짧은 –(negative) 펄스

각각의 FF의 입력을클리어(clear)

모든 J & K 입력 = 1모든 PR 입력 = 1

하향 카운터

리플 상향 카운터와의 다른 점은Q 출력 대신에 Q’ 출력을

다음 FF의 CLK 입력으로 연결한다는 점이다.

Pulse 1Pulse 2

1 1 11 1 01 0 1

Pulse 3Pulse 4

1 0 00 1 1

Pulse 5

0 1 0

Page 3: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

3

자동정지 하향식 카운터

Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5

1 1 11 1 01 0 11 0 00 1 10 1 0

3비트 하향식 카운터이다.1s FF 는 토글 모드가 된다. (J & K = 1).

카운트가 000으로 감소하면 J & K 입력이 OR 게이트에 의해 LOW가 되어1s FF는 유지 모드가 된다 (J & K = 0). 카운트는 000에서 멈춘다.

0 0 1

Pulse 6

0 0 0

Pulse 7Pulse 8

카운트는 2진수 000로 유지

카운터 분주(주파수 나누기)

클록 입력

800 Hz

400 Hz

200 Hz

100 Hz50 Hz ¸ 2

¸ 4¸ 8

¸ 16

7493 카운터 IC의 사용• 카운터는 IC로 출시되어 있다.• 대표적으로 리플 카운터 IC(7493 IC)와

동기식 카운터 IC(74192) 가 사용된다.

4비트 2진수카운터로 구성된7493 카운터 IC

1600 Hz

? Hz800 Hz? Hz100 Hz? Hz400 Hz

크기 비교기

크기 비교기(magnitude comparator)는 조합 논리장치로 두이진수를 비교하여 세가지 결과중 하나의 값을 출력하는장치이다. (A=B or A>B or A<B)

Input binary 0001

Input binary 1100 HIGH

HIGH

Input binary 1111

Input binary 0110

Input binary 0111

Input binary 0111

HIGH

74HC85크기비교기

A = B

A < B

A > B

A(0)

A(1)

A(2)

A(3)

B(0)

B(1)

B(2)

B(3)

Page 4: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

4

카운터 회로의 문제 해결

• IC가 과열되었는지 확인한다.

• 연결이 끊어졌는지, 과열의 징후가 있는지 관찰한다.

• 과열로 인해 타는 냄새가 나는지 점검한다.

• IC의 전원을 확인한다

• 논리구성도를 확인한다.

• 회로의 기본적인 동작을 이해한다.

동기 순서 논리회로

• 순서논리회로의 블록도

•순서논리회로의 해석과 설계 관계

조합논리회로

메모리 소자

X(t) Y(t)

Clock Pulse

Y(t-1)

출력 Y(t)는 현재

상태의 입력 X(t)와이전 상태의 출력 Y(t-1)에 의하여 결정

설계 사양(상태도, 상태표,

부울함수)순서논리회로

설계

해석

• 순서논리회로는 신호의 타이밍(timing)에 따라 동기순서논리회로와 비동기 순서논리회로로 분류.

• 동기 순서회로에서 상태(state)는 단지이산된(discrete) 각 시점 즉, 클록펄스가 들어오는시점에서 상태가 변화하는 회로

• 클록펄스에 의해서 동작하는 회로를동기순서논리회로 또는 단순히 동기순서회로라 한다.

• 비동기 순서회로는 시간에 관계없이 단지 입력이변화하는 순서에 따라 동작하는 논리회로

동기 순서논리회로의 해석 과정

• 순서논리회로의 동작은 입력과 출력 및 플립플롭의 현재상태에 의해 결정

• 출력과 차기상태는 현재상태의 함수가 된다.

• 순서논리회로의 해석은 입력과 출력 및 현재상태에 의해 결정되는차기상태의 시간순서를 상태표나 상태도로 나타냄으로써 해석이 가능

• 순서논리회로의 해석과정

[단계 1] 회로 입력과 출력에 대한 변수 명칭 부여

[단계 2] 조합논리회로가 있으면 조합논리회로의 부울대수식 유도

[단계 3] 회로의 상태표 작성

[단계 4] 상태표를 이용하여 상태도 작성

[단계 5] 상태방정식 유도

[단계 6] 상태표와 상태도를 분석하여 회로의 동작 설명

Page 5: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

5

• 무어머신과 밀리머신

• 무어머신(Moore machine) : 순서논리회로의 출력이 플립플롭들의 현재상태만의 함수인 회로. 출력이 상태 내에 결합되어 표시된다.

• 밀리머신(Mealy machine) : 출력이 현재 상태와 입력 모두의 함수인 회로.출력은 상태간을 지나가는 화살선의 위에 표시된다.

0

1

0

1S00

S11

0/0

1/0

0/1

1/0S0 S1

무어머신 밀리머신

1. 변수명칭 부여

2. 부울 대수식 유도

• 입력변수 : x• 출력 변수 : y• F-F A 플립플롭의 입력 : SA, RA

• F-F B 플립플롭의 입력 : SB, RB

• F-F A 플립플롭의 출력 : A• F-F B 플립플롭의 출력 : B

• F-F A 플립플롭의 입력

• F-F B 플립플롭의 입력

• 시스템 출력

xBRxBS AA == ,

xARxAS BB == ,

xBAy =

SA

RA

Q

Q

SB

RB

Q

Q

A

B

x

CP

y

F-F A

F-F B

3. 상태표 작성

• 상태표(state table)는 현재상태와 외부 입력의 변화에 따라 차기상태와출력의 변화를 정의한 것

• 현재상태란 클록펄스(CP)의 인가 전을 나타내며, 차기상태란 클록펄스의인가 후를 나타낸다.

현재상태차기상태 출력

x=0 x=1 x=0 x=1

A B A B A B y y

0 0 0 0 0 1 0 0

0 1 1 1 0 1 0 0

1 0 1 0 0 0 0 1

1 1 1 0 1 1 0 0

상태표

4. 상태도 작성

• 상태표로부터 상태도를 그린다.

상태도

01

11

00

10

1/0 1/1

0/00/0

0/0

x/y

1/0

1/0

입력

출력

0/0

Page 6: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

6

5. 상태방정식 유도

• 상태 방정식(state equation)은 플립플롭 상태 천이에 대한 조건을 지정하는대수식

• 상태표로부터 플립플롭 A와 B가 논리 1이 되는 상태 방정식은 각각 다음과같다.

• 카르노 도표를 이용하여 간소화한 상태 방정식

ABxxABBABAtA +++=+ )()1(

xABBABAxBAtB )()1( +++=+

1

1

1

ABx

00 01 11 100

1 1 1

11A

Bx00 01 11 10

0

1

1

xAABxBtA ++=+ )1( BxBAxAtB ++=+ )1(

• S-R 플립플롭의 특성방정식과 비교

6. 회로의 동작설명

• 순서논리회로의 동작은 상태도나 상태표를 이용하여 설명 가능

• 입력 의 값에 따라 클록펄스가 한번씩 인가될 때마다0(00)→1(01)→3(11)→2(10)의 순으로 순차적으로 동작하는 순서논리회로

Û

xBRxBS AA ==

xARxAS BB ==

ARStA AA )()()1( +=+

BRStB BB )()()1( +=+

AxBxBAxBxB

xAABxBtA

)()(

)1(

+=++=

++=+

BxAxABxAxA

BxBAxAtB

)()(

)1(

+=++=

++=+

플립플롭의 여기표

• 플립플롭의 특성표는 현재상태와 입력값이 주어졌을 때, 차기상태가어떻게 변하는가를 나타내는 표.

• 플립플롭의 여기표(excitation table)는 현재상태에서 차기상태로 변했을때 플립플롭의 입력조건이 어떤 상태인가를 나타내는 표.

• 플립플롭의 여기표는 순서논리회로를 설계할 때 자주 사용

S-R 플립플롭의 여기표

요구입력차기상태현재상태차기상태현재상태입력

00001111

00110011

01010101

010011??

S R Q(t) Q(t+1)

010X

0011

0101

S RQ(t) Q(t+1)

X010

특성표 여기표

Page 7: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

7

J-K 플립플롭의 여기표

입력 현재상태 차기상태 요구입력차기상태현재상태

00001111

00110011

01010101

01001110

J K Q(t) Q(t+1)

01XX

0011

0101

J KQ(t) Q(t+1)

XX10

특성표 여기표

D 플립플롭의 여기표

T 플립플롭의 여기표

입력 현재상태 차기상태 현재상태 차기상태 요구입력

0011

0101

0011

D Q(t) Q(t+1)

0101

0011

0101

DQ(t) Q(t+1)

특성표 여기표

입력 현재상태 차기상태 현재상태 차기상태 요구입력

0011

0101

0110

T Q(t) Q(t+1)

0110

0011

0101

TQ(t) Q(t+1)

특성표 여기표

• 동기 순서 논리회로의 설계 과정

[단계 1] 회로 동작 기술(상태도 작성)

[단계 2] 정의된 회로의 상태표 작성

[단계 3] 필요한 경우 상태 축소 및 상태 할당

[단계 4] 플립플롭의 수와 플립플롭의 종류 결정

[단계 5] 플립플롭의 입력, 출력 및 각각의 상태에 문자기호 부여

[단계 6] 상태표를 이용하여 회로의 여기표 작성

[단계 7] 간략화 방법을 이용하여 출력 함수 및 플립플롭의 입력함수 유도

[단계 8] 순서논리회로도 작성

1. 회로 동작 기술

• 입력 변수만 있고 출력 변수는 없는 상태에서 상태 변화가 일어난다.

동기 순서논리회로에 대한 상태도

0/

01

10

00

11

1/

1/

1/

1/0/

0/

0/

x/입력

Page 8: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

8

2. 상태표 작성

• 상태도로부터 상태표 유도

현재상태차기상태

x=0 x=1

A B A B A B

0 0 0 0 0 1

0 1 1 0 0 1

1 0 1 0 1 1

1 1 1 1 0 0

상태표

상태도

3. 상태 축소 및 상태 할당

• 문자 기호에 의해서 표시된 상태를 가진 상태도로부터 간략화된 상태표를유도하기 위한 절차에 대해서 알아보기로 한다.

• 상태도로부터 얻어진 상태표는 하나 또 는 그 이상 의 불필 요한상태(redundant state)를 가질 수 있다.

• 축소된 최소 상태표(minimal state table)를 유도하기 위한 과정은 상태축소와 상태 할당의 2단계에 의해서 수행된다.

• 상태 축소

• 순서논리회로에서 플립플롭의 수를 줄이는 것

• 플립플롭의 수가 m이라 가정하면, 이때 요구되는 상태는 2m 이 되므로상태의 수를 줄임으로써 플립플롭의 수를 줄일 수 있다. 그러나 경우에따라 상태의 수는 감소되지만 플립플롭의 수는 변화하지 않는 경우도 있다.

a

b

d

f

c

eg

0/0

0/00/00/0

1/00/0

1/0 1/0

0/0

1/11/1

1/1

0/0

1/1

현재상태차기상태 출력

x=0 x=1 x=0 x=1

a a b 0 0

b c d 0 0

c a d 0 0

d e f 0 1

e a f 0 1

f g f 0 1

g a f 0 1

상태표상태도

현재상태

차기상태 출력

x=0 x=1 x=0 x=1

a a b 0 0

b c d 0 0

c a d 0 0

d e d 0 1

e a d 0 1

e f 0 1

a f 0 1

f

ff

gg

현재상태

차기상태 출력

x=0 x=1 x=0 x=1

a a b 0 0

b c d 0 0

c a d 0 0

d e d 0 1

e a d 0 1

최종 상태표

축소된 상태도

a

b

d

ce

0/0

0/0

0/0 0/0

0/0

1/1

1/1

1/0

1/01/0

Page 9: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

9

• 상태 할당

• 기호 형태로 표현된 각각의 상태에 대해서 2진수(2진 코드)의 값을할당하는 과정

상태 할당1 할당2 할당3a 0 0 1 0 0 0 0 0 0b 0 1 0 0 1 0 1 0 0c 0 1 1 0 1 1 0 1 0d 1 0 0 1 0 1 1 0 1e 1 0 1 1 1 1 0 1 1

현재상태

차기상태 출력

x=0 x=1 x=0 x=1

0 0 1 0 0 1 0 1 0 0 0

0 1 0 0 1 1 1 0 0 0 0

0 1 1 0 0 1 1 0 0 0 0

1 0 0 1 0 1 1 0 0 0 1

1 0 1 0 0 1 1 0 0 0 1

할당 1에 의한최소 상태표

4. 플립플롭의 수와 형태의 결정

• 정의해야 할 상태의 수가 n가지이면 개의 플립플롭이 필요.

• 예를 들어 n=16이면,

• 예를 들어 n=4이면,

• 상태의 수가 5가지인 경우에는 3개의 플립플롭이 필요하지만 3가지의상태는 사용하지 않는다.

é ùn2log

é ù 42log416log 22 ==

é ù 22log24log 22 ==

5. 상태 여기표의 유도

조합회로의 입력차기상태

조합회로의 출력

현재상태 입력 플립플롭 입력A B x A B JA KA JB KB0 0 0 0 0 0 x 0 x0 0 1 0 1 0 x 1 x0 1 0 1 0 1 x x 10 1 1 0 1 0 x x 01 0 0 1 0 x 0 0 x1 0 1 1 1 x 0 1 x1 1 0 1 1 x 0 x 01 1 1 0 0 x 1 x 1

Q(t) Q(t+1) J K0 0 0 x

0 1 1 x

1 0 x 1

1 1 x 0

J-K 플립플롭의 여기표

6. 플립플롭의 출력 함수 및 회로의 입력 함수 유도

X

1

X X

ABx

00 01 11 100

1 X

X

1

X XA

Bx00 01 11 10

0

1

X

X

1 X

XA

Bx00 01 11 10

0

1 X

1

X 1

XXA

Bx00 01 11 10

0

1 X

1

xBJ A = BxK A =

xJB = BAxAxAAxKB =Å=+= ⊙

Page 10: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

10

7. 논리 회로의 구현

JA

KA

Q

Q

JB

KB

Q

Q

A

B

x

CP

동기 순서논리회로의 설계 예

• 상태도

• 상태할당 및 플립플롭 수 결정

• 제어하려는 상태의 수는 5가지이므로 3비트가 필요• 3개의 S-R 플립플롭을 순서대로 A, B, C라고 정의

• 현재 상태 a, b, c, d, e에 각각 000, 001, 010, 011, 100을 할당.

현재상태차기상태 출력

x=0 x=1 x=0 x=1

a a b 0 0

b c d 0 0

c a d 0 0

d e d 0 1

e a d 0 1

q 상태표

a

b

d

ce

0/0

0/0

0/0 0/0

0/0

1/1

1/1

1/0

1/01/0

• 순서제어회로의 상태 여기표 작성

현재상태 외부입력 차기상태 플립플롭의 입력 외부출력

A B C x A B C SA RA SB RB SC RC y

a 0 0 0 0 0 0 0 0 x 0 x 0 x 0

0 0 0 1 0 0 1 0 x 0 x 1 0 0

b 0 0 1 0 0 1 0 0 x 1 0 0 1 0

0 0 1 1 0 1 1 0 x 1 0 x 0 0

c 0 1 0 0 0 0 0 0 x 0 1 0 x 0

0 1 0 1 0 1 1 0 x x 0 1 0 0

d 0 1 1 0 1 0 0 1 0 0 1 0 1 0

0 1 1 1 0 1 1 0 x x 0 x 0 1

e 1 0 0 0 0 0 0 0 1 0 x 0 x 0

1 0 0 1 0 1 1 0 1 1 0 1 0 1

Don’tcare

1 0 1 0 x x x x x x x x x x1 0 1 1 x x x x x x x x x x1 1 0 0 x x x x x x x x x x1 1 0 1 x x x x x x x x x x1 1 1 0 x x x x x x x x x x1 1 1 1 x x x x x x x x x x

• 플립플롭의 출력 함수 및 회로의 출력 함수 유도

X

ABCx

00 01 11 10

XXX

1

X

00

01

11

10 X

ABCx

00 01 11 10

XXX

X

X

00

01

11

10

X

X

1

X

X

1

X

X

X

X

ABCx

00 01

XXX

1

X

00

01

11

10

1

1

X X

X

1011

X

ABCx

00 01

XXX

1

X

00

01

11

10

1

X

X X

X

1011

X

ABCx

00 01

XXX

1

X

00

01

11

10

1 X

X

X

1011

1 X

ABCx

00 01X

X

X

1

X

00

01

11

10

1

X X

X

1011

X

xBCSA = ARA = CBAxSB +=

xBRB = xRC =xSC =

Page 11: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

11

• 순서 제어 회로의 논리회로

X

ABCx

00 01

XXX

1

X

00

01

11

10 X

1011

1

BCxAxy +=

SA

RA

Q

Q

SB

RB

Q

Q

A

B

x

CP

SC

RC

Q

Q

C

y

순서 제어회로의 논리회로

미사용 상태의 설계

• 순서논리회로에서는 어떠한 상태도 초기 상태가 될 수 있으므로현재상태를 순서논리회로에서 모두 사용하지 않는 경우 문제점 발생.

• 따라서 사용하지 않는 상태에 대해 차기 상태가 어떤지를 구할 필요가있다.

현재상태차기상태

x=0 x=1

A B C A B C A B C0

0

1

1

1

1

1

1

0

0

1

1

0

1

0

1

0

1

0

0

1

1

1

1

1

1

0

0

1

0

1

1

0

1

0

1

0

1

1

1

0

1

1

1

1

0

1

1

0

1

0

0

0

1

상태표

• 순서논리회로의 상태 여기표

입력 현재 상태 차기 상태 플립플롭 입력

x A B C A B C JA KA JB KB JC KC

0 0 1 0 0 1 1 0 × × 0 1 ×0 0 1 1 0 1 1 0 × × 0 × 00 1 0 0 1 0 0 × 0 0 × 0 ×0 1 0 1 1 0 1 × 0 0 × × 00 1 1 0 1 1 0 × 0 × 0 0 ×0 1 1 1 1 0 1 × 0 × 1 × 01 0 1 0 0 1 0 0 × × 0 0 ×1 0 1 1 1 1 1 1 × × 0 × 01 1 0 0 1 1 0 × 0 1 × 0 ×1 1 0 1 1 0 0 × 0 0 × × 11 1 1 0 0 1 0 × 1 × 0 0 ×1 1 1 1 1 1 1 × 0 × 0 × 0

• 사용하지 않은 2개의 상태(000, 001)에 대해서는 카르노 맵에서무관조건으로 처리하여 간소화

X

ABCx

00 01 11 10

XXX

1

X

00

01

11

10

X XX X

XX X

ABCx

00 01 11 1000

01

11

10

X

X X

X

1

X

X

X

X

X

ABCx

00 01

XX

X X

X

00

01

11

10

X

1

X X

1011X

X X

ABCx

00 01 11 1000

01

11

10

X X

1

X X

X X X X

ABCx

00 01

X

X X

X

00

01

11

10

X X

X

1011X

X

X

1

CxJ A = xCBK A =

xACKB =

xCJB =

xAJC = xBKC =

ABCx

00 01 11 1000

01

11

10

X X

1

X X

X X

X X

X X

Page 12: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

12

• 순서논리회로

JA

KA

Q

Q

JB

KB

Q

Q

A

B

CP

JC

KC

Q

Q

C

x

미사용 상태의 상태표

현재상태차기상태

x=0 x=1

A B C A B C A B C0

0

0

0

0

1

0

0

0

0

1

1

0

1

1

0

0

1

011

111

010

110

100

1

101

1

1

10

0

1

0

1

0

0

1000

001

0

0

미사용 상태

1

1

카운터의 설계

• 3 비트 2진 카운터 설계

상태도

현재상태 차기상태

A B C A B C

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

상태표

000

010

001111

110

101 011

100

현재상태 차기상태 플립플롭 입력

A B C A B C JA KA JB KB JC KC

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

0

1

x

x

x

x

x

x

x

x

0

0

0

1

0

1

x

x

0

1

x

x

x

x

0

1

x

x

0

1

1

x

1

x

1

x

1

x

x

1

x

1

x

1

x

1

상태 여기표

Page 13: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

13

CKB = 1=CK1=CJ

X 1

X

X

ABC

00 01 11 100

1

X 1 X

1

1

X

ABC

00 01 11 100

1

X 1

X 1

X

1

1

X

ABC

00 01 11 100

1

X 1

X1

X

1

X X

ABC

00 01 11 100

1 X

X

1

X XA

BC00 01 11 10

0

1

X

X

1 X

X

ABC

00 01 11 100

1

X

1

BCJ A = CJB =BCK A =

회로도

JC

KC

Q

Q

B

JB

KB

Q

Q

JA

KA

Q

Q

1

C

CP

A

3비트 2진 카운터를 T 플립플롭을 사용하여 구현

q 상태 여기표

현재상태 차기상태 플립플롭 입력

A B C A B C TA TB TC

0

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

1

1

1

1

0

0

1

1

0

0

1

1

0

1

0

1

0

1

0

1

0

0

0

0

1

0

0

0

1

0

1

0

1

0

1

0

1

1

1

1

1

1

1

1

1

• 카르노 맵에 의한 간략화

• 3비트 2진 카운터 회로

1

1A

BC00 01 11 10

0

1 1

1A

BC00 01 11 10

0

1

1

1 1

1A

BC00 01 11 10

0

1

1

1

1

11

1

BCTA = CTB = 1=CT

TC Q

Q

B

TB Q

Q

TA Q

Q

1

C

CP

A

Page 14: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

14

J-K 플립플롭을 사용하여 아래의 상태도에 해당하는 카운터를

설계하고, 미사용 상태에 대한 상태도를 구하여라.

000

001101

011 110

111

현재상태 차기상태 플립플롭 입력

A B C A B C JA KA JB KB JC KC

0

0

0

1

1

1

0

0

1

0

1

1

0

1

1

1

0

1

0

1

1

0

1

0

0

1

0

0

1

1

1

0

1

0

1

1

0

1

1

×

×

×

×

×

×

1

0

1

0

1

×

0

×

×

×

×

1

×

0

0

1

×

×

×

1

×

×

1

0

1

×

0

q 상태 여기표

q 카르노 맵에 의한 간략화

X

1

X X

ABC

00 01 11 100

1 X

1 X X

1X

XA

BC00 01 11 10

0

1

X

1

X X1

X

XA

BC00 01 11 10

0

1 X X

CJ A = CK A = CAJB =

• 카운터 회로

X 1

X

XA

BC00 01 11 10

0

1

X

X X

1

X

XA

BC00 01 11 10

0

1

X

X 1

X X

1X

XA

BC00 01 11 10

0

1 X

1

AKB = 1=CJ BKC =

JA

CP

KA

Q

Q

B

JB

CP

KB

Q

Q

JC

CP

KC

Q

Q

C

CP

A

1

• 미사용 상태를 포함한 카운터의 상태도

010

100

미사용 상태

000

001101

011 110

111

Page 15: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

15

카운터(Counter)

비동기식 카운터

• 비동기 카운터는 첫 번째 플립플롭의 CP(clock pulse) 입력에만클록펄스가 입력되고, 다른 플립플롭은 각 플립플롭의 출력을 다음플립플롭의 CP 입력으로 사용한다.

• 즉, 플립플롭의 출력 전이가 다른 플립플롭을 트리거시키는 원인으로작용한다.

• 비동기 카운터는 리플(ripple) 카운터라고도 부른다.

• 카운터에서 구별되는 상태의 수가 m일 때 modulo- m(간단히 mod-m; m 진)의 카운터이다.

• 비동기 카운터는 J-K 플립플롭 또는 T 플립플롭을 사용하여 구성

• 카운터는 상향 카운터(up counter)와 하향 카운터(down counter)가있다.

4비트 2진 상향 카운터

클록펄스 QD QC QB QA 10진수

1 0 0 0 0 02 0 0 0 1 13 0 0 1 0 24 0 0 1 1 35 0 1 0 0 46 0 1 0 1 57 0 1 1 0 68 0 1 1 1 79 1 0 0 0 810 1 0 0 1 911 1 0 1 0 1012 1 0 1 1 1113 1 1 0 0 1214 1 1 0 1 1315 1 1 1 0 1416 1 1 1 1 15

계수 상태

v 각 플립플롭은 클록펄스의 하강에지에서 변화한다.

v QA에서는 입력 클록 주파수의 1/2, QB에서는 1/4, QC에서는 1/8, QD에서는1/16의 주파수를 갖는 구형파가 얻어진다.

논리 회로도

타이밍 도

J

CP

K

Q

Q

J

K

Q

Q

J

K

Q

Q

J

K

Q

Q

1

QA(LSB) QB QC QD(MSB)

CPQA

QB

QC

QD

0000

0 0 0 0 0 0 0 0000 0 0

0 00 0

0 0 0 0

0 0 0 00 0 0 01 1 1 1 1 1 1 1

1111 1

1 1 1111

1 11 1

1 1 1 1

11 11 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15상태

0000

Page 16: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

16

상태도

0 1 2 3 4 5 6 7

15 14 13 12 11 10 9 8

4비트 2진 상향 카운터(상승 에지 트리거)

J

CP

K

Q

Q

J

K

Q

Q

J

K

Q

Q

J

K

Q

Q

1

QA(LSB) QB QC QD(MSB)

4비트 2진 하향 카운터

클록펄스 QD QC QB QA 10진수

1 1 1 1 1 152 1 1 1 0 143 1 1 0 1 134 1 1 0 0 125 1 0 1 1 116 1 0 1 0 107 1 0 0 1 98 1 0 0 0 89 0 1 1 1 710 0 1 1 0 611 0 1 0 1 512 0 1 0 0 413 0 0 1 1 314 0 0 1 0 215 0 0 0 1 116 0 0 0 0 0

계수 상태

• 각 플립플롭은 클록펄스의 상승에지에서 변화.

• QA에서는 입력 클록 주파수의 1/2, QB에서는 1/4, QC에서는 1/8, QD에서는

1/16의 주파수를 갖는 구형파가 얻어진다.

논리 회로도

타이밍 도

J

CP

K

Q

Q

J

K

Q

Q

J

K

Q

Q

J

K

Q

Q

1

QA(LSB) QB QC QD(MSB)

CPQA

QB

QC

QD

0 01

0123456789101112131415상태

1 11 1 1 11 1 1 1

1 1 10

00 1 1 1 1 1 10 0 0 0 0 0

0 0 1 0 1 0 1 0 1

1 1 1 11 1 1 10 0 0 0 0 0 0 00 0 0 0 0 0 0 0

111115

0000

상태도

4비트 2진 하향 카운터(하강 에지 트리거)

0 1 2 3 4 5 6 7

15 14 13 12 11 10 9 8

J

CP

K

Q

Q

J

K

Q

Q

J

K

Q

Q

J

K

Q

Q

1

QA(LSB) QB QC QD(MSB)

Page 17: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

17

비동기 상향/하향 카운터

• S=0으로 하면 MUX의 입력 I0와 출력 O가 연결 : 상향 카운터

• S=1로 하면 MUX의 입력 I1 과 출력 O가 연결 : 하향 카운터

비동기 4비트 상향/하향 카운터

J

CP

K

Q

Q

1

QA(LSB) QB QD(MSB)

I0

I1F

MUX J

K

Q

Q

MUX J

K

Q

Q

S

QC

MUX J

K

Q

Q

I0

I1F

I0

I1F

비동기 10진 카운터(BCD 카운터, decade counter)

• 0에서 9까지의 카운트를 반복

• BCD 카운터를 구성하려면 4개의 플립플롭이 필요

• 16개의 상태 중에서 10개의 상태만을 사용

클록펄스 QD QC QB QA 10진수

1 0 0 0 0 02 0 0 0 1 13 0 0 1 0 24 0 0 1 1 35 0 1 0 0 46 0 1 0 1 57 0 1 1 0 68 0 1 1 1 79 1 0 0 0 810 1 0 0 1 9

상태표

• 카운터 출력이 (목표하는 최고 카운트)+1에 도달한 순간을 포착하여 모든플립플롭을 0으로 Clear

• QB와 QD 출력을 NAND 게이트로 결합하고 그 출력을 모든 플립플롭이clear 입력에 연결

glitch는카운터의오동작

원인이 될 수있다.

CP

J

K

Q

Q K

Q

Q

1

J

K

Q

Q

J

K

Q

Q

QA(LSB) QB QC QD(MSB)

CLR CLR CLR CLR

J

CPQA

QB

QC

QD

glitch

CLR

• 3 자리 10진 카운터의 블록도

• 3 자리 10진수인 000~999까지 카운트할 수 있는 카운터

10진 카운터

102 자리

QD

CP

QC QB QA

10진 카운터 10진 카운터

101 자리 100 자리

QD QC QB QA QD QC QB QA

Page 18: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

18

동기식 카운터• 플립플롭에서의 전파지연 tPD인 경우 n개의 플립플롭을 종속 연결한

비동기 카운터의 전체 전파지연은 n´tPD 가 된다.

• 이러한 지연 때문에 입력 클록펄스를 모든 플립플롭에 공통으로 인가하는동기식 카운터를 사용.

2비트 동기식 2진 카운터

00

10

1101

상태도

현재상태 차기상태 플립플롭 입력

QB QA QB QA JB KB JA KA

0 0 0 1 0 x 1 x

0 1 1 0 1 x x 1

1 0 1 1 x 0 1 x

1 1 0 0 x 1 x 1

상태 여기표

1

XX

QB0 1

0

1

QA

1

XXQB

0 10

1

QA

1 X

X

QB0 1

0

1

QA

1

1X

X

QB0 1

0

1

QA

1

AB QJ = AB QK = 1=AJ 1=AK

2-비트 카운터 회로 및 타이밍 도

CP

JA

KA

Q

Q

1

JB

KB

Q

Q

QBQA(LSB)

FF-A FF-B

CP

QA

QB

t1 t2 t3 t4

0

0 0

1 0

1 1

1 0

0

3비트 동기식 2진 카운터

• J-K 플립플롭을 사용하여 설계

3-비트 동기 2진 카운터의 상태도

000

010

001111

110

101 011

100

현재상태 차기상태 플립플롭 입력

QC QB QA QC QB QA JC KC JB KB JA KA0 0 0 0 0 1 0 x 0 x 1 x0 0 1 0 1 0 0 x 1 x x 10 1 0 0 1 1 0 x x 0 1 x0 1 1 1 0 0 1 x x 1 x 11 0 0 1 0 1 x 0 0 x 1 x1 0 1 1 1 0 x 0 1 x x 11 1 0 1 1 1 x 0 x 0 1 x1 1 1 0 0 0 x 1 x 1 x 1

X

1

X X

00 01 11 100

1 X

QBQA

QC

X

1

X X00 01 11 10

0

1

X

QBQA

QC

X

1 X00 01 11 10

0

1 X

QBQA

QC

X

1

ABC QQJ = ABC QQK = AB QJ =

Page 19: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

19

X

1X00 01 11 10

0

1 X

QBQA

QC

X

1 X

1 X00 01 11 10

0

1 X

QBQA

QC

X

1

1

1 X

1 X00 01 11 10

0

1 X

QBQA

QC

X

1 1

1

AB QK = 1=AJ 1=AK

CP

JA

KA

Q

Q

1

JB

KB

Q

Q

QBQA(LSB)

FF-A FF-B

JC

KC

Q

QFF-C

QC

CPQA

QB

QC 0 0 00 0

00000 00

1 1 1 11 1 1 1

1 1 1 10 1 2 3 4 5 6 7 0상태

000

4비트 동기식 2진 카운터

회로도

타이밍 도

CP

JA

KA

Q

Q

1

JB

KB

Q

Q

QBQA(LSB)

FF-A FF-B

JC

KC

Q

QFF-C

QC

JD

KD

Q

QFF-D

QD

CPQA

QB

QC

QD

0000

0 0 0 0 0 0 0 0000 0 0

0 00 0

0 0 0 0

0 0 0 00 0 0 01 1 1 1 1 1 1 1

1111 1

1 1 1111

1 11 1

1 1 1 1

11 11 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15상태

0000

클록펄스

1234567891011121314151617

QD

00000000111111110

QC

00001111000011110

QB

00110011001100110

QA

01010101010101010

10 진수

01234567891011121314150

4-비트 동기식 2진 카운터의 상태표

• n-비트 동기 2진 카운터

• 상태표로부터 플립플롭의 입력함수를 추정할 수 있다.

• 하위의 모든 출력이 1일 때, 각 출력은 0은 1로, 1은 0으로 변화한다.

• 토글동작이 필요할 때, J와 K 입력은 모두 1이 되어야 한다.

• 따라서 플립플롭의 입력 함수는 간단하게 하위비트의 논리적 AND이다.

1== AA KJ

ABB QKJ ==

ABCC QQKJ ==

ABCDD QQQKJ ==

ABCDEE QQQQKJ ==

ABCDEFF QQQQQKJ ==

Page 20: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

20

q 동기식 BCD 카운터의 상태도

00010000

0101

0010

0011

01000110

0111

1000

1001현재상태 차기상태 플립플롭 입력 출력

QD QC QB QA QD QC QB QA JD KD JC KC JB KB JA KA C0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 00 0 0 1 0 0 1 0 0 x 0 x 1 x x 1 00 0 1 0 0 0 1 1 0 x 0 x x 0 1 x 00 0 1 1 0 1 0 0 0 x 1 x x 1 x 1 00 1 0 0 0 1 0 1 0 x x 0 0 x 1 x 00 1 0 1 0 1 1 0 0 x x 0 1 x x 1 00 1 1 0 0 1 1 1 0 x x 0 x 0 1 x 00 1 1 1 1 0 0 0 1 x x 1 x 1 x 1 01 0 0 0 1 0 0 1 x 0 x x 0 x 1 x 01 0 0 1 0 0 0 0 x 1 x x 0 x x 1 1

q 동기식 BCD 카운터의 상태 여기표

• 자리 올림수 출력 C는 BCD 카운터의 계수가 9(1001)가 되었을 때 논리 1이되도록 한다.

q 카르노 맵

X

00 01 11 10

XXX

1

X

00

01

11

10 X

QBQA

QDQC

X X

ABCD QQQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X X X

QBQA

QDQC

AD QK =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X

QBQA

QDQC

ABC QQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X

QBQA

QDQC

ABC QQK =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X1

QBQA

QDQC

ADB QQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

XX

X 1

X X

QBQA

QDQC

ADB QQK =

1=AJ 1=AK

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X1

1

1

1 X

QBQA

QDQC

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X 1

1

1

1X

QBQA

QDQC

X

00 01 11 10

XXX

1

X

00

01

11

10 X

QBQA

QDQC

ADQQC =

q 동기식 BCD 카운터 회로도

Page 21: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

21

3비트 동기식 상향/하향 카운터

• 외부 입력 x=0 : 증가 카운터

• 외부 입력 x=1 : 감소 카운터

• 3 비트 동기식 상향/하향 카운터의 상태도

1/

000

110

111001

010

011 101

100

1/ 1/

1/

1/1/

1/1/

0/

0/

0/

0/ 0/

0/

0/

0/

현재상태 입력 차기상태 플립플롭 입력

QCQBQA x QCQBQA JC KC JB KB JA KA

0 0 0 0 0 0 1 0 X 0 X 1 X

0 0 0 1 1 1 1 1 X 1 X 1 X

0 0 1 0 0 1 0 0 X 1 X X 1

0 0 1 1 0 0 0 0 X 0 X X 1

0 1 0 0 0 1 1 0 X X 0 1 X

0 1 0 1 0 0 1 0 X X 1 1 X

0 1 1 0 1 0 0 1 X X 1 X 1

0 1 1 1 0 1 0 0 X X 0 X 1

1 0 0 0 1 0 1 X 0 0 X 1 X

1 0 0 1 0 1 1 X 1 1 X 1 X

1 0 1 0 1 1 0 X 0 1 X X 1

1 0 1 1 1 0 0 X 0 0 X X 1

1 1 0 0 1 1 1 X 0 X 0 1 X

1 1 0 1 1 0 1 X 0 X 1 1 X

1 1 1 0 0 0 0 X 1 X 1 X 1

1 1 1 1 1 1 0 X 0 X 0 X 1

q 3비트 동기식 상향/하향 카운터의 상태 여기표

1=AK

q 카르노 맵

X

00 01 11 10

XXX

1

X

00

01

11

10 X

QAxQCQB

1

XX

xQQxQQJ ABABC +=

X

00 01 11 10XXX

1

X00

01

11

10

X

QAxQCQB

1

XX

xQQxQQK ABABC +=

X

00 01 11 10

XXX

1

X

00

01

11

10

X

QAxQCQB

1

XX

1

1

xQJ AB Å=

X

00 01 11 10XXX

1

X00

01

11

10 X

QAxQCQB

1

XX

1

1

xQK AB Å=

X

00 01 11 10X

XX

1 X00

01

11

10

X

QAxQCQB

1 XX

1

1

11

11

1=AJ

X

00 01 11 10X

XX

1X00

01

11

10

X

QAxQCQB

1XX

1

1

11

11

q 3비트 동기식 상향/하향 카운터의 회로도

CP

JA

KA

Q

1

QBQA(LSB)

FF-A

QC

Q

x

JB

KB

Q

FF-BQ

JC

KC

Q

FF-CQ

Page 22: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

22

주파수 분할

QA

QB

QC

QD

CP

¸ 2¸ 4¸ 8¸ 16

mod-16

CP

QA

QB

¸ m

QA

QB

¸ (m n)´

MSB

MSB

mod-m

mod-n

16진 카운터 블록도 (m´n)분주회로 개념도

기타 카운터링 카운터

• 임의의 시간에 한 개의 플립플롭만 논리 1이 되고 나머지 플립플롭은 논리0이 되는 카운터

• 논리 1은 입력펄스에 따라 그 위치가 한쪽 방향으로 순환한다.

• 상태도

1000

0010

00010100

• 상태 여기표

현재상태 차기상태 플립플롭 입력

QDQCQBQA QDQCQBQA DD DC DB DA

1 0 0 0 0 1 0 0 0 1 0 0

0 1 0 0 0 0 1 0 0 0 1 0

0 0 1 0 0 0 0 1 0 0 0 1

0 0 0 1 1 0 0 0 1 0 0 0

• 카르노 맵

X

00 01 11 10X

X

X

X

00

01

11

10

X

QBQA

QDQC1

XX X

XX X

X

00 01 11 10X

X

X

X

00

01

11

10

X

QBQA

QDQC

1

XX X

XX X

X

00 01 11 10X

X

X

X

00

01

11

10

X

QBQA

QDQC

1

XX X

XX X

X

00 01 11 10X

X

X

X

00

01

11

10

X

QBQA

QDQC1

XX X

XX X

AD QD = DC QD =

CB QD = BA QD =

Page 23: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

23

• 처음에 Clear 단자를 논리 0으로 하여 모든 플립플롭의 출력을 0으로 한다음 처음 플립플롭의 출력 을 1로 세트하고 Clear 단자를 다시 논리 1로하면 링 카운터의 최초의 출력은 QD QC QB QA =1000이다.

• 이 후부터 클록펄스가 입력될 때마다 클록펄스의 상승 에지에서 오른쪽으로한 자리씩 이동을 하며, QA 의 출력은 다시 DD 로 입력된다.

DD

CP

Q DC Q DB Q DA Q

QD QC QB QA

Clear

CLR

PR

CP

QD

QC

QB

QA

• 링 카운터 응용 : 커피 자판기(vending machine)

[단계 1] 동전이 들어오는 것을 기다린다.[단계 2] 동전을 확인하고 적절한 잔돈을 돌려준다.[단계 3] 선택스위치(블랙, 크림, 및 설탕)을 읽어라.[단계 4] 공급창(커피를 빼내는 곳)에 종이컵을 떨어뜨린다.[단계 5] 종이컵에 인스턴트 커피를 붓는다.[단계 6] 선택된([단계 3])대로 크림이나(과) 설탕을 추가하라.[단계 7] 컵에 뜨거운 물을 붓는다.[단계 8] 물, 커피, 크림 및 설탕이 적절히 공급되었는지를 검사한다.

만약 적으면 적당한 메시지를 보이게 한다.[단계 9] 1 단계로 간다.

동작순서

링 카운터를 응용한 커피자판기 동작도

• 처음에 를 논리 0으로 하여 QA=1이 되고 QB=QC=…QH=0이 된다.이제 를 논리 1로 한다.

링카운터

QA

QB

QC

QD

QE

QF

QG

QH

Wait for coins

Check coins

Read Selection

Drop cup

Release coffee

Add cream/suger

Fill up

Check supplies

CLEAR

CP

"Done" Pulse

CLEARCLEAR

존슨 카운터

• n개의 플립플롭으로 구성된 링 카운터는 n 가지의 서로 다른 상태를 출력

• 존슨 카운터는 2n 가지의 서로 다른 상태를 출력

DD

CP

Q DC Q DB Q DA Q

QD QC QB QA

Q

CP

QD

QC

QB

QA

Page 24: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

24

• 존슨 카운터의 단점은 사용되지 않는 초기상태가 주어지면 사용되지 않는계수의 순서만이 계속하여 반복하게 된다. 이 단점은 회로에서 세 번째플립플롭의 입력을 다음 부울함수로 수정하면 해결할 수 있다.

4비트 존슨 카운터의 상태표

클록펄스 QD QC QB QA 10진수

1 0 0 0 0 0

2 1 0 0 0 8

3 1 1 0 0 12

4 1 1 1 0 14

5 1 1 1 1 15

6 0 1 1 1 7

7 0 0 1 1 3

8 0 0 0 1 1

CBDB QQQD )( +=

프리세트 카운터• 0보다 큰 수로부터 카운터를 시작할 수 있다.

• LOAD=0 : 정상적인 상향 카운터로 동작

• LOAD=1 : 프리세트 입력으로 초기화.(PC PB PA=010 이면, QC QB QA=010)

TCCP

QC

TB TA

QB QA

QC QB QA

PR

CLR

PR

CLR

PR

CLR

PC PB PA

LOAD

FF-B FF-AFF-C

• 이제 LOAD=0으로 하면 카운트 시작.

• 아래의 회로를 추가하여 modulus를 가변.

• QC QB QA =000일 때에 한해서 NOR 게이트의 출력 즉, LOAD=1이 되고, 기타의 경우에는 출력이 0이 된다. 따라서 PC PB PA =010으로 설정하고카운터가 계수를 하여 QC QB QA = 000이 되는 순간 카운터의 출력은010으로 프리세트된다.

시작

000 001 010 011 100 101 110 111

Q1

Q2

Q3LOAD

010 011 100 101 110 111

• Modulus 설정방법

여기서 n은 카운터에서의 플립플롭의 수

(프리세트 카운터의 modulus) = (최대 modulus 2n ) - (프리세트된 수)

Page 25: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

25

IC 카운터7493(16진 비동기 상향 카운터)

• 2진 카운터와 8진 카운터가 독립적으로 내장

• 2진 카운터 : 입력은 Input A이고 출력은 QA.

• 8진 카운터 : 입력은 Input B이고 출력은 QDQCQB.

• 16진 카운터 : 입력을 Input A에 넣고, QA를 Input B에 연결하고 출력은QDQCQBQA 에서 얻는다.

7493 핀 배치도

• 7492(12진 비동기 상향 카운터)

• 2진 카운터(mod-2)와 6진 카운터(mod-6)가 독립적으로 내장

• 사용법은 7493에 준한다.

• 7490(10진 비동기 상향 카운터)

• 2진 카운터(mod-2)와 5진 카운터(mod-6)가 독립적으로 내장

• 사용법은 7493에 준한다.

7490 핀 배치도

74163(Synchronous presettable mod-16 counter with synchronous clear)

• 74163은 4-비트 동기 2진 카운터로서 4개의 D 플립플롭으로 구성되며, 4 비트의 병렬입력과 병렬출력이 있다.

LOAD ENP,ENT 기 능

0111

X011

XX01

플립플롭이 clear된다.병렬입력이 수행된다.불변상태가 된다.카운터가 동작한다.

CLR

74163 핀 배치도

• ENP와 ENT 입력 및 RCO 출력은 더 높은 계수순서를 갖는 카운터를설계할 때 사용

• 임의의 modulus 카운터로 사용 가능

A

1 ENPENTCLEARLOAD

11

BCD

QAQBQCQD

RCO

A

1 ENPENTCLEARLOAD

11

BCD

QAQBQCQD

RCO

CP

74163/74161

74163/74161

A

1 ENPENTCLEARLOAD

1

BCD

QAQBQCQD

RCO

CP

74163/74161

A

1 ENPENTCLEARLOAD1

BCD

QAQBQCQD

RCO

CP

74163/74161

8-비트 카운터

Mod-11 카운터 Mod-14 카운터

Page 26: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

26

• 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진 동기 카운터이다.

• 74169(Synchronous presettable up/down mod-16 counter)

• 16진 상향/하향 동기식 카운터이다.

• 제어입력 U/ 를 논리 1로 하면 상향 카운터, 논리 0으로 하면 하향카운터로 동작

• 프리세트 데이터 입력 DCBA는 를 논리 0으로 할 때 클록펄스의상승 에지에서 출력을 프리세트시킨다. 카운트가 일어나려면 ENP와ENT가 둘 다 논리 0으로 되어야 한다.

• 출력 QD, QC, QB, QA가 상향 모드 시에는 1111, 하향 모드 시에는 0000에도달하면 RCO(ripple carry output)가 논리 0이 된다.

D

LOAD

• 74168(Synchronous presettable up/down BCD counter)

• 10진의 단일 modulus를 가지며 동작은 74169에 준한다.

• 74190(Presettable synchronous up/down BCD counter)

• 핀 기능, 동작, 사용법 등이 74163과 같은 presettable 16진 동기식 상향카운터이다. 또한 비동기적인 클리어 입력을 갖는다.

LOAD ENABLE DOWN/UP 기 능

0111

X011

XX01

증가 카운터로 동작한다.감소 카운터로 동작한다.병렬입력이 수행된다.불변상태가 된다.

74190 핀 배치도

• 74191(Presettable synchronous up/down mod-16 counter)

• 74191은 4-비트 16진 상향/하향 동기식 카운터로서 핀 배치도는 74190과같다.

• =0이면 계수가능 상태이고, 1이면 계수정지 상태가 된다.

• =0이면 상향 카운터로 동작하고, 1이면 하향 카운터로 동작한다.

• 이 외의 모든 동작은 74190에 준한다.

UD/CTEN

Page 27: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

27

카운터의 응용디지털 시계

• 발진회로

• 디지털 시계에 안정적인 클록(clock)을 제공할 목적으로 설계되는 회로

§ 첫 번째 방법 : 가정용 220[V] 전원의 안정된 60Hz의 주파수를 이용

§ 두 번째 방법 : CR 발진회로를 이용하는 방법

§ 세 번째 방법 : 수정 발진자(crystal oscillator)를 사용하는 방법

분주회로

발진회로

디코더회로

표시회로

카운터회로

디지털 시계의 블록 다이어그램 • 분주회로

• 발진회로로부터 얻어진 구형파를 이용하여 디지털 시계의 기본 단위인1초를 나타내기 위한 1Hz 주파수를 얻는 회로

R1C

R2

수정 발진자

R1 R1

R2 R2

C

CR 발진회로 수정 발진자를 사용한 회로

60Hz10

7490슈미트트리거

÷ 67492÷

60Hz 6Hz 1Hz

60Hz 정현파에서 1Hz 구형파를 얻는 회로

• 카운터 회로

4020을 이용하여 1Hz 구형파를 얻는 회로

Q14

CP4020

Q13 Q12 Q11 Q10 Q9 Q8 Q7 Q6 Q5 Q4 Q1

CLKRES

÷2÷24

÷÷÷

25210

211

12진카운터

6진카운터

10진카운터

6진카운터

10진카운터

Hour Minute Second

카운터 회로의 블록도

시 단위의 카운터, 디코더및 드라이브 회로

분, 초 단위의 카운터 디코더 및드라이브 회로

7490( 10)÷1Hz

a

QD QAQC QB

7447또는7448

b c d e f g

7492( 6)÷

a

QD QAQC QB

7447또는7448

b c d e f g

÷1펄스/시간

a

QD QAQC QB

7447또는7448

b c d e f g

÷

a

QD QAQC QB

7447또는7448

b c d e f g

7490( 10)7492( 2)R0(1)R0(2)

R0(1)R0(2)

Page 28: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

28

디지털 시계의 전체 회로도

13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 9 8 11QA

QB

QC

QD

A B

14 1 2 3 6 7

R0(1)

R0(2)

R9(1)

R9(2)

a b c d e f g13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 11 9QA

QB

QC

QD

A B

14 1 6 7

R0(1)

R0(2)

a b c d e f g13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 9 8 11QA

QB

QC

QD

A B

14 1 2 3 6 7

R0(1)

R0(2)

R9(1)

R9(2)

a b c d e f g13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 11 9QA

QB

QC

QD

A B

14 1 6 7

R0(1)

R0(2)

a b c d e f g13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 9 8 11QA

QB

QC

QD

A B

14 1 2 3 6 7

R0(1)

R0(2)

R9(1)

R9(2)

a b c d e f g13 12 11 10 9 15 14

A B C D E GF

1 2 4 8 LIRBI

BI/RBO

7 1 2 6 4 5 3

12 11 9QA

QB

QC

QD

A B

14 1 6 7

R0(1)

R0(2)

a b c d e f g

100K

100K

0.01m

10

111

23

45

6

4020

Q10

Q1114

151Hz2Hz

34

5

68

91110

12

13 12

74HC04

7490749274907490 74927492

7410

7447 7447 7447 7447 7447 7447

ab

cd

e

f gSND517SND517SND517SND517SND517

+5V

330

+5V

330

+5V

330

+5V

330

+5V

330

+5V

330

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)

S1 S2hour minite

주파수 카운터• 임의의 주기적인 파형의 주파수(frequency)를 측정하는 디지털 기기

• 측정 주파수는

• t=1초이면 표시된 수치가 곧 주파수가 된다.

• t=10초이면 소수점을 한 자리 높인다.

• t=0.1초이면 소수점을 한 자리 낮춘다.

카운터증폭기

분주기클록

발진기

미지입력

t

Gate Enable

주파수 카운터의 블록도

tOutputCounterFrequency

=

Gate 신호

Reset용

주파수 카운터의 회로도

100KHzOSC

10÷ 10÷ 10÷ 10÷ 10÷

J

K

Q

+VCC

10Hz

Q

1Hz0.1Hz

7476

A1A2B

7414미지입력

CountGate

10÷ 10÷ 10÷ 10÷

Q

CLK

RESET

4bit래치

4bit래치

4bit래치

4bit래치

+VCC

3

4

5

7447744774477447

strobe

t

GateEnable

RC

74160741607416074160

7475

7408

74121

FND 507

74160

파형정형

GateEnablestrobe

미지입력

CLK

RESET

시작 시작끝 끝

동기식 BCD 카운터

q 동기식 BCD 카운터의 상태도

00010000

0101

0010

0011

01000110

0111

1000

1001

Page 29: 8 카운터 [호환 모드] - sjkim.pusan.ac.kr · 3 자동정지하향식카운터 Pulse 1Pulse 2Pulse 3Pulse 4Pulse 5 1 1 11 1 01 0 11 0 00 1 10 1 0 3비트하향식카운터이다

29

현재상태 차기상태 플립플롭 입력 출력

QD QC QB QA QD QC QB QA JD KD JC KC JB KB JA KA C0 0 0 0 0 0 0 1 0 x 0 x 0 x 1 x 00 0 0 1 0 0 1 0 0 x 0 x 1 x x 1 00 0 1 0 0 0 1 1 0 x 0 x x 0 1 x 00 0 1 1 0 1 0 0 0 x 1 x x 1 x 1 00 1 0 0 0 1 0 1 0 x x 0 0 x 1 x 00 1 0 1 0 1 1 0 0 x x 0 1 x x 1 00 1 1 0 0 1 1 1 0 x x 0 x 0 1 x 00 1 1 1 1 0 0 0 1 x x 1 x 1 x 1 01 0 0 0 1 0 0 1 x 0 x x 0 x 1 x 01 0 0 1 0 0 0 0 x 1 x x 0 x x 1 1

q 동기식 BCD 카운터의 상태 여기표

v 자리 올림수 출력 C는 BCD 카운터의 계수가 9(1001)가 되었을 때 논리 1이되도록 한다.

q 카르노 맵

X

00 01 11 10

XXX

1

X

00

01

11

10 X

QBQA

QDQC

X X

ABCD QQQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X X X

QBQA

QDQC

AD QK =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X

QBQA

QDQC

ABC QQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X X X X

X X

QBQA

QDQC

ABC QQK =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X1

QBQA

QDQC

ADB QQJ =

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

XX

X 1

X X

QBQA

QDQC

ADB QQK =

1=AJ 1=AK

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X1

1

1

1 X

QBQA

QDQC

X

00 01 11 10

XXX

1

X

00

01

11

10 X

X

X X

X 1

1

1

1X

QBQA

QDQC

X

00 01 11 10

XXX

1

X

00

01

11

10 X

QBQA

QDQC

ADQQC =

q 동기식 BCD 카운터 회로도