본문 바로가기
컴퓨터 공학/논리회로

[논리 회로] 8장. 플립플롭

by kim-dev 2024. 6. 7.
반응형

본 내용은 2024년 1학기 '컴퓨터논리개론' 수업을 들으며 노션에다가 정리한 글을 옮겨온 포스트입니다.
제 공부를 위해 작성한 거라서 제가 알아보기 편하게  정리했습니다. 여러분들도 자유자재로 열람 가능하지만 간혹 이해하기 힘든 부분이 있을 수도 있다는 점 양해 부탁드립니다!


1) 기본적인 플립플롭

조합논리회로에서 출력은 현재 입력의 조합에 의해서만 결정된다. 그러나 순서논리회로에서 출력은, 현재 입력의 조합입력이 인가되는 시점의 회로 상태(High/Low)에도 영향을 받아 출력이 결정된다.

→ 회로의 상태를 기억하는 기억 소자(래치, 플립플롭)가 필요!

  • 래치: 클록 신호에 관계없이 모든 입력을 계속 감시하다가 클록에 관계없이 언제든지 출력을 변화
  • 플립플롭: 클록 신호에 따라 정해진 시점에서의 입력을 출력에 저장

기본적인 플립플롭 회로는 NOR 게이트 또는 NAND 게이트 2개로 구성할 수 있다. → 래치 회로!

이게 가장 기본적인 SR 래치 회로인데, S는 Set, R은 Reset이며 출력은 Q와 로 구성되어 있다.

Q와 가 보수 상태가 되어야 정상 상태가 됨!

 

(1) NOR 게이트로 구성된 SR 래치

 

(2) NAND 게이트로 구성된 SR 래치

 

2) SR 플립플롭

기본적인 SR 래치는 클록 펄스(CP) 입력과 무관하게 동작하므로 비동기식 SR 플립플롭이라고 할 수 있다. 그러나 순서논리회로에서는 대부분 클록 펄스에 동기시켜서 동작시킨다.

 

(1) 클록형 SR 플립플롭

NOR 게이트를 이용한 SR 래치 회로 앞에 AND 게이트 2개를 연결하고 공통 단자에 클록 펄스를 인가한 클록형 SR 플립플롭 회로.

  • CP가 0인 경우: 앞단의 AND 게이트들의 출력이 모두 0이므로 플립플롭의 출력 𝑄𝑄ˉ는 변하지 않는다.
  • CP가 1인 경우: 래치와 같은 동작을 한다.
 

이 특성표에서 부정 상태를 무관 상태로 하여 카르노 맵을 그린 후 출력 𝑄(𝑡+1)에 대한 불 함수를 구해보면 다음과 같다.

여기서 𝑆𝑅=0을 포함한 이유는 𝑆=𝑅=1인 경우는 허용될 수 없음을 나타내기 위함이며, 𝑄(𝑡+1)을 SR 플립플롭의 특성 방정식이라고 한다.

NAND 게이트를 이용한 SR 래치 회로로도 똑같이 클록형 SR 플립플롭의 회로를 설계할 수 있다.

 

(2) 에지 트리거 SR 플립플롭

클록형 SR 플립플롭은 기본적으로 궤환(feedback)이 존재하는 회로이며, 클록 펄스가 1인 상태에서 모든 동작이 수행된다. → 플립플롭의 동작 시간보다도 클록 펄스의 지속 시간이 길게 되면 플립플롭은 예측하지 못한 동작을 할 여지가 있음.

이러한 문제를 해결하는 방법 중 하나가 바로 에지 트리거를 이용하는 것!

  • 레벨 트리거: 클록이 1이면 계속해서 입력을 받아들임. 앞에서 본 클록형 플립플롭!
  • 에지 트리거: 클록이 0에서 1로 변하거나 1에서 0으로 변하는 순간에만 입력을 받아들임.

일반적으로 에지 트리거를 하면 플립플롭이라고 하고, 레벨 트리거를 하거나 클록을 사용하지 않으면 래치라고 한다.

에지 트리거 SR 플립플롭에서는 입력 S와 R에 입력되는 정보가 클록 펄스의 에지 트리거에서만 동작 → S와 R 입력을 동기 입력이라고 한다.

여튼 이렇게 상승/하강 에지에서 짧은 전이만 일어나게 하여 지속시간이 짧은 펄스를 만들기 위한 회로가 바로 펄스 전이 검출기임. → 이걸 CP에 붙여준다!

