반응형
2.소스코드 및 설명(Meerly) Mealy 는 현재상태와 현재입력에 의존한다
.
변수설정과 clk신호에 관한 process문으로
clk신호의 rising_edge일시 rst에 의해 결정되는 present_state값과
rst이 0일 때 present_state에 next_state를 전달하는 상태 기술문이다.
34~42: present_state 에 무슨 입력이 들어오냐에 관한 case문
초기상태 s0에서 coin_in의 1의 입력이 들어오면 next_state에 s1을 전달해주고 그때의 state_out 값은 01, coin_in의 0의 입력이 들어오면 next_state는 s0,state_out 값은 00을 전달해주어 출력한다.
44~51 : coin_in의 1의 입력값에따라 next_state가 s1이 되어 present_state에 next_state의 s1이 전달되면, coffee_sel에 의하여 다음상태가 결정된다
coffee_sel이 1일시 next_state는 s2가 전달되고 그때의 state_out은 10이 전달되어 출력, 0일시 s1이 전달되고 state_out은 01이 전달되어 출력,
53: s2에서 coffee_serve에 입력값에 의하여 다음상태를 결정해준다. coffee_serve가 1일시 next_state에 s0,state_out에 00을 전달한다.
0일시엔 next_state에 s2, state_out엔 10을 전달하여 출력한다.
61 : 나머지의 경우에 대해서 다시 초기값 s0으로 돌아가고 그때의 state_out은 00을 출력한다.
3.시뮬레이션 결과 및 설명
처음 rst가 1일시 초기상태는 s0이 전달되고 state_out은 00으로 전달되어 출력된다.
그다음 돈을 넣었을시(coin_in = 1) 다음단계인 S1으로 가서 state_out엔 01이 전달되어 출력된다.
그리고 커피를 고르면 (coffee_sel = 1) 다음단계인 s2에서 커피가 나오면 (coffee_serve = 1) 다시 처음 자판기상태인 s0 ,state_out = 00으로 돌아간다.
만약 coin_in = 1이 입력되고 s1에서 커피를 고르지 않으면 그상태를 유지한다.
마찬가지로 coffee_sel = 1이 입력되고 커피가 나오지 않아서 다음상태로 안넘어가면 s1( state_out = 10)의 상태가 유지된다.
반응형
'VHDL' 카테고리의 다른 글
4-way Traffic controller VHDL (0) | 2021.06.09 |
---|---|
Coffe Vending Machine VHDL (Moore설계) (0) | 2021.06.09 |
Sequence Detector(순차검출기) (0) | 2021.06.09 |
램메모리 VHDL RAM(Random Access Memory) VHDL (0) | 2021.06.09 |
ROM memory (Read Only Memory) VHDL (0) | 2021.06.09 |