数字秒表verilog电子秒表跑表,代码/视频

名称:数字秒表verilog电子秒表跑表

软件:Quartus

语言:Verilog

代码功能:

设计电子秒表,秒表时间精确到0.01秒,可通过按键控制秒表启动、暂停、复位。

代码需要在Mini_Star开发板验证。

开发板资料:

MiniStar_Nano核心板原理图.pdf

MiniStar_Nano底板原理图r.pdf

Mini_Star_4K板指导手册.pdf

演示视频:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=197

代码下载:

名称:数字秒表verilog电子秒表跑表(代码在文末付费下载)软件:Quartus语言:Verilog代码功能: 秒表的设计精确到0.01秒,可通过按键控制秒表启动、暂停、复位。 代码需要在Mini_Star开发板验证名称:数字秒表verilog电子秒表跑表(代码在文末付费下载)软件:Quartus语言:Verilog代码功能: 秒表的设计精确到0.01秒,可通过按键控制秒表启动、暂停、复位。 代码需要在Mini_Star开发板验证。开发板资料:MiniStar_Nano核心板原理图.pdfMiniStar_Nano底板原理图r.pdfMini_Star_4K板指导手册.pdf演示视频:FPGA代码http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=197

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

部分代码展示

复制代码
//跑表模块
module stopwatch(
input clk_in,
input clk_100Hz,//100Hz--对应10ms
input start_key,//启动//暂停
input reset_key,//复位
output [7:0] stopwatch_Millisecond,//10毫秒
output [7:0] stopwatch_second,//秒
output [7:0] stopwatch_minute//分
);
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_in)
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(start_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;//秒
reg [7:0] minute_cnt=8'd0;//分
always@(posedge clk_in)
if(state==reset_time_state)//复位状态
minute_cnt<=8'd0;
else
if(state==cnt_time_state && clk_100Hz==1)//计时状态
if(Millisecond_cnt==8'd99 && second_cnt==8'd59)//59秒99‘时向前记1分
if(minute_cnt<8'd59)
minute_cnt<=minute_cnt+8'd1;//计时到990ms,下一次就到1秒了
else
minute_cnt<=8'd0;
else
minute_cnt<=minute_cnt;
else;
always@(posedge clk_in)
if(state==reset_time_state)//复位状态
second_cnt<=8'd0;
else
if(state==cnt_time_state && clk_100Hz==1)//计时状态
if(Millisecond_cnt==8'd99)//990ms时向前记1秒
if(second_cnt<8'd59)
second_cnt<=second_cnt+8'd1;//计时到990ms,下一次就到1秒了
else
second_cnt<=8'd0;
else
second_cnt<=second_cnt;
else;
always@(posedge clk_in)
if(state==reset_time_state)//复位状态
Millisecond_cnt<=8'd0;
else
if(state==cnt_time_state && clk_100Hz==1)//计时状态
if(Millisecond_cnt<8'd99)//计时到990ms,下一次就到1秒了
Millisecond_cnt<=Millisecond_cnt+8'd1;
else
Millisecond_cnt<=8'd0;//计时到990ms,下一次就到1秒了
else;
assign stopwatch_Millisecond=Millisecond_cnt;
assign stopwatch_second=second_cnt;
assign stopwatch_minute=minute_cnt;
endmodule

设计文档:

  1. 工程文件
  1. 程序文件
  1. 程序编译
  1. RTL图
  1. 管脚分配
  1. Testbench
  1. 仿真图

整体仿真图

分频模块

控制模块

按键模块

显示模块

相关推荐
zlinear数据采集卡9 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
zlinear数据采集卡13 小时前
ZLinear产品线全景对比:D223 vs DABL7606 vs DABL-G511选型指南
arm开发·嵌入式硬件·算法·fpga开发·开源
何事误红尘17 小时前
ZYNQ学习FPGA笔记(一):vivado安装、XC7Z045
fpga开发
zlinear数据采集卡1 天前
D223的SRAM硬件记录仪:外部触发与瞬态波形捕获方案
arm开发·嵌入式硬件·fpga开发·开源
szxinmai主板定制专家2 天前
基于 RK3588 + Xilinx Kintex-7 FPGA 异构工业主控板设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·zynq
Rambo.xia2 天前
RFSoC高速采集卡设计项目:一块板卡串联综合优化5大核心技术
单片机·嵌入式硬件·fpga开发
XMAIPC_Robot2 天前
RK3588+STM32:高性能机器人运动控制解决方案,兼顾实时性与AI算力
人工智能·stm32·嵌入式硬件·算法·fpga开发·机器人·arm+fpga
zlinear数据采集卡2 天前
D223的DDS信号发生器:10000点查找表与4通道16位DAC波形输出
arm开发·嵌入式硬件·fpga开发·开源
物质波波波2 天前
WS-RPE:面向边缘物理AI实时特征值计算的硬件工作窃取调度器与冗余PE激活架构
人工智能·fpga开发·架构·系统架构·硬件架构
我爱C编程2 天前
基于FPGA的DSB调制解调系统verilog开发
fpga开发·verilog·fpga·dsb