要求实现一个游戏机计费模块,某游戏机具有多个模式,价格不同:普通模式每分钟1元,畅玩模式每分钟收费2元,默认情况下为普通模式,在boost按键按下之后进入畅玩模式。 游戏机采用预付费模式,输入端口money的数值为预付费用,在set信号有效时,将money的数值读入。输出端口remain的数值为剩余费用,当费用小于10元时,黄色信号灯yellow亮起。当费用不足时,红色信号灯red亮起,同时关闭电脑。在游戏过程中可以通过set端口续费。每次set信号有效将此时刻money的数值加到remain之中。 注:在程序中以每个时钟周期代表一分钟,每个单位大小表示1元。 模块的信号接口图如下: 请使用VerilogHDL语言实现,并编写 testbench 验证功能。
输入描述:
clk:系统时钟信号rst_n:复位信号,低电平有效money:10bit位宽的数据,表示充值数额,当set信号有效时,将该信号的数值加到游戏余额remain中set:充值信号,当信号等于1,表示用户充值。boost:游戏机模式切换信号,为1时,表示进入畅玩模式,每个时钟扣费2,即remain减二,为0时,表示普通模式,remain每个时钟减一。


输出描述:
remain:10bit位宽的数据,表示余额,根据充值数额和游戏模式变化yellow:指示灯,当remain大于0且小于10时,为1。red:指示灯,当余额不足时为1,其余时刻为0。
加载中...