Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- `timescale 1ns / 1ps
- //////////////////////////////////////////////////////////////////////////////////
- // Company:
- // Engineer:
- //
- // Create Date: 12:48:23 01/28/2020
- // Design Name:
- // Module Name: coin
- // Project Name:
- // Target Devices:
- // Tool versions:
- // Description:
- //
- // Dependencies:
- //
- // Revision:
- // Revision 0.01 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module coin( input fifty, dollar, cancel, clk, rst,
- output reg insert_coin, money_return, dispense, output reg [1:0] st
- );
- parameter INIT=0,S50c=1,VEND=2,RETURN=3;
- reg [1:0] nst;
- always @ (posedge clk)
- begin
- if(~rst)
- st <= INIT;
- else
- st <= nst;
- end
- always @*
- begin
- nst = st;
- insert_coin = 1; money_return = 0; dispense = 0;
- case(st)
- INIT: begin
- if(fifty)nst = S50c;
- if(dollar) nst = VEND;
- end
- S50c: begin
- if(fifty) nst = VEND;
- if(dollar) nst = RETURN;
- if(cancel) nst = RETURN;
- end
- VEND: begin
- insert_coin = 0; money_return = 0; dispense = 1;
- end
- RETURN: begin
- insert_coin = 0; money_return = 1; dispense = 0;
- nst = INIT;
- end
- endcase
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement