본문 바로가기

컴퓨터/논리설계

6강-순차회로

순차회로

소개

1강에서 회로에 대한 개요를 설명할 때 언급했듯 순차회로(sequential circuit)은 출력값이 이전 입력값에도 영향을 받는 회로이다. 따라서 어떠한 상태나 순서를 지닌 회로를 작성할 때 사용하게 된다. 예를 들어 도어락이나 자판기의 회로들은 모두 상태가 필요하기에 순차회로로 구성되어 있다.

구현

Feedback loop

순차회로의 구현을 보기에 앞서 기본이 될 회로를 보고 가자.

위 회로는 초기값을 유지하는 기능을 하는데, 빨간선의 값을 $x$라 하면 $~(~x)$로 값이 유지되는 것을 알 수 있다. 이 회로에 기능을 더 추가한다고 생각해보자. 주어진 값을 로드하는 기능과 그 값을 유지할지 정하는 기능을 넣는다면 아래처럼 구현할 수 있다.

기존의 회로에 2개의 스위치를 추가했다. Load가 닫힌다면 값이 로드되고 Hold가 닫히면 현재 값을 유지한다.

위 내용을 스위치가 아닌 트랜지스터를 기반으로 구성하면 SR-Latch로 확장할 수 있다.

SR Latch

Feedback loop의 마지막 그림을 NOR을 이용해서 구현해보았다. 이것을 SR-Latch라고 부르며, 1bit의 정보를 저장할 수 있다. 이 회로를 조금 변형해서 동일한 회로를 구할 수 있는데

보통은 위 그림의 형태로 SR Latch를 접하게 된다.

R S Q Q'
0 0 hold value
0 1 1 0
1 0 0 1
1 1 Not allowed

진리표는 위처럼 그릴 수 있다.

하지만, SR-Latch에는 치명적인 문제점이 있다. R과 S가 1 1 이 되지 않도록 잘 조절하면 괜찮지만 작은 glitch라도 발생하게 되면 Not Allowed state에 진입하며 Q과 Q'이 0과 1사이를 왔다갔다하는 racing state에 진입하게 된다.