• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

Quartus秒表设计verilog代码仿真

06/08 11:05
1151
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-231222110Z9532.doc

共1个文件

名称:Quartus秒表设计verilog代码仿真

软件:Quartus

语言:Verilog

代码功能:

设计一个可记录 60 秒时长的秒表,具有两个控制按键 k0 和 k1,基本功能如下:

(1)按下 k0,计时开始;再次按下 k0,计时暂停;再次按下 k0,计时继续。

(2)计时开始后,按下 k1,显示暂停,即显示的数字冻结,内部仍在计时;再次按下 k1,显示更新为新的计时时间,仍然冻结,内部仍继续计时。

(3)计时暂停时,按下 k1,计时复位清零。

(4)冻结显示时,按下 k0,恢复正常显示。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

整体仿真图

按键检测模块

分频模块

控制模块

显示模块

部分代码展示:

//设计一个可记录 60 秒时长的秒表,具有两个控制按键 k0 和 k1,基本功能如下:
//(1)按下 k0,计时开始;再次按下 k0,计时暂停;再次按下 k0,计时继续。
//(2)计时开始后,按下 k1,显示暂停,即显示的数字冻结,内部仍在计时;再次按
//下 k1,显示更新为新的计时时间,仍然冻结,内部仍继续计时。
//(3)计时暂停时,按下 k1,计时复位清零。
//(4)冻结显示时,按下 k0,恢复正常显示
module Digital_clock(
input clk_in,//有源晶振
input k0,//启动//暂停
input k1,//暂停//复位
output [5:0] bit_select,//数码管位选,低电平有效
output [7:0] seg_select//数码管段选,为低电平时,相应字段就点亮
);
wire [7:0] stopwatch_Millisecond;//10毫秒
wire [7:0] stopwatch_second;//秒
wire [7:0] stopwatch_minute;//分
wire k0_n;//启动//暂停
wire k1_n;//暂停//复位
wire clk_100Hz;
//按键检测
key_jitter i0_key_jitter(
. clkin(clk_in),
. key_in(k0),//输入
. key_negedge(k0_n)//消抖后按键下降沿
);
//按键检测
key_jitter i1_key_jitter(
. clkin(clk_in),
. key_in(k1),//输入
. key_negedge(k1_n)//消抖后按键下降沿
);
//分频模块,产生100Hz用于秒表计时
fenping fenping_Hz(
. clk_in(clk_in),
. clk_100Hz(clk_100Hz)//100Hz--对应10ms
);
//
//秒表控制模块
stopwatch i_stopwatch(
. clk_in(clk_in),
. clk_100Hz(clk_100Hz),//100Hz--对应10ms
. k0(k0_n),//启动//暂停
. k1(k1_n),//暂停//复位
. stopwatch_Millisecond(stopwatch_Millisecond),//10毫秒
. stopwatch_second(stopwatch_second),//秒
. stopwatch_minute(stopwatch_minute)//分
);
//数码管显示模块
display i_display(
. clk(clk_in),
. stopwatch_Millisecond(stopwatch_Millisecond),//10毫秒
. stopwatch_second(stopwatch_second),//秒
. stopwatch_minute(stopwatch_minute),//分
. bit_select(bit_select),//数码管位选
. seg_select(seg_select)//数码管段选
);
endmodule

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=395

  • 2-231222110Z9532.doc
    下载

相关推荐