题解 | #游戏机计费程序#
游戏机计费程序
https://www.nowcoder.com/practice/50188fb7e23b4eee86f8c463c8284f5e
`timescale 1ns/1ns module game_count ( input rst_n, //异位复位信号,低电平有效 input clk, //时钟信号 input [9:0]money, input set, input boost, output reg[9:0]remain, output reg yellow, output reg red ); //remain always @(posedge clk or negedge rst_n) begin if(~rst_n) begin remain <= 0; end else if (set)begin remain <= remain+money; end else if (boost) begin remain <= remain - 2; end else begin remain <= remain - 1; end end //yellow always @(posedge clk or negedge rst_n) begin if(~rst_n) begin yellow <= 0; end else if(remain<10&&remain>0)begin yellow <= 1; end else yellow <= 0; end //red always @(posedge clk or negedge rst_n) begin if(~rst_n) begin red <= 0; end else if(remain<1 && boost==0)begin red <= 1; end else if(remain<2 && boost==1)begin red <= 1; end else red <= 0; end endmodule