플립플롭

Bam·2025년 9월 24일
0

디지털 논리회로

목록 보기
10/14
post-thumbnail

플립플롭

순서논리회로에서는 입력뿐만 아니라 입력 시점의 회로 상태(LOW/HIGH)에도 영향을 받아 출력이 결정됩니다. 따라서 순서논리회로를 구성할 때는 회로의 상태를 저장할 수 있는 기억소자가 필요한데, 이 기억소자로 사용되는 것들 중 플립플롭, 래치는 쌍안정 상태 중 하나를 갖게 되는 1비트 기억소자입니다.

지난 포스트들에서 다룬 조합논리회로는 입력들의 조합에 의해서만 출력이 결정되었습니다.

플립플롭은 클록 신호에 따라 정해진 시점에서의 입력을 sample하여 출력에 저장하는 동기식 순서논리소자입니다. 래치는 클록 신호에 관계없이 모든 입력을 계속 감시하다가 클록에 관계없이 언제든 출력을 변화시키는 비동기식 순서논리소자입니다.

플립플롭에는 SR, D, JK, T 플립플롭이 있으며 기본적인 플립플롭 회로는 NOR 또는 NAND 게이트로 구성할 수 있습니다. 이때 이들을 NOR 게이트 래치, NAND 게이트 래치라고 합니다.

NOR 게이트 SR 래치

SR 래치는 S(set)과 R(Reset)으로 표기되는 2개의 입력과 Q, Q'로 표기되는 2개의 출력으로 구성되며 이 두 개의 출력이 서로 보수 상태가 되어야 정상 상태의 래치 회로가 됩니다.

NOR 게이트로 구성된 SR 래치의 회로도는 다음과 같습니다.

이미지 출처
https://www.geeksforgeeks.org/digital-logic/latches-in-digital-logic/

R 입력단의 출력이 S 입력에 연결되고, S 입력단의 출력이 R 입력에 연결됩니다. 이에 따른 진리표는 다음과 같습니다.

SRQ(t + 1)
00Q(t) 불변
010
101
11부정

Q(t + 1)는 입력이 인가된 이후의 상태, Q(t)는 입력이 인가되기 전의 상태를 의미

