题解 | #游戏机计费程序#

游戏机计费程序

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


#FPGA#
全部评论

相关推荐

AC鸽想进大厂:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务