저번 포스팅에서 다양한 Flip Flop에 대해 알아보았는데 이번 포스팅에서는 Flip Flop를 활용한 Sequential Logic Circuit를 구현해보겠습니다.

지금부터 앞에서 본 Sequential Logic을 다양한 Flip Flop을 사용해 설계해보려고 합니다.

자판기에서 음료수를 뽑는 Logic을 구현해보려고 합니다. 조건은 아래와 같습니다.

1. 자판기에서 음료수를 뽑으려면 4000원을 넣어야 합니다.

2. 자판기에는 오직 1000원만 넣을 수 있습니다.

우선 우리는 4가지 state를 정할 수 있습니다. 00, 01, 10 ,11은 자판기에 돈이 0, 1000, 2000, 3000 일때의 state를 의미합니다. 이때 4000원에 대한 state를 정의하지 않은 이유는 자판기에 있는 돈이 3000원일때 1000원을 넣으면 output으로 음료수를 내보내고 state를 00으로 초기화하면 되기 때문입니다.

그렇다면 이것을 Truth Table로 그리면 어떻게 될까요?

Combinational Logic과 다르게 input인 M, output R과 더불어 present state와 next state를 알아야 우리는 Sequential Logic을 구현할 수 있습니다.

state는 2bit으로 정의하였으므로 우리는 2개의 Flip Flop으로 Logic을 구현할 수 있고 이때 각 Flip Flop은 Clock의 rising 엣지에 update 되는 것을 알 수 있습니다.

이것을 바탕으로 Truth Table를 그려보면 아래와 같습니다.