[순차회로] 플립플롭

2021. 7. 25. 16:01개발/컴퓨터구조

오늘은 플립플롭(Flip-Flop)에 대해서 학습한 내용을 기록한다. 

 

래치와 플립플롭의 차이


래치와 플립플롭은 동일한 기능(1bit 기억)을 가지고 있다. 단지 입력된 값을 어느 타이밍에 결과에 반영하는지에 대한 차이점 밖에 없다. 입력값이 결과에 반영되는 순간을 나타내는 것을 Trigger라고 부르며 Trigger의 종류에는 어떤 종류가 있고 래치와 플립플롭이 어떤 Trigger 방식을 사용하는지 살펴본다. 


 

트리거의 종류 


Trigger는 Level trigger와 Edge Trigger로 나눌수 있는데 각각의 trigger는 다시 positive와 negative로 나뉜다. 

그림에서도 알수 있듯이 클럭이 변화되는 순간상태에 따라 계산수행 여부를 판단하는 것을 Edge trigger방식이라 부른다. 반대로 클럭의 변화가 있기전까지 계속해서 계산을 수행하는 것(또는 수행하지 않는 상태를 유지하는 것)을 Level trigger 방식이라 부른다.

회로도에서 각 trigger는 아래와 같이 표기한다.

출처 - Flip Flop Triggering-HIGH,LOW,POSITIVE,and NEGATIVE Edge Triggering (circuitstoday.com)

 

입력쪽에 있는 동그란 기호를 Bubble이라고 부른다.

출처 - Flip Flop Triggering-HIGH,LOW,POSITIVE,and NEGATIVE Edge Triggering (circuitstoday.com)
출처 - Flip Flop Triggering-HIGH,LOW,POSITIVE,and NEGATIVE Edge Triggering (circuitstoday.com)
출처 - Flip Flop Triggering-HIGH,LOW,POSITIVE,and NEGATIVE Edge Triggering (circuitstoday.com)

 

 

래치는 Level trigger 방식을 사용하며, 플립플롭은 Edge Trigger 방식을 사용한다. 

래치의 Level Trigger 방식에는 하나의 결함이 있는데 타이밍 다이어그램을 통해 어떤 문제가 있는지 알아보자.

 

 

Level Trigger 방식의 문제점과 대안


아래는 Gated D latch의 진리표이다. E/C는 Enable 또는 Clock 입력을 의미한다.  

Clock이 1인 경우는 입력된 D값이 그대로 출력 Q로 나오며, Clock이 0인 경우 이전의 출력(q)이 현재의 출력(Q)으로 나오게된다.

출처 : 플립플롭 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

 

위 진리표를 머리속에 잘 넣어두고 아래의 예시를 보자. Positive level trigger는 Clock이 1인 경우에 입력을 결과로 출력한다. ( 아래 그림에서 번호가 적혀있는 구간의 D가 Q로 반영되는 모습을 확인할 수 있다. )

하지만 3번 영역같이 D가 입력이 되면 문제가 발생한다. 즉, 1 클럭에 2개의 입력이 발생하게 된다.( 입력이 Race condition 상태가 된다. ) 3번 영역에서 분명 0으로 D를 입력했는데 외부적 요인에 의해 순간적으로 입력이 1로 변경되어 출력이 1로 나오는 현상이 발생한다. 

Positive level trigger 예시

 

위와 같은 문제를 해결하기 위해 플립플롭(Edge trigger방식을 사용하는 래치)을 사용하면 된다. 아래는 Postive edge trigger 방식의 타이밍 다이어그램이다. 

Positive edge trigger 방식은 클럭이 상승하는 순간의 입력D가 출력 Q에 반영된다. 따라서 Positive level trigger에서 발생한 문제를 플립플롭에선 해결할 수 있게된다.

Positive edge trigger 예시

 


참고자료


Edge-triggered Latches: Flip-Flops | Multivibrators | Electronics Textbook (allaboutcircuits.com)

 

 

 

Introduction to Latches

Definition: Latch is an electronic logic circuit with two stable states i.e. it is a bistable multivibrator. Latch has a feedback path to retain the information. Hence a latch can be a memory device. Latch can store one bit of information as long as the de

www.electronicshub.org

 

'개발 > 컴퓨터구조' 카테고리의 다른 글

[순차회로] 래치  (2) 2021.07.24
클럭(Clock)  (0) 2021.07.18
스위치부터 집적회로까지  (0) 2021.07.17