📚개요

  • 조합논리회로: 현재 시간의 입력에 의해 출력이 결정
  • 순서논리회로: 조합논리회로에 저장요소를 추가한 회로

SequentialLogicCircuits

순서논리회로는 신호의 타이밍에 따라 동기 순서논리회로와 비동기 순서논리회로로 나누어집니다.

  • 비동기 순서논리회로

비동기 순서논리회로는 회로의 상태가 어느 순간에나 입력변화에 따라 변화하는 회로입니다. 비동기 순서논리회로에 사용되는 저장요소는 시간지연소자입니다. 시간지연소자는 신호가 전달되려면 일정한 시간이 걸리므로 기억능력을 갖게 됩니다.

논리게이트로 구성되는 시간지연소자는 게이트간의 피드백 때문에 예측하지 않았던 상태로 작동하기도 하고 불안정한 상태가 되기도 하기 때문에 자주 사용되지 않습니다.


  • 동기 순서논리회로

동기 순서논리회로는 특정 순간에서만 저장요소의 내용을 변화시킬 수 있는 신호를 사용합니다. 신호는 일정시간 간격으로 클럭 펄스를 제공하는 클럭 발생기라는 장치를 이용하여 만들 수 있습니다.

클럭 펄스는 저장요소가 펄스 도착 순간에만 입력값에 따라 변화할 수 있도록 시스템 전체에 제공되어야 합니다. 이처럼 저장요소 입력에 클럭 펄스를 제공하는 동기 순서논리회로를 클럭을 가진 순서논리회로라고 하고 가장 많이 사용되는 순서논리회로입니다. 클럭을 가진 순서논리회로는 플립플롭이라는 저장요소를 사용합니다.




📚플립플롭

플립플롭(F/F, Flip Flop)은 입렵신호가 상태를 바꾸도록 지시할 때까지 현재의 2진 상태를 유지하는 논리소자입니다. 쉽게 말해 1비트의 2진 정보를 저장할 수 있는 장치입니다. 그리고 플립플롭은 클럭 신호에 의해 출력상태를 바꿉니다.

  • 플립플롭의 종류
    • SR 래치: 넓은 의미의 플립플롭입니다. 래치는 클럭 신호에 관계없이 모든 입력을 계속 감시하다가 클럭과는 관계없이 언제든지 출력을 변화시키는 비동기 순서논리소자입니다.
      플립플롭과 래치는 모두 2개의 안정상태를 갖는 쌍안정 상태의 1비트 기억 소자로 기본적으로 같은 기능을 지니는데 단지 트리거되는 방법만 다릅니다. 래치는 게이트 또는 구동입력이 1일 때 출력상태를 바꿀 수 있습니다.

    • RS 플립플롭, D 플립플롭, JK F/F, T F/F, 마스터-슬레이브 F/F: 플립플롭은 동기 순서논리소자입니다. 또한 플립플롭은 클럭 입력이라고 부르는 트리거 신호의 천이에 의해 자유롭게 출력상태를 바꿉니다. 트리거는 동작의 시작을 의미하고 구동입력에 해당합니다.



📄SR 래치

SR 래치는 2개의 NOR 게이트나 2개의 NAND 게이트로 구성할 수 있고 각각 세트와 리셋의 두 입력을 갖습니다.

  • NOR 게이트로 구성한 SR 래치

NOR_SR_Latch

NOR 게이트로 된 SR 래치의 동작은 아래와 같습니다.

Enable_NOR_SR_Latch


  • NAND 게이트로 구성한 SR 래치

NAND_SR_Latch

NAND 게이트로 된 SR 래치는 NOR 게이트로 구성된 SR 래치와 수행기능은 동일합니다. 하지만 입력에 따른 출력의 동작은 반대가 됩니다.


  • 제어입력을 가진 SR 래치(RS 플립플롭)

SR 래치는 비동기 순서논리회로에 속하고 여기에 게이트를 추가하여 래치가 한 클럭 펄스 발생기간 동안에만 입력에 응답하도록 만들어서 SR 래치의 동작을 개선할 수 있습니다. 이렇게 개선된 래치를 클럭을 가진 SR 래치 또는 클럭을 가진 RS 플립플롭이라고 합니다. RS 플립플롭은 동기 순서논리회로에 속합니다.

RS_FF

RS 플립플롭은 SR 래치를 개선하였지만 세 입력 모두 1일 때 어떤 값으로도 결정할 수 없는 상태가 발생한다는 문제가 있습니다. 이것은 3개의 1이 내부 SR 래치의 양쪽 입력값을 모두 0으로 만들어 내부 NAND 게이트를 미정상태로 만들기 때문입니다.

제어입력이 다시 0으로 될 때 다음 상태는 두 입력 S, R 중 어느 것이 먼저 1로 되는 가에 따라 결정되기 때문에 다음 상태를 정확히 예측할 수 없습니다. 이런 문제점을 해결하기 위해 D 플립플롭, JK 플립플롭 등이 제안되었습니다.



