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

数字秒表回看、正计、倒计数跑表verilog仿真

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

1-231019223002213.doc

共1个文件

名称:数字秒表设计正计、倒计数跑表(代码在文末付费下载)

软件:Quartus,ModelSim

语言:Verilog HDL

代码功能:

《数字秒表设计》项目要求

(1)计时精度 1ms,计时范围 00:00.000~99:59.999,对应分:秒:毫秒,对应的液晶屏能完整显示。

(2)设置 S3 为复位键,S0 为启动/暂停键,控制秒表复位、启动/暂停;设置 S2 为功能选择键,可在正计数模式、倒计数设置模式、倒计数工作模式、计数值回看模式之间轮流切换。切换任意模式后,原来的计数值不会消失。

(3)正计数模式时,总是从 00:00.000 开始,设置 S3 为复位键,S0 为启动/暂停键,控制秒表复位、启动、暂停。每暂停一次,就计数一次,若计数次数已经满 10 次,则后一次的计数值依次覆盖前一次的计数值。

(4)倒计数设置模式时,S3/S0 键选择调整位置;S4/S1 键进行±调整,在合法值域内变动。每按一次 S0,跳动(待修改)的位就向左移动一位,每按一次 S3,跳动(待修改)的位就向右移动一位,每按一次 S1,对应位的数字减少 1 ,每按一次 S4 ,对应位的数字增加 1;

(5)倒计数工作模式时,设置 S3 为复位键,S0 为启动/暂停键,控制秒表复位、启动、暂停。每暂停一次,就计数一次,若计数次数已经满 10 次,则后一次的计数值依次覆盖前一次的计数值。

(6)计数值回看模式时,S3/S0 键进行前/后翻操作,查看每次的计数值,最多能记录 10 次计数值。

需要的内容

需要仿真:所提及的按键、开关均通过自定激励文件进行模拟;提及的显示均通过输出信号表达,对显示的数字除非特别说明,均为十进制数字;提及的指示灯亮灭均通过输出信号的高低电平对应 。

演示视频:

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

部分代码展示

