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

VIVADO数字式秒表设计Basys3开发板Verilog代码

05/12 15:05
713
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

名称:VIVADO数字式秒表设计Basys3开发板Verilog代码(代码在文末下载)

软件:VIVADO

语言:Verilog

代码功能:

数字式秒表:

设计一个数字秒表电路。设计要求:

(1)计时范围0:00.0~9:59.9″,分辨率为0.1s,用数码管显示计时值。

(2)秒表设有一个功能按键开关 ButtonIn。

当电路处于“初始”状态时,第一次按键,开始自动计时,再次按键,停止计时,第三次按键,计数器自动复位为0:00.0,即电路回到初始状态。

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

本代码已在Basys3开发板验证,开发板如下,其他开发板可以修改管脚适配:

basys3开发板.png

演示视频:

工程文件:

6ddfd95d-3032-4c7a-862c-0191ae09eff4.png

程序文件:

efc0aba8-80ef-4e39-8315-f229014fc770.png

程序编译:

1e09ec6a-c052-41ee-9f1b-6e126593895e.png

RTL图:

1e73c773-42e9-4dba-be95-2101dd4b715a.png

管脚分配:

0f97384f-4bff-4264-a90d-1a05847ddae3.png

部分代码展示:

`timescale?1ns?/?1ps
//控制模块
module?control(clk,in,reset,clr,count);
//?Inputs
input?clk;
input?in;//按键输入
input?reset;//复位输入
//?Outputs
output?clr;
output?count;
reg?clr=1;
reg?count=0;
reg?[1:0]?state=2'd0;
parameter?s_RESET=2'd0;
parameter?s_TIMING=2'd1;
parameter?s_STOP=2'd2;
always@(posedge?clk?or?posedge?reset)
if(reset==1)//复位
state<=s_RESET;
else
case(state)
s_RESET://初始状态
if(in==1)//按键输入
state<=s_TIMING;//计时状态
else
state<=s_RESET;//初始状态
s_TIMING://计时状态
if(in==1)//按键输入
state<=s_STOP;//停止状态
else
state<=s_TIMING;//计时状态
s_STOP://停止状态
if(in==1)//按键输入
state<=s_RESET;//初始状态
else
state<=s_STOP;//停止状态
default:;
endcase
always@(*)
if(reset==1)//复位
begin
clr=1;
count=0;
end
else
case(state)
s_RESET://初始状态
begin
clr=1;
count=0;
end
s_TIMING://计时状态
begin
clr=0;
count=1;
end
s_STOP://停止状态
begin
clr=0;
count=0;
end
default:;
endcase
endmodule

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

相关推荐