Featured image of post 순차 회로

순차 회로

순차 회로란 무엇인지, 동기 순차회로와 비동기 순차회로, 무어 머신과 밀리 머신, 상태표와 상태도에 대하여

본 포스팅은 ‘Mano의 컴퓨터시스템구조’ 교재를 참고했습니다.

순차 회로

순차 회로 (Sequential Circuit)란, 입력 및 현재 상태에 따라 출력 및 다음 상태가 결정되는 논리회로이다. 결국 현재의 입력과 과거의 출력 상태에 의해 출력값이 결정된다.

게이트로만 이루어진 회로는 조합회로이고, 플립플롭과 게이트로 이루어진 회로는 순차 회로이다.

클럭 동기형 순차 회로의 블럭도

동기 순차회로와 비동기 순차회로

동기 순차회로는 모두 같은 하나의 클럭을 서로 공유하고, 플립플롭들이 같은 시간에 동작한다.

비동기 순차회로는 클럭을 서로 공유하지 않고, 플립플롭들이 각자 동작한다.

비동기 순차회로는 각자 제어하거나 타이밍 신호를 해석하는 것이 복잡하므로, 컴퓨터 시스템과 같은 디지털 시스템은 대부분이 동기 순차회로이다.

무어 머신과 밀리 머신

무어 머신과 밀리 머신

무어 머신 (Moore Machine)은 출력이 현재 상태에 의해서 만 결정된다. 즉, 플립플롭 출력들(현재 상태들)의 조합에 의해서 만 결정된다.

  • $\text{출력} = f(\text{상태})$
  • $\text{다음상태} = f(\text{입력}, \ \text{현재상태})$

밀리 머신 (Mealy Machine)은 출력이 현재 상태와 입력 모두에 의해서 결정된다. 즉, 같은 상태라도 입력에 따라서 달라질 수 있다.

  • $\text{출력} = f(\text{입력}, \ \text{현재상태})$
  • $\text{다음상태} = f(\text{입력}, \ \text{현재상태})$

밀리 머신과는 달리, 무어 머신은 상태가 변할 때만 출력이 변하여 더 간단한 구조이다. 무어 머신이 제어하기에 더 간단하며, 대부분의 디지털 시스템은 무어 머신이다.

순차 회로의 설계

순차 회로를 설계할 때는 좌측에서 우측으로, 순차 회로를 분석할 때는 우측에서 좌측 단계로 진행된다.

flowchart LR
    기능정의[기능 정의
기능 설명] <--> 상태도[상태도
State Diagram] 상태도 <--> 상태표[상태표
State Table] 상태표 <--> 입력논리식[입력 논리식
출력 논리식] 입력논리식 <--> 논리회로도[논리회로도
Logic Diagram]

순차 회로의 특성은 입력, 출력, 플립플롭의 상태로 만들어진다. 출력과 다음 상태는 입력과 현재 상태에 대한 함수인데, 이 사이의 관계를 상태표라고 한다.

상태도

상태는 원으로 표시하고, 상태 사이의 전이는 원 사이를 연결하는 직선으로 표시한다. 일반적으로 원 안에는 플립플롭의 상태를 적고, 간선에는 입력/출력값을 적는다.

상태도의 예시

상태표

$m$개의 플립플롭, $n$개의 입력 변수, $p$개의 출력 변수를 가지고 있는 순차 회로는 현상태에 $m$개의 열, 입력에 $n$개의 열, 출력에 $p$개의 행을 갖는 상태표가 된다. 또한 행에는 $2^{m+n}$개의 조합이 나오게 된다. 다음 상태와 출력열은 입력 변수의 함수이고 회로로부터 직접 구해진다.

위 상태도 예시를 상태표로 바꾸면 다음과 같다.

현재 상태입력다음 상태출력
000000
001010
010001
011110
100001
101110
111100
110001

위와 같이 상태도를 가지고 상태표를 만들 수 있고, 상태표를 가지고 상태도를 만들 수 있다.