공학

SR플립플롭에서 S=1, R=1이면 어떻게 될까?

Engivia 2024. 4. 5. 08:38

SR 플립플롭에서 S=1, R=1일 때 실제로는 어떻게 될까?

디지털 공학 수업에서 SR 플립플롭을 배웠다. 기본 동작은 간단하다.
Set(S)=1이면 출력 Q가 1이 되고,
Reset(R)=1이면 Q가 0이 된다.
그런데 S=1, R=1이면 Q와 ~Q가 모두 1이 되어서 불능 상태라고 한다.
그래서 이 조합은 애초에 피해야 하는 입력으로 분류된다.

이 얘기를 들었을 때는 그냥 "아~ 그렇구나" 하고 넘어갔지만,
문득 이런 생각이 들었다.

"근데, 진짜 회로에다 S=1, R=1을 억지로 넣어버리면 어떻게 되지?"

실제로 해볼 수는 없었다. 장비가 없기도 하고
시뮬레이터도 대부분 이 상태를 허용하지 않는다.
그래서 결국 챗GPT한테 물어봤다.

몇 번의 대화를 통해 다음과 같은 내용을 알게 되었다.

 

 

 


 

1. 불확정 상태

S=1, R=1일 때 플립플롭의 출력은 예측할 수 없다.
이건 단순히 값이 정해지지 않은 수준이 아니라,
Q와 ~Q가 동시에 1이 되는 비논리적 상황이 발생할 수도 있는 것이다.
플립플롭 내부 회로가 어떻게 설계되었는지에 따라
그 결과는 다르게 나타날 수 있다.

 

2. 메타스테이블 상태

조금 더 흥미로운 건 메타스테이블 상태이다.
이건 ‘불안정한 중간 상태’라고 보면 된다.
Q가 0도 아니고 1도 아닌, 애매한 전압값에 놓인 상태.
디지털 회로는 0과 1만 다룬다고 하지만,
현실은 전압 레벨이라는 아날로그 물리량을 다루기 때문에
이런 경계선에서 회로가 잠시 흔들릴 수 있다.

메타스테이블 상태에선 출력이 안정화되기 전까지
다른 회로에서 그 출력을 읽어버리면 오류나 동기화 문제로 이어질 수 있다.
그래서 동기 회로에서는 이 문제를 아주 조심스럽게 다룬다.

 

3. 회로 손상은 없을 가능성

다행히 요즘 디지털 회로는 S=1, R=1 같은 상태가
일시적으로 들어오더라도 물리적으로 망가지지 않도록 설계된다.
예외 처리 회로나 기본값으로 리셋되는 구조가 들어가 있는 경우도 있다.
다만, ‘망가지지 않는 것’과 ‘의미 있는 출력을 내는 것’은 다르다.

 

4. 일부 설계에서는 이 상태를 활용하기도 한다

일부 특수한 플립플롭 설계에서는
S=1, R=1 같은 입력 조합을 특정 기능으로 활용하기도 한다.
예를 들어 모든 출력을 초기화하거나, 시스템을 강제 리셋하는 트리거로 삼는다.
하지만 이런 경우는 엄격하게 제어된 환경에서만 사용된다.

 

결론을 내보면

S=1, R=1은 이론적으로 "쓰면 안 되는 입력"이지만
현실에서는 이 입력이 들어왔을 때도
그 결과는 설계에 따라 달라질 수 있다.
그래서 단순한 ‘금기’가 아니라,
디지털 회로와 아날로그 물리의 경계선을 보여주는 흥미로운 사례라고 느꼈다.


 

디지털 회로는 이론적으로는 0과 1이라는 이산적 세계에 살고 있지만,
실제로는 전압이라는 연속적인 물리량을 다루고 있다.
불확정 상태, 메타스테이블 상태 같은 개념은
바로 이 경계에서 발생하는 자연스러운 현상이다.

역시 GPT다 덕분에 궁금증이 풀렸다! 고마워요!