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

游戏机计费程序

http://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
    );
    
    always @ (posedge clk or negedge rst_n)begin
        if(!rst_n)
            remain <= 10'b0;
        else if(set)
            remain <= remain + money;
        else if(!boost)
            remain <= remain - 1'b1;
        else if(boost)
            remain <= remain - 10'd2;
        else if(remain == 10'd1 && boost)  // 如果此时剩下一块钱但是却是在减两块的模式下得清零;
            remain <= 10'd0;
        else
            remain <= remain;
    end
    
    always @ (posedge clk or negedge rst_n)begin
        if(!rst_n)
            yellow <= 1'd0;
        else if(remain > 10'd0 && remain <10'd10)
            yellow <= 1'b1;
        else
            yellow <= 1'b0;
    end
    
    always @ (posedge clk or negedge rst_n)begin
        if(!rst_n)
            red <= 1'd0;
        else if(remain == 10'd0)
            red <= 1'b1;
        else
            red <= 1'b0;
    end
    
endmodule
全部评论

相关推荐

有没有佬投这个呀,怎么样呀求问
投递中科院空天信息创新研究院等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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