SR 래치는 두 NOR 게이트의 출력이 서로의 입력으로 돌아가는 피드백 구조로 1비트를 기억하는 회로입니다. S를 1로 하면 1을, R을 1로 하면 0을 기억하고, 둘 다 0이면 이전 값을 유지합니다.
하지만 S와 R이 동시에 1이 되면 문제가 생깁니다. Q와 Q̅가 모두 0이 되고, 이 상태에서 다시 둘 다 0으로 돌리면 어느 게이트가 먼저 반응하느냐에 따라 Q가 1이 될 수도, 0이 될 수도 있습니다. 결과를 예측할 수 없는 것입니다.
이러한 SR 래치의 문제를 해결하기 위해 등장한 것이 바로 D 래치(D Latch)입니다. D 래치는 AND를 활용해 SR 래치의 입력 회로를 변형하여 S와 R이 동시에 활성화되는 불안정한 상태를 원천적으로 방지합니다.
D와 E를 클릭해 값을 토글할 수 있습니다. 다음 순서대로 조작해봅시다:
D 래치는 하나의 ‘데이터(Data, D)’ 입력과 ‘활성화(Enable, E)’ 입력만을 가집니다.
활성화(E) 신호가 켜져 있는 동안에만 데이터(D) 입력의 값이 Q에 반영됩니다. 활성화 신호가 꺼지면 D 입력이 아무리 변해도 래치는 이전 값을 유지합니다.
Q를 잠그는 자물쇠가 E라고 생각해도 좋습니다.
SR 래치의 입력 앞에 AND를 덧대어 금지된 상태가 생기지 않는 D 래치를 만들었습니다. 하지만 D 래치에는 한 가지 한계가 남아있습니다. 활성화 신호가 켜져 있는 동안에는 입력 변화를 그대로 따라가기 때문에, 여러 래치가 연결된 시스템에서 데이터가 의도치 않게 전파될 수 있습니다.
다음 글에서는 이 문제를 더 자세히 살펴보고 이를 해결하는 클럭을 다룹니다.