名称:Quartus篮球比赛定时器verilog代码青创QC-FPGA开发板(文末获取)
软件:Quartus
语言:Verilog
代码功能:
1. 定时时间为30秒,按递减方式计时,每隔1秒定时器减1。
2. 定时器的时间用2位数码管进行显示;
3. 设置两个外部控制开关,控制定时器的直接复位、启动计时、暂停、连续计时;
4. 当定时器减到0时,保持计时器显示为0,同时发出报警信号。
另外,本代码还有支持24秒的工程文件
本代码已在青创QC-FPGA开发板验证,青创QC-FPGA开发板如下,其他开发板可以修改管脚适配:
1. 工程文件
2. 顶层原理图
3. 程序文件
编译
4. 仿真图
部分代码展示:
// 1. 定时时间为30秒,按递减方式计时,每隔1秒定时器减1。 // 2. 定时器的时间用2位数码管进行显示; // 3. 设置两个外部控制开关,控制定时器的直接复位、启动计时、暂停、连续计时; // 4. 当定时器减到0时,保持计时器显示为0,同时发出报警信号。 //计数器 module JISHUQI( input clk_in,//时钟 input en_1s,//1秒使能 input reset_n,//复位 input enable,//开始,暂停 output reg alarm,//报警 output [3:0] second_ten,//秒十位 output [3:0] second_one//秒个位 ); reg [3:0] ten=4'd0; reg [3:0] one=4'd0; always@(posedge clk_in or negedge reset_n) if(reset_n==0)//复位 begin ten<=4'd3; one<=4'd0; alarm<=0; end else if(enable==1)//开始计时 if(en_1s==1)//1秒使能 if(ten==4'd0 && one==4'd0) begin ten<=4'd0; one<=4'd0; alarm<=1;//报警 end else if(one==4'd0) begin ten<=ten-4'd1; one<=4'd9; alarm<=0; end else begin ten<=ten; one<=one-4'd1; alarm<=0; end else begin ten<=ten; one<=one; alarm<=alarm; end else //暂停 begin ten<=ten; one<=one; alarm<=0; end assign second_ten=ten; assign second_one=one; endmodule
完整代码
扫描文章末尾的公众号二维码