77范文网 - 专业文章范例文档资料分享平台

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

来源:网络收集 时间:2020-05-08 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

班 级: 通信13-2班 姓 名: 闫振宇 学 号: 1306030222 成 绩:

生产实习报告

电子与信息工程学院 信息与通信工程系

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

1. 概述

硬件描述语言HDL ( HardwareDescription Langyage) 是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA 工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG 进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA 元件库中的基本元件来实现为止。

2. 设计目的及要求

a. 有源晶振频率:50MHZ;

b. 测试计时范围:00?00”00 ~ 59?59”99,显示的最长时间为59分59 秒; c. 数字秒表的计时精度是10ms;

d. 显示工作方式:六位BCD七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)。

3. 设计原理

秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。

秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应;6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。

利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用Verilog语言实现。这样设计具有体积小,设计周期短,调试方

1

便,故障率地和修改升级容易等特点。

本设计采用依次采用以下设计方法: 1) 按键输入缓存,键盘消抖设计;

2) 分频产生0.01秒信号,产生100HZ的时钟信号设计; 3) 数码管动态扫描显示设计; 4) 3-8译码器显示(译码)设计; 5) 流水线式计数方法设计。

4. 设计原理框图

秒表计时器设计原理框图,如图4-1所示。

图4-1 秒表计时器设计原理框图

根据设计原理框图4-1,以及设计的要求及目的,可以将Verilog HDL语言设计的秒表计时程序分为四大模块:

1) 按键输入缓存,按键消抖模块; 2) 分频产生100HZ的时钟信号模块; 3) 数码管动态扫描显示驱动模块;

2

4) 计时处理部模块。

5. 软件设计

5.1 按键输入缓存,按键消抖模块

常在按键较少时可用硬件方法消除抖动,一般采用RS触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法即可使用 RS 触发器进行消抖,也可通过检测按键按下的时间进行消抖。

5.1.1 按键输入缓存,按键消抖程序:

always@(posedge count[16]) begin end

always@(posedge key_inner[0]) begin end

key_flag=~key_flag; key_inner<=key;

5.1.2 键盘消抖工作原理:

设置输入信号key[1:0],设置一个模值为 4 的控制计数器key_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的上升沿(按键按下为下降沿,弹起为上升沿),每当key_inner[0]出现一次上升沿(按键按下并弹起),key_flag将取反一次(设置key_flag的初值为?0?)。

5.2 分频产生100HZ的时钟信号模块

5.2.1 分频产生100HZ的时钟信号程序:

always@(posedge clk)

3

begin end

分频原理图,如图5-1所示。 if(count==249999)

begin end

clk_100hz<=~clk_100hz; count<=0;

else

count<=count+1;

图5-1 分频原理图

5.2.2 分频原理:

由于开发板的输入频率为50MHZ的时钟信号,说明1s产生5?107个时钟信号。每个

4

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于verilog数字秒表的设计实现在线全文阅读。

基于verilog数字秒表的设计实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1034925.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: