题解 | 游戏机计费程序
游戏机计费程序
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) if(!rst_n) remain <= 0; else if(set) remain <= remain + money; else if(boost && (remain > 10'd1)) remain <= remain-10'd2; else if(~boost && (remain > 10'd0)) remain <= remain-1'b1; else remain <= remain; always@(posedge clk or negedge rst_n) if(!rst_n) begin yellow <= 0; red <= 0; end else begin yellow <=((remain >0) && (remain < 10'd10))? 1 : 0; red <= (((boost && (remain < 10'd2))||(~boost && (remain <1))))?1:0; end endmodule
这道题我其实做的还有点迷茫。首先就是set、boost信号是按了按钮一直保持1还是只保持一个周期。
好像是一个周期(至少set应该是这样的)。