이때 중요한 것으 S와 R입력이 모두 1인 경우인데, 이때는 서로 보수 상태가 아닌 부정의 상태(Q. Q'가 모두 0)가 되어 정상적으로 동작할 수 없어서 입력을 모두 1로 주는 것은 금지되고 있습니다. 또한 이러한 이유로 인해 SR 계열의 플립플롭, 래치가 잘 사용되지 않는 이유가 되기도 합니다.

NAND 게이트 SR 래치

NAND 게이트로 구성된 SR 래치 회로도와 진리표는 다음과 같습니다.

이미지 출처
https://www.geeksforgeeks.org/digital-logic/latches-in-digital-logic/

SRQ(t + 1)
00부정
010
101
11Q(t) 불변

마찬가지로 입력이 모두 0일 때 부정 상태가 되므로 입력이 둘 다 0으로 되는 것은 금지됩니다.


SR 플립플롭

클록형 SR 플립플롭

위에서 본 SR 래치는 클록펄스(CP)와 무관하게 동작하기 때문에 비동기식 SR 플립플롭의 동작을 보여줍니다. 실제로 순서논리회로에서 대부분은 클록펄스에 동기화하여 사용합니다.

클록펄스는 회로 내에서 동작하는 모든 장치들의 동작들을 동기화하기 위해 사용하는 신호입니다.

클록형 SR 플립플롭은 NOR 게이트 SR 래치 회로 앞에 AND 게이트 2개를 연결하고 클록펄스를 연결한 소자입니다. 클록형 SR 플립플롭의 회로도, 진리표, 논리기호는 다음과 같습니다.

이미지 출처
https://worldofcomputing.net/digital-electronics/sr-flip-flop.html

CPSRQ(t+1)
100Q(t) 불변
1010
1101
111부정

이 진리표를 기반으로 SR 플립플롭의 특성표를 나타내면 다음과 같습니다.

Q(t)SRQ(t+1)
0000
0010
0101
011부정
1001
1010
1101
111부정

에지 트리거 SR 플립플롭

구조상 클록형 SR 플립플롭은 피드백이 존재하고 클록펄스가 1인 상태에서 동작하게 됩니다. 이때 플립플롭의 동작보다 클록펄스의 지속시간이 길다면 예측하지 못한 동작이 발생하게 됩니다.

이러한 문제를 해결하기 위해 에지 트리거 edge trigger를 사용하는 방법이 있습니다. 플립플롭에서 출력은 입력신호의 순간적 변화에 따라 결정되는데 이러한 변화를 트리거라고 부릅니다. 앞에서 본 클록형은 1이면 계속해서 입력을 받아들이는 레벨형 트리거를 수행합니다. 이와 다르게 에지 트리거는 플립플롭 내부 구조를 변경하여 클록이 0 -> 1, 1 -> 0으로 변화하는 순간에만 입력을 받아들이는 방식입니다.위 기호도처럼 플립플롭에 들어가는 클록펄스에 검출기를 추가하여 변화하는 순간에만 입력을 받아들이도록 합니다.


D 플립플롭

클록형 D 플립플롭

D 플립플롭은 SR에서 입력이 모두 1이되어 부정상태가 되지 않도록 보장하기 위한 변형된 플립플롭입니다.

회로도는 다음과 같이 입력 신호 D가 클록펄스에 동기되어 출력에 전달되는 형태를 취하고 있습니다.

다음은 D 플립플롭의 진리표과 진리표 기반의 특성표입니다.

CPDQ(t+1)
100
111

Q(t)DQ(t+1)
000
011
100
111

D 플립플롭 또한 펄스전이검출기를 추가하여 에지 트리거 D 플립플롭을 구현할 수 있습니다. 펄스의 상태 변화 시점에서 동작한다는 것 외에는 클록형과 동일합니다.


JK 플립플롭

클록형 JK 플립플롭

마찬가지로 JK 플립플롭 또한 SR의 입력이 동시에 1이 되지 않도록 개선한 플립플롭입니다. J가 S, K가 R에 대응되는 입력이 됩니다.

JK 플립플롭의 가장 큰 특징은 J와 K가 모두 1인 경우 이전 출력의 보수상태가 된다는 점입니다. JK 플립플롭의 기호, 회로도, 진리표, 특성표는 다음과 같습니다.

CPJKQ(t+1)
100Q(t) 불변
1010
1101
111Q(t)' toggle

Q(t)JKQ(t+1)
0000
0010
0101
0111
1001
1010
1101
1110

마찬가지로 JK 플립플롭 또한 에지 트리거로 구성할 수 있는데, 상태 에지에서의 변화한다는 점을 제외하면 클록형과 동일하게 동작합니다.


T 플립플롭

클록형 T 플립플롭

T 플립플롭은 JK 플립플롭에서 입력 J와 K를 하나의 입력 T로 묶어서 동작하는 플립플롭입니다. 그렇기 때문에 T 플립플롭은 JK 플립플롭에서 입력이 모두 0이거나 1인 경우만을 사용하는 플립플롭이라고 할 수 있습니다.

이러한 동작 특성으로 T 플립플롭은 이전 상태에 대해 토글을 수행하는 것 처럼 보여져서 토글 플립플롭이라고 부르기도 합니다.

T 플립플롭의 회로도, 진리표, 특성표는 다음과 같습니다.

CPTQ(t+1)
10Q(t)
11Q(t)' 토글

Q(t)TQ(t+1)
000
011
101
110

비동기 입력 플립플롭

지금까지 설명한 플립플롭들은 클록펄스가 동작하는 동안에만 플립플롭이 동작합니다. 이에따라 입력은 클록펄스에 동기되어 출력에 전달되기 때문에 동기 입력 플립플롭이라고 할 수 있습니다.

다음 기호와 같이 클록펄스와 관계없이 비동기적으로 변화시킬 수 잇는 비동기 입력 PRE(Preset), CLR(Clear) 입력을 사용하는 플립플롭도 있습니다.

0개의 댓글