![[디지털 공학(23)] State Machine(상태기계)_순서논리회로(5)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGKbEf%2FbtsHe1biPwH%2Fk67jKYuKU2Szp6K0OG4sw0%2Fimg.png)
안녕하세요.
이번 시간에서 순서논리 회로 중 디지털 공학 과목 뿐만 아니라 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 사용)
⓸ 카르노맵 작성 + ⓹ 플립플롭 입력에 논리식
⑥ 회로 구현 : 수식으로 얻은 식을 회로로 설계하는 것

'University curriculum > [Course] Digital Engineering' 카테고리의 다른 글
[디지털 공학(25)] Shift Register(시프트 레지스터)_순서논리회로 (7) (0) | 2024.05.12 |
---|---|
[디지털 공학(24)] Up/Down Counter(업 다운 카운터)_순서논리회로(6) (0) | 2024.05.12 |
[디지털 공학(22)] 불규칙 카운터_순서논리회로(4) (0) | 2024.05.11 |
[디지털 공학(21)] Synchronism Counter(동기 카운터)_순서논리회로(3) (0) | 2024.05.11 |
[디지털 공학(20)] Asynchronism Counter(비동기 카운터)_순서논리회로(2) (0) | 2024.05.11 |
전자공학 블로그에 오신 것을 환영합니다! 최신 기술 동향, 회로 설계, 반도체 및 전자 부품에 대한 유용한 정보와 실습 팁을 제공합니다.