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

游戏机计费程序

http://www.nowcoder.com/practice/50188fb7e23b4eee86f8c463c8284f5e

  1. 根据boost类型确定每分钟/周期消费金额,注意充值所在分钟/周期是不消费的。
  2. 两个灯(red yellow)不能同时亮起,先判断红灯是否满足条件,再判断黄灯。

完整代码

`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)begin
        if(~rst_n)
            remain <= 0;
        else begin
            if(boost==0)
                remain <= set==1? remain+money: remain-1;
            else if(boost==1)
                remain <= set==1? remain+money: remain-2;
        end
    end
    
    always@(posedge clk or negedge rst_n)begin
        if(~rst_n)begin
            yellow <= 0;
            red <= 0;
        end
        else begin
            if(remain < 1)begin
                yellow <= 0;
                red <= 1;
            end
            else if(remain < 10)begin
                yellow <= 1;
                red <= 0;
            end
            else begin
                yellow <= 0;
                red <= 0;
            end
        end
    end

endmodule
全部评论
这个代码有点小问题哎 感觉 畅玩模式 remain 小于2 就应该红了
点赞 回复 分享
发布于 2022-09-05 17:19 四川
不考虑remain可能为负吗
点赞 回复 分享
发布于 2023-03-11 17:08 安徽

相关推荐

dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
10-17 16:07
门头沟学院 Java
牛牛大你18号:在汇报,突然弹出来,,领导以为我在准备跳槽,刚从领导办公室谈心出来
点赞 评论 收藏
分享
评论
4
收藏
分享
牛客网
牛客企业服务