题解 | #自动贩售机1#
自动贩售机1
https://www.nowcoder.com/practice/dcf59e6c51f6489093495acb1bc34dd8
//注意一旦存储数据大于等于3 置零 `timescale 1ns/1ns module seller1( input wire clk , input wire rst , input wire d1 , input wire d2 , input wire d3 , output reg out1, output reg [1:0]out2 ); //*************code***********// reg [3:0] da; always@(posedge clk or negedge rst)begin if(!rst) da<=0; else if(d1) da<=da+1; else if(d2) da<=da+2; else if(d3) da<=da+4; else if(da>=3) da<=0; else da<=da; end always@(posedge clk or negedge rst)begin if(!rst)begin out1<=0; out2<=0; end else if(da>=3)begin out1<=1; out2<=da-3; da<=0; end else begin out1<=0; out2<=0; end end //*************code***********// endmodule