当前位置:   article > 正文

基于FPGA的多功能时钟设计Verilog代码ISE仿真_verilog的alarm仿真波形

verilog的alarm仿真波形

名称:基于FPGA的多功能时钟设计Verilog代码ISE仿真(文末获取)

软件:Quartus

语言:Verilog

代码功能:

多功能时钟设计

1.能准确计时并显示小时、分钟和秒(为演示方便仿真时可自行调整计时单位完成从00:0:00到23:59:59的计时功能。

2.按键控制设定当前时间和闹

3.具备整点报时和闹钟报时功能

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

分频模块

按键下降沿检测模块

模式设置模块

计时模块

闹钟设置模块

响铃模块

数码管显示模块

部分代码展示:

//设置闹钟模块
module alarm_clock(
input clk_50M,
input [3:0] state_mode,//当前模式,4'd0:计时,4'd1:闹钟
input set_time_key,//设置时间
input confirm_key,//确认
input change_time_key,//设置时分秒
output reg [2:0] led_alarm_time,
output [7:0] alarm_hour_time,//时
output [7:0] alarm_minute_time,//分
output [7:0] alarm_second_time//秒
);
reg [7:0] hour=8'd16;//时
reg [7:0] minute=8'd59;//分
reg [7:0] second=8'd00;//秒
parameter state_time=2'd0;//正常计时状态
parameter state_set_hour=2'd1;//设置小时状态
parameter state_set_minute=2'd2;//设置小时状态
parameter state_set_second=2'd3;//设置秒状态
reg [1:0] state=state_time;//默认正常计时状态
always@(posedge clk_50M)
if(state_mode==4'd1)//当前模式,4'd0:计时,4'd1:闹钟
case(state)
state_time:
if(set_time_key)//设置键按下,进入设置小时状态
state<=state_set_hour;
else
state<=state_time;
state_set_hour:
if(confirm_key)//确认键按下,进入设置分钟状态
state<=state_set_minute;
else
state<=state_set_hour;
state_set_minute:
if(confirm_key)//确认键按下,进入设置秒状态
state<=state_set_second;
else
state<=state_set_minute;
state_set_second:
if(confirm_key)//确认键按下,返回正常计时状态
state<=state_time;
else
state<=state_set_second;
default:;
endcase
else
state<=state_time;
always@(posedge clk_50M)
case(state)
state_set_hour:
led_alarm_time<=3'b100;
state_set_minute:
led_alarm_time<=3'b010;
state_set_second:
led_alarm_time<=3'b001;
default:led_alarm_time<=3'b000;
endcase
always@(posedge clk_50M)
case(state)
state_set_hour:
if(change_time_key)
if(hour==8'd23)
hour<=8'd0;
else
hour<=hour+8'd1;
state_set_minute:
if(change_time_key)
if(minute==8'd59)
minute<=8'd0;
else
minute<=minute+8'd1;
state_set_second:
if(change_time_key)
if(second==8'd59)
second<=8'd0;
else
second<=second+8'd1;
default:;
endcase
assign alarm_hour_time=hour;
assign alarm_minute_time=minute;
assign alarm_second_time=second;
endmodule
源代码

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/730453
推荐阅读
相关标签
  

闽ICP备14008679号