module?top(
input?clk_1KHz,//1ms
input?S0,S1,S2,S3,S4,
output??[7:0]?HEX0,//数码管-低亮
output??[7:0]?HEX1,//数码管-低亮
output??[7:0]?HEX2,//数码管-低亮
output??[7:0]?HEX3,//数码管-低亮
output??[7:0]?HEX4,//数码管-低亮
output??[7:0]?HEX5,//数码管-低亮
output??[7:0]?HEX6?//数码管-低亮
);
wire?store_en_1;//存储信号
wire?store_en_2;//存储信号
wire?[1:0]?mode;
wire?[9:0]?Millisecond;//毫秒
wire?[7:0]?second;//秒
wire?[7:0]?minute;?//分
wire?[9:0]?Millisecond_set;//毫秒
wire?[7:0]?second_set;//秒
wire?[7:0]?minute_set;//分
wire?[9:0]?down_Millisecond;//毫秒
wire?[7:0]?down_second;//秒
wire?[7:0]?down_minute;?//分
wire?[9:0]?call_Millisecond;//回看毫秒
wire?[7:0]?call_second;//回看秒
wire?[7:0]?call_minute;?//回看分
//跑表模块
//正计数模式时,总是从?00:00.000?开始,设置?S3?为复位键,S0?为启动/暂停键,控制秒表复位、启动
//、暂停。每暂停一次,就计数一次,若计数次数已经满?10?次,则后一次的计数值依次覆盖前一次的计数值。
stopwatch?i_stopwatch(
.?clk_1KHz(clk_1KHz),//1ms
.?mode(mode),
.?start_key(S0),//启动/暂停--S0
.?reset_key(S3),//复位--S3
.?store_en(store_en_1),//存储信号
.?Millisecond(Millisecond),//毫秒
.?second(second),//秒
.?minute(minute)?//分
);
//倒计数设置模式时
//S3/S0?键选择调整位置;S4/S1?键进行±调整,在合法值域内变动。
//每按一次?S0,跳动(待修改)的位就向左移动一位,每按一次?S3,
//跳动(待修改)的位就向右移动一位,每按一次?S1,对应位的数字减少?1?,
//每按一次?S4?,对应位的数字增加?1;
set_time?i_set_time(
.?clk_1KHz(clk_1KHz),//1ms
.?mode(mode),
.?S0(S0),//左移动一位
.?S1(S1),//数字减少?1
.?S3(S3),//右移动一位
.?S4(S4),//数字增加?1
//倒计时起始时间
.?Millisecond_set(Millisecond_set),//毫秒
.?second_set(second_set),//秒
.?minute_set(minute_set)?//分
);
//倒计数工作模式时
//倒计数工作模式时,设置?S3?为复位键,S0?为启动/暂停键,控制秒表复位、启动、暂停。
//每暂停一次,就计数一次,若计数次数已经满?10?次,则后一次的计数值依次覆盖前一次的计数值。
downtime?i_downtime(
.?clk_1KHz(clk_1KHz),//1ms
.?mode(mode),
.?start_key(S0),//启动/暂停--S0
.?reset_key(S3),//复位--S3
//倒计时起始时间
.?Millisecond_set(Millisecond_set),//毫秒
.?second_set(second_set),//秒
.?minute_set(minute_set),//分
.?store_en(store_en_2),//存储信号
.?Millisecond(down_Millisecond),//毫秒
.?second(down_second),//秒
.?minute(down_minute)?//分
);
//回看模式
//计数值回看模式时,S3/S0?键进行前/后翻操作,查看每次的计数值,最多能记录?10?次计数值。
call_back?i_call_back(
.?clk_1KHz(clk_1KHz),//1ms
.?mode(mode),
.?call_before(S3),//S3-前翻操作
.?call_later(S0),//S0--后翻操作
.?store_en(store_en_1?||?store_en_2),//存储信号
.?Millisecond(Millisecond),//毫秒
.?second(second),//秒
.?minute(minute),//分
.?down_Millisecond(down_Millisecond),//毫秒
.?down_second(down_second),//秒
.?down_minute(down_minute),//分
.?call_Millisecond(call_Millisecond),//回看毫秒
.?call_second(call_second),//回看秒
.?call_minute(call_minute)?//回看分
);
//显示模式
display?i_display(
.?clk(clk_1KHz),
.?S2(S2),//模式切换,在正计数模式、倒计数设置模式、倒计数工作模式、计数值回看模式之间轮流切换
.?mode(mode),
????//正计时
.?Millisecond(Millisecond),//毫秒
.?second(second),//秒
.?minute(minute),//分
????//倒计时
.?down_Millisecond(down_Millisecond),//毫秒
.?down_second(down_second),//秒
.?down_minute(down_minute),//分
????
????//倒计时起始时间
.?Millisecond_set(Millisecond_set),//毫秒
.?second_set(second_set),//秒
.?minute_set(minute_set),//分
????
????//回看时间
.?call_Millisecond(call_Millisecond),//回看毫秒
.?call_second(call_second),//回看秒
.?call_minute(call_minute),//回看分
.?HEX0(HEX0),//数码管-低亮
.?HEX1(HEX1),//数码管-低亮
.?HEX2(HEX2),//数码管-低亮
.?HEX3(HEX3),//数码管-低亮
.?HEX4(HEX4),//数码管-低亮
.?HEX5(HEX5),//数码管-低亮
.?HEX6(HEX6)?//数码管-低亮
);
endmodule

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. RTL图

5. Testbench

6. 仿真图

整体仿真图

正计时模块

倒计时设置

倒计时计时

回看模块

显示模块

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

  • 1-231019223002213.doc
    下载

相关推荐