VHDL

Coffe Vending Machine 설계(Meerly)

전자자연인 2021. 6. 9. 21:49
반응형

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