Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

플립플롭(Flip-Flop)은 순차 논리 디지털 회로의 핵심 구성 요소로, 클럭 신호에 동기화되어 1비트의 데이터를 저장할 수 있는 기본 메모리 소자입니다. 플립플롭에는 여러 종류가 있으며, 이 글에서는 대표적인 플립플롭의 유형과 함께 한 플립플롭을 다른 플립플롭으로 변환하는 규칙과 방법을 자세히 살펴보겠습니다.

플립플롭은 크게 다음 네 가지 유형으로 나눌 수 있습니다.

  • SR 플립플롭
  • D 플립플롭
  • JK 플립플롭
  • T 플립플롭

1. SR 플립플롭

SR 플립플롭은 클럭 신호의 상승 에지(positive transition) 또는 하강 에지(negative transition)에서만 동작합니다. 반면, SR 래치(latch)는 인에이블(enable) 신호가 활성화된 동안 계속 동작한다는 점에서 차이가 있습니다. SR 플립플롭의 회로도는 아래 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 두 개의 입력 S, R과 두 개의 출력 Q(t), Q(t)'를 가집니다. SR 플립플롭의 동작 원리는 SR 래치와 essentially 동일하지만, 활성 인에이블 신호 대신 클럭 신호의 유효한 전이 시점에만 출력에 영향을 준다는 점이 다릅니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

2. D 플립플롭

D 플립플롭 역시 클럭 신호의 상승 에지 또는 하강 에지에서만 동작하며, D 래치는 인에이블 신호로 동작합니다. 즉, D 플립플롭의 출력은 클럭의 유효 전이 시점을 제외하면 입력 D의 변화에 전혀 반응하지 않습니다. D 플립플롭의 회로도는 아래 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 단일 입력 D와 두 개의 출력 Q(t), Q(t)'를 가집니다. D 플립플롭의 동작은 D 래치와 유사하지만, 이 플립플롭 역시 활성 인에이블 대신 클럭 신호의 유효한 전이가 인가될 때만 출력을 갱신합니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

3. JK 플립플롭

JK 플립플롭은 SR 플립플롭의 단점(S=R=1일 때의 금지 상태 문제)을 개선한 수정 버전입니다. 마찬가지로 클럭 신호의 상승 에지 또는 하강 에지에서만 동작하며, 회로도는 아래 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 두 개의 입력 J, K와 두 개의 출력 Q(t), Q(t)'를 가집니다. JK 플립플롭의 동작은 SR 플립플롭과 유사한데, 입력 조합을 모두 활용하기 위해 SR 플립플롭의 입력을 S = J·Q(t)', R = K·Q(t)로 간주하여 분석합니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

4. T 플립플롭

T 플립플롭은 JK 플립플롭을 단순화한 형태로, JK 플립플롭의 두 입력 J와 K에 동일한 입력 'T'를 연결하여 얻을 수 있습니다. 이 역시 클럭 신호의 상승 에지 또는 하강 에지에서만 동작하며, 회로도는 아래 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 단일 입력 T와 두 개의 출력 Q(t), Q(t)'를 가집니다. T 플립플롭의 동작은 JK 플립플롭과 동일하며, J = T, K = T로 설정하여 입력 조합을 2가지로 줄입니다. 즉, J와 K가 서로 보수(complement) 관계가 되는 나머지 두 조합은 T 플립플롭에서 제거된 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

플립플롭 간 변환

이제 한 플립플롭을 다른 플립플롭으로 변환하는 방법을 알아보겠습니다. 변환의 첫 단계는 모든 플립플롭의 여기표(excitation table)를 확인하는 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

SR 플립플롭 → D 플립플롭 변환

여기서 주어진 플립플롭은 SR 플립플롭이고, 원하는 플립플롭은 D 플립플롭입니다. 따라서 먼저 D 플립플롭의 특성표(characteristic table)를 살펴봅니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

SR 플립플롭에는 두 개의 입력 S, R이 있으므로, 현재 상태와 다음 상태의 모든 조합에 대해 SR 플립플롭의 여기값(excitation values)을 작성해야 합니다. 아래 표는 D 플립플롭의 특성표에 SR 플립플롭의 여기 입력을 함께 나타낸 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

입력식을 간소화하기 위해 2변수 K-맵(Karnaugh Map)을 사용할 수 있습니다. S와 R에 대한 K-맵은 아래와 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

