基于verilog数字秒表设计实现生产实习报告.docxVIP

基于verilog数字秒表设计实现生产实习报告.docx

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于verilog数字秒表设计实现生产实习报告

班 级: 通信13-2班姓 名:闫振宇学 号:1306030222成 绩:基于verilog数字秒表的设计实现1. 概述硬件描述语言HDL ( HardwareDescription Langyage) 是一种用形式化方法来描述数字电路和系统的语言。数字电路系统的设计这里用这种语言可以从上层倒下层逐层描述自设计思想用一系列分层的模块来表示极其复杂的数字系统,然后用EDA 工具逐层验证,把其中需要为具体物理电路的模块组合由自动综合工具转换到门级电路网表。Verilog HDL 是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。使用VERILOG 进行系统设计时采用的是从顶至下的设计,自顶向下的设计是从系统机开始巴西同划分为若干个基本单元,然后再把每个单元划分为下一层的基本单元,这样下去直到可以直接用EDA 元件库中的基本元件来实现为止。2. 设计目的及要求有源晶振频率:50MHZ;测试计时范围:00’00”00 ~ 59’59”99,显示的最长时间为59分59 秒;数字秒表的计时精度是10ms;显示工作方式:六位BCD七段数码管显示读数,两个按钮开关(一个按钮使秒表复位,另一个按钮控制秒表的启动/暂停)。设计原理秒表的逻辑结构较简单,它主要由四进制计数器、十六进制计数器、分频器、数据选择器、和显示译码器等组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个清零信号,以便秒表能随意停止、启动以及清零复位。秒表有共有6个输出显示,其中6个显示输出数据,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应;6个计数器的输出全都为BCD码输出,这样便与同显示译码器连接。利用一块芯片完成除时钟源,按键和显示器之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用Verilog语言实现。这样设计具有体积小,设计周期短,调试方便,故障率地和修改升级容易等特点。本设计采用依次采用以下设计方法:按键输入缓存,键盘消抖设计;分频产生0.01秒信号,产生100HZ的时钟信号设计;数码管动态扫描显示设计;3-8译码器显示(译码)设计;流水线式计数方法设计。设计原理框图秒表计时器设计原理框图,如图4-1所示。图4-1 秒表计时器设计原理框图根据设计原理框图4-1,以及设计的要求及目的,可以将Verilog HDL语言设计的秒表计时程序分为四大模块:按键输入缓存,按键消抖模块;分频产生100HZ的时钟信号模块;数码管动态扫描显示驱动模块;计时处理部模块。软件设计5.1 按键输入缓存,按键消抖模块常在按键较少时可用硬件方法消除抖动,一般采用RS触发器作为常用的消抖电路,如果按键较多时,常用软件消除抖动。在EDA的设计应用中,软件消抖的方法即可使用?RS?触发器进行消抖,也可通过检测按键按下的时间进行消抖。5.1.1 按键输入缓存,按键消抖程序:always@(posedge count[16])beginkey_inner=key;endalways@(posedge key_inner[0])beginkey_flag=~key_flag;end5.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)beginif(count==249999)beginclk_100hz=~clk_100hz;count=0;endelsecount=count+1;end分频原理图,如图5-1所示。图5-1 分频原理图5.2.2

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档