quartus实现基于Verilog HDL的数字秒表

基于Verilog HDL的数字秒表

一、前言

  • 用Verilog HDL设计一个数字跑表,其引脚和功能如下图:
    在这里插入图片描述
    在这里插入图片描述

二、实操

  1. 新建一个工程(如若不会可以参考之前的)
  2. 新建一个Verilog HDL文件,输入以下代码
    在这里插入图片描述
module biao(clk,reset,pause,msh,msl,sh,sl,minh,minl);
//其中msh为百分秒的十位,msl为百分秒的个位,sh为秒的十位,sl为秒的个位,minh为分的十位,minl为分的个位
input clk,reset,pause;
output [3:0] msh,msl,sh,sl,minh,minl;
reg [3:0] msh,msl,sh,sl,minh,minl;
reg count1,count2;
always @(posedge clk or posedge reset)
 begin
   if(reset)
	 begin
	{msh,msl}<=0;
	count1<=0;
	 end
	else if(!pause)
	 begin
	if(msl==9)
	  begin
	 msl<=0;
	 if(msh==9)
	   begin
	 msh<=0;
	 count1<=1;
	   end
	 else
	 msh<=msh+1;
	  end
	 else
	  begin 
	  msl<=msl+1;
	  count1<=0;
	  end
	 end
 end
always @(posedge count1 or posedge reset)
begin
if(reset)
	begin
	{sh,sl}<=0;
	count2<=0;
	end
else if(sl==9)
	begin
	sl<=0;
	if(sh==5)
		begin
		sh<=0;
		count2<=1;
		end
	else 
	sh<=sh+1;
	end
	else
	begin
	sl<=sl+1;
	count2<=0;
	end
end
always@(posedge count2 or posedge reset)
	begin
	if(reset)
	 begin
	minh<=0;
	minl<=0;
	 end
	else if(minl==9)
	begin
	 minl<=0;
	 if(minh==5)
	 minh<=0;
	 else
	 minh<=minh+1;
	 end
	 else
	 minl<=minl+1;
	 end
endmodule

编译到0 error。

  1. 新建一个仿真文件vwf
    调出输入输出,在这里插入图片描述

设置仿真波形图
在这里插入图片描述

全部修改后,编译运行可以看到波形
在这里插入图片描述

可以看到当msl完成0-9的一个循环时msh加一,当msh完成0-9的一个循环时sl加一,当sl完成0-9的一个循环时sh加一,从而实现秒表功能。

如果编译出现错误可以参考之前写的这篇博客

三、小结

了解了Verilog语言的编写,希望能在板子上实现此功能。

  • 3
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值