名称: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开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
工程文件:
程序文件:
程序编译:
RTL图:
管脚分配:
部分代码展示:
`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
							阅读全文
							
						
					
								
								
								
713