基于FPGA的定时器设计Verilog代码Quartus仿真

名称:基于FPGA的定时器设计Verilog代码Quartus仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

设计一个基于FPGA的定时器。

设计要求

1.系统主要外设:自恢复式按键4个(key1~key4)、LED灯1个、蜂鸣器1个、系统时钟(50MHz);

2.系统主要功能:能够通过按键改变定时的初始值,设置后进行自动倒计时,并通过数码管显示当前剩余时间。

备注:数码管上显示时、分、秒,并要求时、分、秒都可配置;倒计时结束,LED闪烁

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. testbench

6. 仿真图

部分代码展示:

module timing(
input clk_in,//50M
input reset,//复位
input start_key,//开始
input hour_key,//小时按键
input minute_key,//分钟按键
input second_key,//秒钟按键
output LED,
output [7:0] HEX0,//数码管-低亮
output [7:0] HEX1,//数码管-低亮
output [7:0] HEX2,//数码管-低亮
output [7:0] HEX3,//数码管-低亮
output [7:0] HEX4,//数码管-低亮
output [7:0] HEX5 //数码管-低亮
);
wire clk_1Hz;//1Hz时钟
wire[7:0]hour_set;//小时
wire[7:0]minute_set;//分钟
wire[7:0]second_set;//秒钟
wire[7:0]hour_out;//小时
wire[7:0]minute_out;//分钟
wire[7:0]second_out;//秒钟
//分频模块,分频到1Hz
fenping i_fenping(
. clk_50M(clk_in),
. clk_1Hz(clk_1Hz)
);
//时间设置
time_set i_time_set(
. clk_1Hz(clk_1Hz),//1Hz时钟
. hour_key(hour_key),//小时按键
. minute_key(minute_key),//分钟按键
. second_key(second_key),//秒钟按键
. hour_set(hour_set),//小时
. minute_set(minute_set),//分钟
. second_set(second_set)//秒钟
);
//时间倒计时
time_down i_time_down(
. clk_1Hz(clk_1Hz),//1Hz时钟
. reset(reset),//复位
. start_key(start_key),//开始
. LED(LED),
. hour_set(hour_set),//起始时间小时
. minute_set(minute_set),//起始时间分钟
. second_set(second_set),//起始时间秒钟
. hour_out(hour_out),//小时
. minute_out(minute_out),//分钟
. second_out(second_out)//秒钟
);
源代码

 扫描文章末尾的公众号二维码