基于verilog数字秒表的设计实现

基于verilog数字秒表的设计实现

ID:47402315

大小:133.27 KB

页数:19页

时间:2019-07-04

基于verilog数字秒表的设计实现_第1页
基于verilog数字秒表的设计实现_第2页
基于verilog数字秒表的设计实现_第3页
基于verilog数字秒表的设计实现_第4页
基于verilog数字秒表的设计实现_第5页
资源描述:

《基于verilog数字秒表的设计实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、生产实习报告班级:通信13-2班姓名:闫振宇学号:1306030222成绩:电子与信息工程学院信息与通信工程系基于verilog数字秒表的设计实现1.概述12硬件描述语言HDL(HardwareDescriptionLangyage)是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字

2、系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA元件库中的基本元件来实现为止。2.设计目的及要求a.有源晶振频率:50MHZ;b.测试计时范围:00’00”00~59’59”99,显示的最长时间为59分59秒;c.数字秒表的计时精度是10ms;d.显示工作方式:六位BCD七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的

3、启动/暂停)。3.设计原理秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应;612个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用Verilog语言实现。这样设

4、计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点。本设计采用依次采用以下设计方法:1)按键输入缓存,键盘消抖设计;2)分频产生0.01秒信号,产生100HZ的时钟信号设计;3)数码管动态扫描显示设计;4)3-8译码器显示(译码)设计;5)流水线式计数方法设计。3.设计原理框图秒表计时器设计原理框图,如图4-1所示。12图4-1秒表计时器设计原理框图根据设计原理框图4-1,以及设计的要求及目的,可以将VerilogHDL语言设计的秒表计时程序分为四大模块:1)按键输入缓存,按键消抖模块;2)分频产生100HZ的时钟信号模块;3)数码管动态扫描显示驱动模块;4)计时处理部模块。

5、5.软件设计5.1按键输入缓存,按键消抖模块常在按键较少时可用硬件方法消除抖动,一般采用RS触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法即可使用 RS 触发器进行消抖,也可通过检测按键按下的时间进行消抖。5.1.1按键输入缓存,按键消抖程序:always@(posedgecount[16])beginkey_inner<=key;endalways@(posedgekey_inner[0])beginkey_flag=~key_flag;end5.1.2键盘消抖工作原理:12设置输入信号key[1:0],设置一个模值为 4 的控制计数器k

6、ey_inner,判断计数寄存器count的第16位的上升沿,检测到key_inner为高电平。由于计数寄存器的位数为18位。则说明在0.01s内可以检测到4次高电平。在人工按键key=‘1’时,key_inner为‘1’,如连续 4 次检测到高电平则key_inner一直为‘1’。4 次以上检测到高电平key_inner依旧为‘1’,也一直输出高电平。这就确保了当按键信号持续高电平0.01s 以上按键信号才有效。抖动期间的高电平持续时间不足以输出高电平。如没有连续 4 次以上检测到高电平,则 key_inner为‘0’。再判断 key_inner的上升沿(按键按下为下降沿,弹起为上升沿)

7、,每当key_inner[0]出现一次上升沿(按键按下并弹起),key_flag将取反一次(设置key_flag的初值为‘0’)。5.2分频产生100HZ的时钟信号模块5.2.1分频产生100HZ的时钟信号程序:always@(posedgeclk)beginif(count==249999)beginclk_100hz<=~clk_100hz;count<=0;endelsecount<=count+1;end分频原理

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。