간소화 결과 S = D, R = D'를 얻습니다. 이를 바탕으로 한 D 플립플롭의 회로도는 다음 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 SR 플립플롭과 인버터(inverter)로 구성됩니다. 인버터는 입력 D의 보수를 출력으로 생성하므로, 전체 회로는 단일 입력 D와 두 개의 출력 Q(t), Q(t)'를 갖게 되며, 이것이 바로 D 플립플롭입니다. 같은 방식으로 나머지 두 가지 변환도 수행할 수 있습니다.

D 플립플롭 → T 플립플롭 변환

여기서 주어진 플립플롭은 D 플립플롭이고, 원하는 플립플롭은 T 플립플롭입니다. 따라서 T 플립플롭의 특성표를 살펴봅니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

D 플립플롭에는 단일 입력 D만 있으므로, 현재 상태와 다음 상태의 모든 조합에 대해 D 플립플롭의 여기값을 작성합니다. 아래 표는 T 플립플롭의 특성표에 D 플립플롭의 여기 입력을 함께 나타낸 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

위 표에서 D의 부울 함수(Boolean function)를 바로 도출할 수 있습니다. 즉, D = T ⊕ Q(t)이므로 D 플립플롭과 함께 2입력 배타적 OR(XOR) 게이트가 필요합니다. T 플립플롭의 회로도는 다음 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 D 플립플롭과 배타적 OR 게이트로 구성됩니다. XOR 게이트는 T와 Q(t)의 배타적 OR 결과를 출력하므로, 전체 회로는 단일 입력 T와 두 개의 출력 Q(t), Q(t)'를 갖게 되며, 이것이 바로 T 플립플롭입니다. 같은 방식으로 나머지 두 가지 변환도 수행할 수 있습니다.

JK 플립플롭 → T 플립플롭 변환

여기서 주어진 플립플롭은 JK 플립플롭이고, 원하는 플립플롭은 T 플립플롭입니다. 따라서 T 플립플롭의 특성표를 살펴봅니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

JK 플립플롭에는 두 개의 입력 J, K가 있으므로, 현재 상태와 다음 상태의 모든 조합에 대해 JK 플립플롭의 여기값을 작성합니다. 아래 표는 T 플립플롭의 특성표에 JK 플립플롭의 여기 입력을 함께 나타낸 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

두 입력식을 간소화하기 위해 2변수 K-맵을 사용할 수 있습니다. J와 K에 대한 K-맵은 아래와 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

간소화 결과 J = T, K = T를 얻습니다. 이를 바탕으로 한 T 플립플롭의 회로도는 다음 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 JK 플립플롭만으로 구성되며, 별도의 추가 게이트가 필요하지 않습니다. 단순히 동일한 입력 T를 J와 K에 동시에 연결하면 됩니다. 그 결과 전체 회로는 단일 입력 T와 두 개의 출력 Q(t), Q(t)'를 갖게 되며, 이것이 바로 T 플립플롭입니다. 같은 방식으로 나머지 두 가지 변환도 수행할 수 있습니다.

T 플립플롭 → D 플립플롭 변환

여기서 주어진 플립플롭은 T 플립플롭이고, 원하는 플립플롭은 D 플립플롭입니다. 따라서 D 플립플롭의 특성표를 참조하고, 현재 상태와 다음 상태의 모든 조합에 대해 T 플립플롭의 여기값을 작성합니다. 아래 표는 D 플립플롭의 특성표에 T 플립플롭의 여기 입력을 함께 나타낸 것입니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 경우에도 T 플립플롭과 함께 2입력 배타적 OR 게이트가 필요합니다. D 플립플롭의 회로도는 다음 그림과 같습니다.

플립플롭(Flip-Flop)의 종류와 상호 변환 방법 총정리

이 회로는 T 플립플롭과 배타적 OR 게이트로 구성됩니다. XOR 게이트는 D와 Q(t)의 배타적 OR 결과를 출력하므로, 전체 회로는 단일 입력 D와 두 개의 출력 Q(t), Q(t)'를 갖게 되며, 이것이 바로 D 플립플롭입니다. 같은 방식으로 나머지 두 가지 변환도 수행할 수 있습니다.

마무리

지금까지 SR, D, JK, T 플립플롭의 동작 원리와 특성표, 여기표를 활용한 상호 변환 방법을 살펴보았습니다. 이러한 변환 기법은 카운터, 레지스터 등 순차 논리 회로를 설계할 때 매우 유용하게 활용되므로, 특성표와 K-맵을 이용한 간소화 과정을 충분히 연습해 두는 것이 좋습니다.