cs

래치와 플립플롭

aeongsseu 2023. 10. 25. 18:27

래치

래치는 1bit의 정보를 저장하는 회로이다.

가장 기본적인 구조인 nor SR래치를 알아보자

nor SR래치의 회로와 진리표는 아래와 같다. R은 Reset의 r, S는 Set의 S이다.

S를 1로 설정해보자

set

다시 S를 0으로 설정해도 Q값(1)을 기억(memory)하는 모습

return1

이번에는 R을 1로 설정해보자

reset

이번에도 역시 R을 다시 0으로 변경해도 이전 Q값(0)을 기억하는 모습

return0

플립플롭

플립플롭은 트리거가 생긴 래치이다.

clock값이 변경 될 때에만 출력 값이 인풋 값을 기반으로 변경된다.

가장 일반적인 D 플립플롭에 대해 알아보자.

D플립플롭의 회로와 진리표는 아래와 같다. D는 데이터이다.

진리표는 간단하지만 회로는 굉장히 복잡해졌다.

역시 추상화를 하면 내부 구현 그만큼 더 복잡해지는거 같다.

이번에도 역시 그림과 같이 알아보자.

 

 

clock이 0인 상태에서 D를 1로 설정해보겠다.
S=1, R=1상태가 되기에 원래는 일어나며 안되지만 대충 R신호가 더 빨라 Q값이 0이 됐다 가정하겠다.

S신호가 더 빨라 Q값이 1이 됐다 가정해도 이후 결과는 동일하다.

D1C0

이 상태에서 clock을 1로 설정하니 data값(1)이 그제서야 Q값에 반영이 되는 모습

D1C0-D1C1

이 상태에서 clock을 0으로 설정해보겠다.

clock값을 바꾸어도 출력 값(1)에는 변함이 없다.

D1C1-D1C0

전전 상태인 D=1, C=1에서 D를 0으로 설정해보겠다.

D를 바꾸었지만 Q값(1)에는 역시나 변함이 없다.

D1C1-D0C1

이 상태에서(D=0, C=1) clock값을 0으로 바꿔보겠다.

당연히 이번에도 출력 값(1)에는 변함이 없다.

D0C1-D0C0

 

마지막으로 이 상태에서 clock값을 1로 바꿔보겠다.

clock값이 1로 올라가니 data값(1)이 출력 값에 반영이 되는 모습이다.

D0C0-D0C1

 

래치와 플립플롭의 차이점

플립플롭과 래치의 차이를 좀더 명확히 알아보자

플립플롭 Flip Flop FF

1. Edge Sensitive이다.

2. Clock이 있는 synchronous(동기식)이다.

래치 Latch

1. Level Sensitive이다.

2. Clock이 없는 asynchronous(비동기식)이다.

※ 오늘날 대부분의 시스템은 synchronous(동기식)이다.

음! 무슨말인지 전혀 모르겠다.

좀더 이해하기 쉽게 얘기해보자

플립플롭은 edge sensitive이다.

edge는 모서리라는 뜻이다.

즉 한 순간이다.

clock신호가 바뀌는 순간에만 출력 값이 바뀐다.

즉 clock을 바꿀 때 빼고는 어떻게 입력 값을 바꿔도 출력값에 영향이 없다.

플립플롭은 rising edge와 falling edge, change edge 세 종류가 있는데,

clock 값이 1로 변할때 출력 값에 영향을 주는 것이 rising edge

clock 값이 0으로 변할떄 출력 값에 영향을 주는 것이 falling edge

clock값이 바뀔 때 마다 출력 값에 영향을 주는 것이 change edge라 한다.

즉 아래의 사진은 rising edge이다.

출처 : https://pkr7098.tistory.com/225

래치는 level sensitive이다.

level대신 state라고 이해하면 편할듯 하다.

clock값이 0일 경우에는 아무리 입력 값을 바꿔도 출력값이 바뀌지 않지만 1일 경우에는 입력 값을 바꾸는 대로 출력 값에 반영이 된다.

level sensitive라 불리는 이유는 clock의 값이1일 때 high 레벨이고 0일때 low 레벨이기 때문이다.

출처 : https://pkr7098.tistory.com/225

 

 

가장 기본적인 회로들만 알아 본거고 S=1, R=1 상태가 안되는 문제를 해결하기 위한 JK 래치나 D래치가 존재하고 

래치와 플립플롭의 차이에서 래치는 clock이 존재하지 않는다고 했지만 enable이라는 이름으로 clock이 존재한다.

 

플립플롭또한 T ff나 master-slave ff같이 다른 종류의 ff가 존재한다.