전에 RS래치의 전구가 이어져 있는 버젼에서 회로를 다음과 같이 바꿔보자.
앞서 말했듯이 이 회로는 S가 1이었던 것을 Q가 기억하는 회로이다. 이러한 메모리 기능을 특정 순간에만 사용하기 위해서,RS래치에 클록 및 pulse detector circuit을 달아서 RS플립플롭을 만든다.
오실레이터라고도 하는데 0과 1의 신호를 교차로 발생시키는 회로를 말한다.
즉 위 그림에서 Input의 신호를 만드는 기기가 바로 클록이다. 여기에 pulse detector circuit을 붙이면 Output과 같은 신호가 나온다. 여기서 pulse detector circuit은 클록 신호가 0에서 1로 바뀌는 순간(Edge라고 한다.)에 1의 신호를 만들어 낸다. 비유적으로 설명하면 순간순간 스파크가 튀기게 만드는 기기라고 할 수 있다.
RS래치에 R과 S쪽에 AND게이트를 통해 클록 및 pulse detector를 붙여 특정 순간에만 작동 가능하게 만들 것이 RS플립플롭이다. 즉, 이 회로는 클록+pulse detector가 1의 신호를 보낼 때만 RS래치가 정상적으로 작동되고, 0의 신호를 보내는 순간은 RS래치는 작동하지 않는다.
RS플립플롭도 만능이 아닌데 RS플립플롭의 문제점은 R과 S가 모두 1일 경우 회로가 불안정해져 데이터 손실이 일어날 수 있다는 것이다. 이렇게 회로가 불안정해지는 것을 레이스 현상이라고 한다.
레이스 현상은 이해가 잘 되지 않아서 내 친구 gpt에게 물어봤다.
레이스 현상은 여러 입력 신호가 동시에 발생하거나 각 입력 신호의 도착 시간이 매우 근접하여 플립플롭의 출력 상태를 예측하기 어려운 상황을 나타냅니다. RS 플립플롭의 입력은 주로 R(Reset)와 S(Set) 신호로 구성되며, 이 두 입력이 어떤 순서로 발생하느냐에 따라 플립플롭의 출력이 다를 수 있습니다.
참고사이트 :
https://nate9389.tistory.com/922
https://ko.wikipedia.org/wiki/%ED%94%8C%EB%A6%BD%ED%94%8C%EB%A1%AD