基于verilog数字秒表的设计实现_第1页
基于verilog数字秒表的设计实现_第2页
基于verilog数字秒表的设计实现_第3页
基于verilog数字秒表的设计实现_第4页
基于verilog数字秒表的设计实现_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

verilog数字秒表的设计实现ModifiedbyJACKontheafternoonofDecember26,2020:13-2:22与息工程息与工程系verilog概述HDL(HardwareDescription)EDAVerilogHDL、开关多抽象次建被建对象性介简单完整子之间能够按次并在相同显地进行时序建ERILOG进行时采顶至顶向机开始巴西同划分若干个基本单元再每个单元划基本单元样去直直接EDA元库基本元实现止。设计目的及要求a.有源晶振频率:50MHZ;.时范围:”0~”9显最长时间5959秒;秒时精度10ms;显作BCD七段码管显读两个按钮开关(个按钮使秒表位另个按钮控制秒启/暂停)。设计原理秒逻辑结构较简单它主四进制器、十六进制器、频器、据选择器、显译码器等成在整个秒最关键如何获得个精确100HZ计时脉冲除此之外整个秒还有个启信号个清零信号便秒能随意停止、启及清零位。秒有共有6个输出显6个显输出据别百之秒、十之一秒、秒、十秒、、十所共有6个器与之相对应;6个器输出全都为BCD码输出样便与同显译码器连接。利芯片完成除时钟源按键显器之外所有功能所有逻辑功能都在CPLD器Verilog实现样有积小周期短调试。本设计采用依次采用以下设计按键输入缓存键盘消抖设计;分频产生秒信号100HZ的时钟信号设计;数码管动态扫描显示设计;3-8译码器显示(译码)设计;流水线式计数法设计。原理框图秒表计时器设计原理框图4-1图4-1秒表计时器设计原理框图1gHDL语言设计的秒表计时程序分为四大模块:,按键消抖模块;100HZ的时钟信号模块;数码管动态扫描显示驱动模块;。,常在按键较少RS触发器作为常用的消抖电路,如果按键较多EDA的设应用中,软件消抖的方法即可RS触发器进行消抖,也可通过检测按键按下的间进行消抖。always@(posedgecount[16])beginkey_inner<=key;endalways@(posedgekey_inner[0])beginkey_flag=~key_flag;endkey[1:0],设置一个4的控制key_inner,判断数寄存count16key_inner为高电平。由于184次高电平。key=‘1’,key_inner为‘1’4key_inner一直为‘1’。4次以上检测到高电平key_inner依旧为‘1’,也一直输出高电平。这就确保了当按键信号持续高电平以上按键信号才有效。抖动期间的高电平持续间不足以输出高电平。如没有连续4次以上检测到高电平,则key_inner为‘0’。?key_inner的上升沿(按键按下为下降沿,弹起为上升沿),key_inner[0]出现一次上升沿(按键按下并弹起),key_flag将取反一次(key_flag的初值为‘0’)。产Th100HZ产Th100HZalways@(posedgeclk)beginif(count==249999)beginelse

end

clk_100hz<=~clk_100hz;count<=0;end

count<=count+1;5-1。原理:

5-150MHZ1s5107。每1持续间为s秒表计器最小单位所以要将50MHZ的5107进行5105即。动态扫描显示驱动模块动态扫描显示驱动程序:count[15])beginend

count3b=count3b+1;case(count3b)3'd5:dis_dat=hour[3:0];3'd4:dis_dat=hour[7:4];3'd3:dis_dat=hour[11:8];endcasesel=count3b;always@(dis_dat)begincase(dis_dat)0 : seg=8'b1100_0000;erilog 设5 erilog 设]于gL件:moduleled_on(input[1:0]key, //inputclk, //为50MHZ的时outputreg[2:0]sel, //数码管位选outputreg[7:0]seg, //数码管段outputen //3-8译码器使能);reg[2:0]count3b;reg[3:0]dis_dat; //定义显示数据寄存器reg[18:0]count; //定义计数寄存器reg[23:0]hour; //定义现在时刻寄存器regclk_100hz; //50MHZ的时钟500000分,得到100HZ的时钟regkey_flag; 启动/暂停的切换标志reg[1:0]key_inner;assignen=0;//(1)按键,按键消抖设置always@(posedgecount[16])//224次高电平beginkey_inner<=key;endalways@(posedgekey_inner[0])beginkey_flag=~key_flag;end//(2)秒100HZ的时钟always@(posedgeclk)beginif(count==249999)beginelse

end

clk_100hz<=~clk_100hz;count<=0;count<=count+1;end//3always@(posedgecount[15]//6一秒内26次方beginend

count3b=count3b+1;case(count3b)3'd5:dis_dat=hour[3:0];3'd4:dis_dat=hour[7:4];3'd3:dis_dat=hour[11:8];3'd2:dis_dat=hour[15:12];3'd1:dis_dat=hour[19:16];3'd0:dis_dat=hour[23:20];default:dis_dat=4'bxxxx;endcasesel=count3b;always@(dis_dat)begin“1”

case(dis_dat)0 seg8'b1100_0000;//“0”1 : seg8'b1111_1001;//示

endcase

default:seg=8'bxxxxxxxx;

2 : seg8'b1010_0100;//示3 : seg8'b1011_0000;//示4 : seg8'b1001_1001;//示5 : seg8'b1001_0010;//示6 : seg8'b1000_0010;//示7 : seg8'b1111_1000;//示8 : seg8'b1000_0000;//示9 : seg8'b1001_0000;//示//4always@(posedgeclk_100hz) beginif(~key_inner[1]&&key_flag==1) //beginhour=24'h0;endelseif(!key_flag)beginhour[3:0]=hour[3:0]+1;if(hour[3:0]==4'ha)begin

hour[3:0]=4'h0;hour[7:4]=hour[7:4]+1;if(hour[7:4]==4'ha)beginhour[7:4]=4'h0;hour[11:8]=hour[11:8]+1;if(hour[11:8]==4'ha)beginhour[11:8]=4'h0;hour[15:12]=hour[15:12]+1;if(hour[15:12]==4'h6)beginhour[15:12]=4'h0;hou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论