题解 | #游戏机计费程序#
游戏机计费程序
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) begin
remain<=0;
yellow<=0;
red<=0;
end
else begin
remain<=(set)?remain+money:(boost)?remain-2:remain-1;
yellow<=(remain<10&&remain>0);
red<=(remain==0);
end
end
endmodule
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) begin
remain<=0;
yellow<=0;
red<=0;
end
else begin
remain<=(set)?remain+money:(boost)?remain-2:remain-1;
yellow<=(remain<10&&remain>0);
red<=(remain==0);
end
end
endmodule