简单秒表设计仿真verilog跑表

名称:简单秒表设计仿真(代码在文末付费下载)

软件:Quartus

语言:Verilog

代码功能:

秒表显示最低计时为10ms,最大为59:99,超出返回00:00

具有复位、启动、暂停三个按键

四个数码管分别显示4个时间数字。

演示视频:

FPGA代码资源下载网:hdlcode.com


部分代码展示

module stopwatch(
input clk,//100Hz--对应10ms
input start_key,//启动
input stop_key,//暂停
input reset_key,//复位
output reg [7:0] display0,//输出数码管显示
output reg [7:0] display1,//输出数码管显示
output reg [7:0] display2,//输出数码管显示
output reg [7:0] display3//输出数码管显示
);
parameter idle_state=3'd0;
parameter cnt_time_state=3'd1;
parameter hold_time_state=3'd2;
parameter reset_time_state=3'd3;
reg [2:0] state=3'd0;
//计时状态机
always@(posedge clk)
if(reset_key)
state<=reset_time_state;//复位状态
else
case(state)
reset_time_state://复位状态
state<=idle_state;
idle_state://空闲状态
if(start_key)
state<=cnt_time_state;
else
state<=idle_state;
cnt_time_state://计时状态
if(stop_key)
state<=hold_time_state;
else
state<=cnt_time_state;
hold_time_state://暂停状态
if(start_key)
state<=cnt_time_state;
else
state<=hold_time_state;
default:;
endcase
reg [7:0] Millisecond_cnt=8'd0;//10毫秒
reg [7:0] second_cnt=8'd0;//秒
always@(posedge clk)
if(state==reset_time_state)//复位状态
second_cnt<=8'd0;
else
if(state==cnt_time_state)//计时状态
if(Millisecond_cnt==8'd99)//990ms时向前记1秒
if(second_cnt<8'd59)
second_cnt<=second_cnt+8'd1;//计时到990ms,下一次就到1秒了

设计文档:

秒表仿真.doc

1.工程文件

2.程序代码

3.程序运行

4.Testbench

5.仿真图

秒表显示最低计时为10ms,最大为59:99,超出返回00:00

具有复位、启动、暂停三个按键

四个数码管分别显示4个时间数字。

1、整体仿真图

2、复位功能

3、启动按键

4、暂停按键

5、10ms毫秒计时

6、秒计时

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 简单秒表设计仿真verilog跑表

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员