`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 ); always@(posedge clk or negedge rst_n) if(!rst_n) remain <= 10'd0; else if(set) remain <= remain + money; else if(boost && remain == 10'd1) remain <= remain - 1; else if(boost) remain <= remain - 2; else if(!boost) remain <= remain - 1; else if(remain == 10'd0 && !set) remain <= remain; always@(posedge clk or negedge rst_n) if(!rst_n) yellow <= 1'b0; else if(remain!=10'd0 && remain < 10'd10) yellow <= 1'b1; else yellow <= 1'b0; always@(posedge clk or negedge rst_n) if(!rst_n) red <= 1'b0; else if(boost && remain < 10'd2) red <= 1'b1; else if(!boost && remain < 10'd1) red <= 1'b1; else red <= 1'b0; endmodule