yeolyi.com성열의 컴퓨터공학

D 래치

SR 래치는 두 NOR 게이트의 출력이 서로의 입력으로 돌아가는 피드백 구조로 1비트를 기억하는 회로입니다. S를 1로 하면 1을, R을 1로 하면 0을 기억하고, 둘 다 0이면 이전 값을 유지합니다.

하지만 S와 R이 동시에 1이 되면 문제가 생깁니다. Q와 Q̅가 모두 0이 되고, 이 상태에서 다시 둘 다 0으로 돌리면 어느 게이트가 먼저 반응하느냐에 따라 Q가 1이 될 수도, 0이 될 수도 있습니다. 결과를 예측할 수 없는 것입니다.

D 래치

이러한 SR 래치의 문제를 해결하기 위해 등장한 것이 바로 D 래치(D Latch)입니다. D 래치는 AND를 활용해 SR 래치의 입력 회로를 변형하여 S와 R이 동시에 활성화되는 불안정한 상태를 원천적으로 방지합니다.

D와 E를 클릭해 값을 토글할 수 있습니다. 다음 순서대로 조작해봅시다:

  1. D를 클릭해 1로 바꿔봅시다. E=0이라 Q는 변하지 않습니다.
  2. E를 클릭해 1로 바꾸면, D의 값(1)이 Q에 반영됩니다.
  3. E를 클릭해 0으로 바꾸면, Q가 잠깁니다. 이제 D를 바꿔도 Q는 변하지 않습니다.

D 래치는 하나의 ‘데이터(Data, D)’ 입력과 ‘활성화(Enable, E)’ 입력만을 가집니다.

활성화(E) 신호가 켜져 있는 동안에만 데이터(D) 입력의 값이 Q에 반영됩니다. 활성화 신호가 꺼지면 D 입력이 아무리 변해도 래치는 이전 값을 유지합니다.

Q를 잠그는 자물쇠가 E라고 생각해도 좋습니다.

마무리

SR 래치의 입력 앞에 AND를 덧대어 금지된 상태가 생기지 않는 D 래치를 만들었습니다. 하지만 D 래치에는 한 가지 한계가 남아있습니다. 활성화 신호가 켜져 있는 동안에는 입력 변화를 그대로 따라가기 때문에, 여러 래치가 연결된 시스템에서 데이터가 의도치 않게 전파될 수 있습니다.

다음 글에서는 이 문제를 더 자세히 살펴보고 이를 해결하는 클럭을 다룹니다.