순서논리회로는 현재의 입력값, 이전 출력 상태에 따라 결과가 결정되는 논리회로입니다. 이때 신호의 타이밍에 따라 동기와 비동기 순서논리회로로 다시 구분됩니다.
동기 순서논리회로
는 클록펄스가 들어오는 시점에 상태가 변하고, 비동기 순서논리회로
는 시간과 관계없이 입력이 변하는 순서에 맞춰서 논리회로가 동작합니다.
순서논리회로는 무어 머신, 밀리 머신(Moore machine, Mealy machine)
두 가지 형태로 정의됩니다.
이미지 출처
https://www.engineersgarage.com/melay-machine-fsm-vhdl-code/
무어 머신
은 출력이 플립플롭의 현재 상태만의 함수로 구성되는 회로를 의미하고 밀리 머신
은 출력이 현재 상태와 입력으로 구성되는 회로를 의미합니다.
(동기) 순서논리회로의 해석 과정은 크게 6단계로 진행됩니다.
위와 같은 SR 플립플롭을 이용한 동기 순서논리회로를 해석해보겠습니다.
회로의 입력 x, 출력 y, 플립플롭의 입력 SA, RA, SB, RB, 플립플롭의 출력 A, B이라는 명칭을 부여합니다.
회로의 불 대수식 유도
SA = Bx', RA = B'x
SB = A'x, RB = Ax'
y = AB'x
상태표
는 현재 생태와 외부 입력 변화에 따른 다음 상태와 출력의 변화를 정의한 표입니다.플립플롭 m개와 입력 n개를 가진 회로에서 상태표는 2^m개의 행을 가지며, 다음 상태와 출력은 2^n개의 열을 갖습니다.
상태방정식
은 플롭플롭 상태 전이에 대한 조건을 지정하는 방정식이며, 상단의 상태표로부터 구할 수 있습니다.A(t+1) = A'Bx' + AB'x' + ABx' + ABx = Bx' + AB + Ax'
B(t+1) = A'Bx' + A'B'x + A'Bx + ABx = A'x + A'B + Bx
00 -> 01 -> 11 -> 10 -> 00...
으로 순차적으로 변화하는 회로가 됩니다.