自动贩售机
(1)自动贩售机Ⅰ
设计一个自动贩售机,输入货币有三种,为0.5/1/2元,饮料价格是1.5元,要求进行找零,找零只会支付0.5元。
注意:投入的货币会经过边沿检测并输出一个在时钟上升沿到1,在下降沿到0的脉冲信号。
- 状态转移图
- verilog代码
module seller1(
input clk,
input rst_n,
input d1, // ¥0.5
input d2, // ¥1.0
input d3, //¥2.0
output reg out1, // drink
output reg [1:0] out2 // charge
);
parameter IDLE = 3'b000,
S0_5 = 3'b001,
S1_0 = 3'b010,
S1_5 = 3'b011,
S2_0 = 3'b100,
S2_5 = 3'b101,
S3_0 = 3'b111;
reg[2:0] cs, ns;
always@(posedg