여튼 이렇게, 상승 에지 트리거는 펄스가 0에서 1로 상승할 때에만 출력이 변하고, 하강 에지 트리거는 펄스가 1에서 0으로 하강할 때에만 출력이 변한다.

 
 
 

(3) 주종형 SR 플립플롭

레벨 트리거링의 문제를 해결할 수 있는 또다른 방법으로 주종형 플립플롭이 있다.

  • 주 플립플롭
  • 종 플립플롭
  • NOT 게이트

로 구성됨!

  • CP = 0인 경우 주 플립플롭은 동작하지 않고, 종 플립플롭만 동작하여 𝑄=𝑌 𝑄ˉ=𝑌ˉ를 출력.
  • CP = 1인 경우 종 플립플롭은 동작하지 않고, 주 플립플롭만 동작하여 Y에 출력이 인가됨. 이후 CP가 0으로 바뀌면, 해당 상태의 Q가 출력 Y와 같은 값을 가지게 된다.

주종형 플립플롭은 (하강) 에지 트리거링 방식처럼 보이지만 실제로 에지 트리거링 방식은 아님. 그리고 클록이 1인 동안은 계속해서 외부에서 입력을 받아들이고 있으므로 불안정할 수도 있기 때문에, 에지 트리거링이 더 좋은 방식이라고 할 수 있다.

 

3) D 플립플롭

클록형 SR 플립플롭에서 원하지 않는 상태 (S=R=1)를 제거하는 한 가지 방법은, S와 R의 입력이 동시에 1이 되지 않도록 보장하는 것임!

→ SR 플립플롭을 변형하여 D 플립플롭이 설계됨!

여기서 D는 Delay에서 유래한 것!


(1) 클록형 D 플립플롭

입력 신호 D가 CP에 동기되어 그대로 출력에 전달된다.

→ 입력 D에 의해 출력 Q가 1비트 타임 전 상태와 같게 동작!

위 그림은 NAND 게이트로 구성된 D 플립플롭인데, CP가 0인 경우에는 Q를 변화시킬 수 없고, CP가 1인 경우에만 입력 D와 출력 Q가 같아진다!

 
 

결국 D 플립플롭은, 입력 D의 상태를 1비트 타임만큼 지연하는 기능이 있는 것!


(2) 에지 트리거 D 플립플롭

D 플립플롭의 클록 펄스 입력에 펄스 전이 검출기를 추가하면 에지 트리거 D 플립플롭을 구성할 수 있다.

클록 펄스의 상승 에지 또는 하강 에지에서 출력의 상태가 변한다는 점을 제외하면 기본적으로 클록형 D 플립플롭과 동일함.


(3) 주종형 D 플립플롭

주종형 SR 플립플롭과 마찬가지로, 주 플립플롭의 클록 입력에는 클록 펄스가 그대로 입력되고, 종 플립플롭의 클록 입력에는 반전된 클록 펄스가 입력된다.

 
 
 

4) JK 플립플롭

SR 플립플롭에서, S와 R이 동시에 1이 되지 않게 보장하는 방법 중 다른 하나는 바로 JK 플립플롭을 사용하는 것이다.

JK 플립플롭의 J는 S(Set)에, K는 R(Rest)에 대응시킨다.

SR 플립플롭과 다른 점은, JK 플립플롭은 J=1, K=1인 경우 JK 플립플롭의 출력은 이전 출력의 보수 상태로 바뀐다는 것임!

  • 𝑄(𝑡)=0이면 𝑄(𝑡+1)=1이 된다.
  • 𝑄(𝑡)=1이면 𝑄(𝑡+1)=0이 된다.

(1) 클록형 JK 플립플롭

우선, 이 회로는 CP=0인 경우에는 출력을 변화시킬 수 없고, CP=1인 경우에만 동작하는 회로이다.


(2) 에지 트리거 JK 플립플롭

클록형 JK 플립플롭은 단점이 있다. 클록 펄스가 충분히 길고, J=1, K=1이 이어지는 경우라면 플립플롭의 출력이 보수가 된 후에도 계속해서 클록 펄스가 1이므로 플립플롭은 변화된 출력 신호에 의해 또다시 동작하게 될 수 있는 것!

클록 펄스에 제한을 두어야 하는데, 이러한 단점을 수정한 플립플롭이 에지 트리거 JK 플립플롭!

에지 트리거 JK 플립플롭은, 늘 그래왔듯 JK 플립플롭의 클록 펄스 입력에 펄스 전이 검출기를 추가하여 구성할 수 있다.

클록 펄스의 상승 에지 또는 하강 에지에서 출력의 상태가 변한다는 점을 제외하면 기본적으로 클록형 JK 플립플롭과 동일함.


(3) 주종형 JK 플립플롭

이것도 언제나 그랬듯 주 플립플롭의 클록 입력에는 클록 펄스가 그대로 입력되고, 종 플립플롭의 클록 입력에는 반전된 클록 펄스가 입력된다.

 

5) T 플립플롭

JK 플립플롭의 J와 K의 입력을 묶어서 한 입력 신호 T로 동작시키는 플립플롭! → JK 플립플롭의 동작 중에서 입력이 모두 0이거나 1인 경우만을 이용하는 플립플롭임!

즉 여기서 T는 Toggle에서 유래한 것…


(1) 클록형 T 플립플롭

  • T=0인 경우: J=0, K=0인 JK 플립플롭과 같이 동작하므로 출력은 변하지 않는다.
  • T=1인 경우: J=1, K=1인 JK 플립플롭과 같이 동작하므로 출력은 보수가 된다.


(2) 에지 트리거 T 플립플롭

에지 트리거 JK 플립플롭의 J와 K 입력을 묶어 하나가 되게 구성한 것.

  • T 입력이 논리 0일 때 → 출력 Q는 현재 상태를 유지.
  • T 입력이 논리 1일 때 → 출력 Q는 보수 상태로 변화.
 
 
 

6) 비동기 입력

지금까지 배운 플립플롭들은 클록 펄스가 동작하는 동안에만 플립플롭이 동작하는 동기 입력이었다.

  • 동기 입력: 클록 펄스를 통해 플립플롭의 상태를 변화시킨다.
  • 비동기 입력: 클록 펄스와 관계 없이 비동기적으로 변화시킬 수 있다.

 

7) 플립플롭의 동작 특성

플립플롭의 동작 특성은 디지털 논리 게이트의 전기적 특성과 매우 유사하지만 조금씩 다르다.


(1) 전파 지연시간

입력 신호가 가해진 후 출력에 변화가 일어날 때까지의 시간 간격. → CP(𝑃𝑅ˉ, 𝐶𝐿𝑅ˉ)의 변화가 50%일 때부터 Q의 변화가 50%가 될 때까지 측정한다.

  • 𝑡𝑃𝐿𝐻: 논리 0에서 논리 1까지의 시간.𝑃𝑅ˉ이 입력되어 출력이 0에서 1로 변하는 시간
  • 𝑡𝑃𝐻𝐿: 논리 1에서 논리 0까지의 시간.𝐶𝐿𝑅ˉ이 입력되어 출력이 1에서 0으로 변하는 시간

 

(2) 설정 시간

플립플롭의 입력 신호가 플립플롭에서 안전하게 동작할 수 있게 하는 시간. 클록 펄스의 상승 에지 전이 전에, 입력값은 일정 시간 동안 유지해 주어야 하는데 이 때 필요한 시간 간격이 설정시간인 것.

 

(3) 유지 시간

이것도 마찬가지로 플립플롭이 신뢰성 있게 동작할 수 있도록 하는 시간임. 정상적인 동작을 위해 클록 펄스가 상승 에지 전이 후에도 입력값이 변하면 안 되는 일정한 시간이 있는데, 이 때 필요한 시간 간격!

 

(4) 펄스 폭

플립플롭은 클록 입력에 입력되는 클록 펄스의 상승 에지 또는 하강 에지에서 동작하므로, 상승 에지 또는 하강 에지의 펄스 폭이 어느 정도 유지되어야만 플립플롭이 정확하게 동작할 수 있다.

플립플롭이 정확하게 동작하기 위한 최소 펄스 폭은 일반적으로 플립플롭의 preset과 clear 입력의 펄스로 규정하고 있는데, 즉 최소 논리 1 시간과 최소 논리 0 시간으로 규정.


(5) 최대 클록 주파수

플립플롭은 클록 펄스를 통해 동작하므로 클록 주파수는 플립플롭의 동작 속도를 결정하는 중요한 파라미터임.

최대 클록 주파수는 플립플롭이 안전하게 동작할 수 있는 최대 주파수!

이 주파수를 초과하면 정확하게 동작할 수 없기 때문에, 항상 최대 클록 주파수 이하에서 동작해야 한다.

 

(6) 전력 소모

플립플롭이 동작하는 데 필요한 전체 전력. 공급 전압 𝑉𝐶𝐶와 공급 전류 𝐼𝐶𝐶의 곱으로 구함!

플립플롭의 공급 전압은 일정하지만, 공급 전류는 플립플롭의 동작에 따라 달라진다.