본문 바로가기

University curriculum/[Course] Digital Engineering

[디지털 공학(23)] State Machine(상태기계)_순서논리회로(5)

반응형

 


안녕하세요.

이번 시간에서 순서논리 회로 중 디지털 공학 과목 뿐만 아니라 HDL이나 System On Ship과 같은 과목에서도 중요한 개념인 State Machine에 대해 기술하겠습니다.


 

 

순서논리 회로에는 다양한 내용이 있습니다. 필요에 따라 아래 글들도 참고해보세요~!!~

1. Latch(래치)와 Flip-flop(플립플롭)

https://semicircuit.tistory.com/37

2. 비동기 카운터

https://semicircuit.tistory.com/38

3. 동기 카운터

https://semicircuit.tistory.com/39

4. 불규칙 카운터

https://semicircuit.tistory.com/40

5. State Machine 설계

https://semicircuit.tistory.com/41

6. UP/DOWN Counter

https://semicircuit.tistory.com/42

7. 시프트 레지스터

https://semicircuit.tistory.com/43

 

 

 

※1. State machine_1

(조건에 따라 상태를 유지 하거나 다음 상태로 넘어가는 시스템)

전제 : 유한개의 상태를 가져야 한다.

동작 : 작동하는데 조건이 부여되고 조건에 충족된 동작에 따라 현재의 상태를 유지 할지, 다음의 상태로 넘어갈지 정해진다.

 

ex) 아래와 같은 상태도에서

 

응용1) 지하철 개찰구 : 교통 카드에 돈이 있거나 승인되는 승차권일 경우 개찰구가 돌아간다.

응용2) 자판기 : 가격에 부합하는 금액 이상의 돈이 들어가면 상품을 선택 할 수 있고, 들어간 금액 이하의 상품을 선택하면 상품이 나온다.

 

 

1. State machine_1 설계 과정

(Input에 조건이 들어가는 X가 추가 된다. 그에 따라 카르노맵을 작성 할 때 Input 변수로 X도 추가된다.)

⓵ 상태도 : 출력을 순환하는 방식으로 표현하는 것

⓶ 다음 상태표 작성 : 현재와 다음 상태를 표현하는 것 (X=0일 때와 X=1일 때의 다음 상태가 분리되어 나타난다.)

⓷ 플립플롭 전이표 작성 : 다음 변화에 대한 J-K의 입력을 나타내는 표를 작성하는 것

⓸ 카르노맵 작성 : Present State와 Excitation Table을 카르노맵으로 표기하는 것(Input으로 X가 추가된다.)

⓹ 플립플롭 입력에 논리식 : 카르노맵을 통해 수식으로 표현하는 것

⑥ 회로 구현 : 수식으로 얻은 식을 회로로 설계하는 것

ex1) JK F/F을 이용한 아래 상태도의 시스템의 설계

 

⓶ 다음 상태표 작성

 

 

⓷ 플립플롭 전이표 작성 (JK F/F 사용)

 

 

⓸ 카르노맵 작성 + ⓹ 플립플롭 입력에 논리식

 

 

 

⑥ 회로 구현

 

 

 

ex2) D F/F을 이용한 아래 상태도의 시스템의 설계

 

 

⓶ 다음 상태표 작성

 

 

 

⓷ 플립플롭 전이표 작성

 

 

⓸ 카르노맵 작성

 

 

⓹ 플립플롭 입력에 논리식

 

⑥ 회로 구현

 

 

=> 타이밍도 (결과)

=>JK F/F과 동일한 결과를 얻을 수 있었다. 회로 상에서 아직은 많이 복잡한 형태는 아니지만 JK F/F에 비하면 게이트의 개수나 형태가 복잡해 졌다. 이를 통해 toggle 기능의 필요성에 대해 느낄 수 있다.

 

 

 

 

2. State machine_2

(State machine_1의 기능 + 동작을 할 때 특정 출력 값을 출력해주는 시스템)

전제 : 유한개의 상태를 가져야 한다.

동작 : 작동하는데 조건이 부여되고 조건에 충족된 동작에 따라 현재의 상태를 유지 할지, 다음의 상태로 넘어갈지 정해진다. + 조건에 충족한 동작을 할 때 특정 출력을 한다.

 

ex) 아래와 같은 상태도에서

 

(1) State machine_2설계 과정

(Input에 조건이 들어가는 X가 추가 된다. 그에 따라 카르노맵을 작성 할 때 Input 변수로 X도 추가된다. + 각 동자마다 값이 변하는 Output이 추가된다.)

⓵ 상태도 : 출력을 순환하는 방식으로 표현하는 것

⓶ 다음 상태표 작성 : 현재와 다음 상태를 표현하는 것 (X=0일 때와 X=1일 때의 다음 상태가 분리되어 나타난다.)

⓷ 플립플롭 전이표 작성 : 다음 변화에 대한 J-K의 입력을 나타내는 표를 작성하는 것

(출력에 대한 Y가 추가된다.)

⓸ 카르노맵 작성 : Present State와 Excitation Table을 카르노맵으로 표기하는 것(Input으로 X가 추가된다. 플립플롭에 대한 카르노맵 뿐만 아니라 Y에 관한 카르노맵도 진행 하여야 한다.)

⓹ 플립플롭 입력에 논리식 : 카르노맵을 통해 수식으로 표현하는 것

⑥ 회로 구현 : 수식으로 얻은 식을 회로로 설계하는 것

ex1) JK F/F을 이용한 아래 상태도의 시스템의 설계

 

 

⓷ 플립플롭 전이표 작성 (JK F/F 사용)

 

 

⓸ 카르노맵 작성 + ⓹ 플립플롭 입력에 논리식

 

 

⑥ 회로 구현 : 수식으로 얻은 식을 회로로 설계하는 것

 

 

 

 

반응형