📄D 플립플롭

D 플립플롭은 RS 플립플롭의 문제점을 해결하기 위해 제안된 방법입니다. RS 플립플롭의 미정상태를 제거하기는 방법으로 S, R이 동시에 1을 갖지 않도록 하였습니다.

D_FF

D_FF_Circuits



📄JK 플립플롭

JK 플립플롭은 디지털 시스템에서 가장 많이 사용되는 플립플롭입니다. RS 플립플롭에서 나타나는 미정상태를 정의해 사용할 수 있도록 RS 플립플롭을 개량한 형태입니다.

JK_FF

JK_FF_Circuits



📄T 플립플롭

T 플립플롭은 JK 플립플롭의 변화된 형태로 JK 플립플롭의 두 입력을 하나로 묶어서 만든 것입니다. 명칭 T는 상태를 반전한다는 토글에서 유래하였습니다.

T_FF




📚플립플롭의 트리거링

📄트리거

플립플롭의 상태는 제어입력시놓의 순간적인 변화에 따라 바뀝니다. 순간적인 변화를 트리거라고 하고 이것을 일으키는 변이를 ‘플립플롭을 트리거한다’라고 말합니다.

D 플립플롭은 제어입력으로 클럭펄스가 사용되는데 이 클럭펄스가 논리-1 레벨로 변할 때마다 트리거 됩니다.



📄트리거 방법

  • 레벨 트리거 방법
    • 클럭펄스가 논리-1인 동안 내내 입력이 출력에 영향을 미칩니다.
  • 에지 트리거 방법
    • 클럭펄스의 에지, 상승 에지나 하강 에지 동안에 입력이 출력에 영향을 미치게 됩니다.
      • 상승 에지: 클럭펄스에 있어서 논리상태가 논리-0에서 논리-1로 천이하는 것
      • 하강 에지: 반대로 논리상태가 논리-1에서 논리-0으로 천이하는 것

Trigger


📄레벨 트리거 방법

레벨 트리거 방법은 클럭펄스의 활동레벨, 즉 논리-1 상태 동안에서만 입력 변화에 따라 출력이 변화합니다.

따라서 클럭펄스 ①의 활동레벨 시작에서 입력이 R=1, S=0이므로 출력은 Q=0이 됩니다.

이때 클럭펄스 ①의 논리-1 상태를 유지하는 중간부분에서 입력이 R=0, S=1로 바뀌게 되므로 입력이 바뀌는 시점에서 출력 Q=1상태로 파형이 바뀌게 됩니다.

다음으로 클럭펄스가 비 활동레벨, 즉 논리-0 상태 동안에는 전 상태가 유지됩니다.

LevelTrigger


📄에지 트리거 방법

에지 트리거 방법은 클럭펄스의 에지, 즉 상승 에지나 하강 에지 동안에만 입력이 출력에 영향을 미칩니다. 클럭펄스가 1 또는 0 상태를 유지하는 동안은 동작하지 않습니다.

우선 상승 에지 트리거 시 출력상태 변화를 보면 클럭펄스 ①의 상승 에지에서 R=0, S=1이므로 출력은 세트상태를 나타냅니다.

다음 클럭펄스 ②의 상승 에지 시 까지는 플립플롭이 입력의 변화에 따라 동작하지 않으므로 전 상태를 유지합니다.

다음 클럭펄스 ②의 상승 에지 시점에서 R=1,S=0 이므로 출력은 리셋상태를 나타냅니다.

EdgeTrigger



📄마스터-슬레이브 플립플롭

JK 플립플롭은 RS 플립플롭의 문제점을 개선한 플립플롭이지만 여전히 문제점을 가지고 있습니다. 입력 J와 K가 모두 1일 때 출력이 보수가 취해진 다음에 클럭 펄스가 남아 있으면 또다시 보수를 취하는 반복적인 출력변화를 나타내는 레이스 현상이 발생합니다. 이 문제점을 해결하는 방법으로 에지 트리거 방법과 마스터-슬레이브 플립플롭이 사용됩니다.

마스터-슬레이브 플립플롭은 주와 종의 역할을 하는 2개의 별도인 플립플롭으로 구성됩니다. 마스터-슬레이브 플립플롭은 클럭 펄스의 상승 에지에서 첫 번째 플립플롭(마스터)을 세트하고 클럭 펄스의 하강 에지에서 두 번째 플립플롭(슬레이브)에 신호를 전달하도록 구성되어 있습니다. 또한 기존의 플립플롭에 인버터를 추가하는 형태로 만들 수 있습니다.

  • RS 플렙플롭을 이용한 마스터-슬레이브 플립플롭

Master_Slave_RS_FF


  • D 플렙플롭을 이용한 마스터-슬레이브 플립플롭

Master_Slave_D_FF


  • JK 플렙플롭을 이용한 마스터-슬레이브 플립플롭

Master_Slave_JK_FF



Leave a comment