소개글
디지털 시스템 설계 과목에서 작성한 레포트 입니다.
Verilog로 자판기를 만드는 과정입니다.
비지오를 통해 완벽히 그려진 state diagram과 상세한 테스트 시뮬레이션이 있습니다.
쉽게 알 수 있도록 설명이 되어 있습니다.
state diagram은 mealy 스타일로 optimization의 여부에 따라 2가지 과정이 모두 실려 있습니다.
또한 하드웨어 설계도 verilog 코드로 함께 들어 있습니다.
자판기, 곧 Vending machine을 만들어야 하는 분에게 최적의 선택이 될 것입니다.
목차
1. Design a Mealy - style state diagram
(No optimization)
2. Design a Mealy - style state diagram
(With optimization)
3. Test plan
4. Simulate the design and verify
5. Source code and Comment
6. Conclusion
본문내용
시뮬레이션은 모든 Case를 다해본 것이 아니라 대표적인 Case들 만을 지정하여 설계한 Vending Machine이 예상했던 바에 따라 동작하는 것을 확인해 볼 수 있었다. 먼저 거스름돈이 없는 경우와 거스름돈이 있는 경우, 음료수를 선택함에 있어 고민을 한 경우와 고민 하지 않는 경우, 최대 돈인 1000원을 넘겨서 돈을 넣은 경우, 600원에 미달하는 돈을 넣은 경우, 600원을 넣은 이후 음료수를 뽑고 돈을 지속해서 넣고 음료수를 뽑은 경우 등 대표적인 시뮬레이션 상황을 설정하고 이에 따라 시뮬레이션을 수행하였다.
Coin_FSM.V - 동전을 세고 반환하는 역할을 담당하는 FSM
`define P 10 //enough signal을 어느 정도 유지 시키기 위한 시간 척도
module Coin_FSM(enough, change, clk, sc, lc, open, reset);
//IO setup
output enough, change;
reg enough, change;
input clk, sc, lc, open, reset;
reg[3:0] state;
reg[3:0] next_state;
reg direction; //select coin insert or change mode : insert - 0, change - 1 : 모드 설정
//state define : amount of money(Max : 1000 (won))
parameter S0 = 4`b0000, S1 = 4`b0001, S2 = 4`b0010,
S3 = 4`b0011, S4 = 4`b0100, S5 = 4`b0101,
S6 = 4`b0111, S7 = 4`b1000, S8 = 4`b1001,
S9 = 4`b1010, S10 = 4`b1011; //SX = X * 100 (won) - 돈의 액수로 State를 구성
참고 자료
없음
압축파일 내 파일목록
Vendingmachine.hwp
Coin_FSM.v
Vending_FSM.v
Vending_machine_tb.v