8.2 플립플롭 여기표

 

앞 장에서 각 플립플롭에 대한 진리표를 학습했었다. 진리표는 각 플립플롭에 입력이 주어졌을 때 출력이 어떻게 변화되는가를 나타내는 표였다. 이와 같은 진리표는 원래 그림 8-4에 나타낸 것과 같은 진리표를 간단히 표시한 것이다. 그림 8-4의 진리표는 각 플립플롭들의 입력과 현재상태 값이 주어졌을 때 다음상태 값이 어떻게 되는지를 알기 쉽도록 나타낸 것이다. 진리표에서 현재상태와 다음상태는 각각 플립플롭 출력 Q의 현재 값과 클럭이 인가되고 난 후의 다음 값을 의미한다.

 

입력

현재상태

다음상태

비고

S  R

Q(t)

Q(t+1)

0  0

0

0

유지가능

0  0

1

1

0  1

0

0

리셋가능

0  1

1

0

1  0

0

1

세트가능

1  0

1

1

1  1

0

x

허용안됨

1  1

1

x

(a) SR플립플롭

입력

현재상태

다음상태

비고

J  K

Q(t)

Q(t+1)

0  0

0

0

유지가능

0  0

1

1

0  1

0

0

리셋가능

0  1

1

0

1  0

0

1

세트가능

1  0

1

1

1  1

0

1

토글가능

1  1

1

0

(b) JK플립플롭

입력

현재상태

다음상태

비고

D

Q(t)

Q(t+1)

0

0

0

전달기능

0

1

0

1

0

1

1

1

1

(c) D플립플롭

입력

현재상태

다음상태

비고

T

Q(t)

Q(t+1)

0

0

0

유지가능

0

1

1

1

0

1

토글가능

1

1

0

(d) T플립플롭

그림 8-4. 플립플롭 진리표

 

이제 순차회로를 설계하기 위해서는 플립플롭에 대한 여기표(excitation table)를 알아야 한다. 여기표란 그림 8-5에 나타낸 것과 같이 플립플롭의 현재상태와 다음상태를 알 때 입력으로 어떤 값을 인가해주어야 하는지 알기 쉽도록 만든 표이다.

예를 들어 그림 8-5(a)의 SR 플립플롭에 대한 여기표에서 첫번째 줄은 현재상태 Q(t)가 0일 때 다음상태 Q(t+1)을 0으로 만들기 위해서는 입력 S, R에 각각 S=0, R=x를 인가해 주면 된다는 것을 나타낸다. 여기서 x는 무정의조건(don't care)을 뜻하며, 따라서 R에는 0을 인가하든 1을 인가하든 상관없다는 뜻이 된다. 이 사실은 SR 플립플롭에서 S와 R 입력에 SR=00을 인가하면 현재상태가 변하지 않으며, SR=01을 인가하면 무조건 리셋기능이 수행되어 플립플롭의 다음상태 값이 0이 된다는 사실을 기억하고 있다면 쉽게 이해할 수 있을 것이다. 즉 현재 SR 플립플롭의 상태 Q(t)가 0일 때 다음상태를 0으로 만들고 싶으면 현재상태를 그대로 유지시키거나(따라서 입력에 SR=00을 인가하거나) 무조건 리셋기능을 수행(SR=01을 인가)시키면 다음상태는 0이 된다. SR=00을 인가하거나 SR=01을 인가하면 된다는 것은 S에 0만 인가하면 R에는 0을 인가해도 상관없고 1을 인가해도 상관없다는 뜻이 됨으로 결국 SR=0x가 된다. 나머지 경우도 같은 방법으로 여기표를 작성할 수 있다. 만일 SR 플립플롭의 현재상태 Q(t)가 0일 때 다음상태 Q(t+1)을 1로 만들기 위해서는 세트기능 즉 SR=10을 입력하는 방법밖에는 없으며, SR 플립플롭의 현재상태 Q(t)가 1일 때 다음상태 Q(t+1)을 0으로 만들기 위해서는 리셋기능 즉 SR=01을 입력하는 방법밖에는 없다. 만일 SR 플립플롭의 현재상태 Q(t)가 1일 때 다음상태 Q(t+1)을 1로 만들기 위해서는 현재상태를 그대로 유지시키거나(SR=00) 세트기능을 시켜주면(SR=10) 됨으로 결국 진리표에 나와있는 것과 같이 SR=x0을 입력하면 된다.

JK 플립플롭의 여기표에서 현재상태 Q(t)=0일 때 다음상태 Q(t+1)=0을 만들려면 현재상태를 유지(JK=00)시키거나, 리셋기능(JK=01)을 시키면 됨으로 JK=0x가 되고, 현재상태 Q(t)=0일 때 다음상태 Q(t+1)=1을 만들려면 세트기능(JK=10) 또는 토글기능(JK=11)을 시키면 됨으로 JK=1x가 된다. 현재상태 Q(t)=1일 때 다음상태 Q(t+1)=0을 만들려면 리셋기능(JK=01) 또는 토글기능(JK=11)을 시키면 됨으로 JK=x1이 되고, 현재상태 Q(t)=1일 때 다음상태 Q(t+1)=1을 만들려면 상태를 그대로 유지(JK=00)시키거나, 세트기능(JK=10)을 시키면 됨으로 JK=x0가 된다.

D 플립플롭의 경우에 다음상태 Q(t+1)은 무조건 입력 D 값과 같게 됨으로 그림 8-5(c)의 여기표에서와 같이 D 값은 Q(t+1) 값과 같게 된다.

마지막으로 T 플립플롭은 현재상태 Q(t)=0에서 다음상태 Q(t+1)=0을 만들거나 현재상태 Q(t)=1에서 다음상태 Q(t+1)=1을 만들려면 현상태를 그대로 유지해야 함으로 T=0이 되고, 현재상태 Q(t)=0에서 다음상태 Q(t+1)=1을 만들거나 현재상태 Q(t)=1에서 다음상태 Q(t+1)=0을 만들려면 토글기능을 시켜야 함으로 T=1이 된다.

 

현재상태

다음상태

입력

비고

Q(t)

Q(t+1)

S

R

0

0

0

x

유지 또는 리셋

0

1

1

0

세트

1

0

0

1

리셋

1

1

x

0

유지 또는 세트

(a) SR 플립플롭 여기표

현재상태

다음상태

입력

비고

Q(t)

Q(t+1)

J

K

0

0

0

x

유지 또는 리셋

0

1

1

x

세트 또는 토글

1

0

x

1

리셋 또는 토글

1

1

x

0

유지 또는 세트

(b) JK 플립플롭 여기표

현재상태

다음상태

입력

비고

Q(t)

Q(t+1)

D

0

0

0

입력은 다음상태와 동이

0

1

1

1

0

0

1

1

1

(c) D 플립플롭 여기표

현재상태

다음상태

입력

비고

Q(t)

Q(t+1)

T

0

0

0

유지

0

1

1

토글

1

0

1

토글

1

1

0

유지

(d) T 플립플롭 여기표

 

그림 8-5. 플립플롭 여기표