题解 | #自动贩售机2#
自动贩售机2
https://www.nowcoder.com/practice/298dec1c3dce45c881f3e53e02558828
`timescale 1ns/1ns module seller2( input wire clk , input wire rst , input wire d1 , input wire d2 , input wire sel , output reg out1, output reg out2, output reg out3 ); //*************code***********// reg [2:0] money; always@(posedge clk or negedge rst) begin if(!rst) money <= 3'b0; else if(d1) money <= money + 1; else if(d2) money <= money + 2; else money <= money; end always@(posedge clk or negedge rst) begin if(!rst) begin out1 <= 1'b0; out2 <= 1'b0; out3 <= 1'b0; end else if(sel == 0)//1.5 begin if(money <= 2)//输入货币不足 begin out1 <= 1'b0; out2 <= 1'b0; out3 <= 1'b0; end else if(money >= 3) begin out1 <= 1'b1; out2 <= 1'b0; out3 <= money - 3; money <= 0; end end else if(sel == 1)//2.5 begin if(money <= 4) begin out1 <= 1'b0; out2 <= 1'b0; out3 <= 1'b0; end else if(money >= 5) begin out1 <= 1'b0; out2 <= 1'b1; out3 <= money - 5; money <= 0; end end end //*************code***********// endmodule