题解 | 游戏机计费程序
游戏机计费程序
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)
if(!rst_n)
remain <= 0;
else if(set)
remain <= remain + money;
else if(boost && (remain > 10'd1))
remain <= remain-10'd2;
else if(~boost && (remain > 10'd0))
remain <= remain-1'b1;
else
remain <= remain;
always@(posedge clk or negedge rst_n)
if(!rst_n) begin
yellow <= 0;
red <= 0;
end
else begin
yellow <=((remain >0) && (remain < 10'd10))? 1 : 0;
red <= (((boost && (remain < 10'd2))||(~boost && (remain <1))))?1:0;
end
endmodule
这道题我其实做的还有点迷茫。首先就是set、boost信号是按了按钮一直保持1还是只保持一个周期。
好像是一个周期(至少set应该是这样的)。
巨人网络成长空间 50人发布
查看19道真题和解析