基于verilog的数字钟设计_第1页
基于verilog的数字钟设计_第2页
基于verilog的数字钟设计_第3页
基于verilog的数字钟设计_第4页
基于verilog的数字钟设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

EDA论文题目基于VERILOG的数字钟设计学院通信与电子工程学院专业班级通信017班学生姓名大彬哥指导教师大力会2013年6月12日摘要数字时钟广泛用于各种场合,比如各种比赛的定时计数等,等都需要用到数字时钟。但是大多数的这些场合都需要很精确的定时计数,而不是一般的定时计数器,因此本设计就是为了这个原因而设计的设计的高精度的数字时钟。本设计中利用50MHZ的晶振为FPGA提供时钟。对其再设计时进行了分频得到。在本设计是在QUARTUSII环境下完成的,目标板是CYCLONEIIEP2C8Q208的FPGA核心板,显示部分采用七段数码管现实,所用到的是VERILOGHDL语言进行行为级的描述。关键词数字跑表QUARTUSII,VERILOGHDL,CYCLONGIIEP2C8Q208ABSTRACTTHEDESIGNFORAMULTIFUNCTIONALDIGITALCLOCK,WITHAYEAR,MONTH,DAY,HOURS,MINUTESANDSECONDSCOUNTDISPLAYTOA24HOURCYCLECOUNTHAVEPROOFFUNCTIONSANDTHEWHOLEPOINTTIMEKEEPINGFUNCTIONTHEUSEOFEDADESIGNTECHNOLOGY,HARDWAREDESCRIPTIONLANGUAGEVHDLDESCRIPTIONLOGICMEANSFORTHESYSTEMDESIGNDOCUMENTS,INMAXPLUSIITOOLSENVIRONMENT,ATOPDOWNDESIGN,BYTHEVARIOUSMODULESTOGETHERBUILDAFPGABASEDDIGITALCLOCKTHEMAINSYSTEMCHIPSUSEDEP2C8Q8208,MAKEUPOFTHECLOCKMODULE,CONTROLMODULE,TIMEMODULE,DATADECODINGMODULE,DISPLAYANDBROADCASTMODULEAFTERCOMPILINGTHEDESIGNANDSIMULATIONPROCEDURES,THEPROGRAMMABLELOGICDEVICETODOWNLOADVERIFICATION,THESYSTEMCANCOMPLETETHEYEAR,MONTH,DAYANDTHEHOURS,MINUTESANDSECONDSRESPECTIVELY,USINGKEYSTOMODIFY,CLEARED,STARTANDSTOPTHEDIGITALCLOCKKEYWORDSDIGITALCLOCKHARDWAREDESCRIPTIONLANGUAGEVERILOGHDL目录摘要IABSTRACTII第一章绪论111概述112FPGA发展现状113本文研究的意义214课题研究的内容2第二章字时钟的基本理论321主程序结构和流程322设计原理4221原理图介绍4222ATIUMDESIGNER69介绍4223VERILOGHDL介绍5224分析计算6第三章数字时钟的软件设计631开发软件介绍632代码生成BDF图6第四章单元电路设计841分频代码设计842毫秒代码设计843秒代码设计944分代码设计945复位代码设计1046键盘代码设计1047数码管显示代码设计10471数码管位码设计10472数码管段码设计11结论12参考文献13附录114附录219致谢21第一章绪论11概述FPGA(FIELDPROGRAMMABLEGATEARRAY),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电电路SIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(VERILOG或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(FLIPFLOP)或者其他更加完整的记忆块。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。12FPGA的发展现状事实上90年代后期FPGA市场就已经过一番激烈整合,许多业者不是退出PLD可程序化逻辑装置市场,就是出售其PLD业务部门,或将PLD业务部门分立成独立公司,或进行购并等。时至今日,FPGA市场的主要业者仅剩数家,包括ALTERA、XILINX赛灵思,过去称为智霖科技、ACTEL、ATMEL、LATTICE、QUICKLOGIC等,不过2007年11月QUICKLOGIC也确定淡出FPGA市场,并转进发展CSSPCUSTOMERSPECIFICSTANDARDPRODUCT。但FPGA领域依然有新兴业者出现,例如ACHRONIXSEMICONDUCTOR、MATHSTAR等。且除了单纯数字逻辑性质的可程序逻辑装置外,混讯、模拟性质的可程序逻辑装置也展露头角,例CYPRESSSEMICONDUCTORPSOCPROGRAMMABLESYSTEMONCHIP即具有可组态性的混讯电路,或如ACTEL公司也提出可程序化的混讯芯片FUSION,或者也有业者提出所谓的现场可程序化模拟数组FIELDPROGRAMMABLEANALOGARRAY;FPAA等,相信这些都能为可程序化芯片带来更多的发展动能。FPGA(现场可编程逻辑器件)产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。而应用的变化也使FPGA产品近几年的演进趋势越来越明显一方面,FPGA供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。此外,FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。13本文研究的意义技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件使产品的性能提高体积缩小功耗降低同时广泛运用现代计算机技术提高产品的自动化程度和竞争力缩短研发周期。EDA技术正是为了适应现代电子技术的要求美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MAXPLUSII或最新的QUARTUS开发环境更具有高性能开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术技术以大规模可编程逻辑器件为设计载体以硬件描述语言为系统逻辑描述主要表达方式以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具通过有关的开发软件自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译逻辑化简逻辑分割逻辑映射编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的并通过数码管动态显计时结果。数字钟可以由各种技术实现如单片机等利用可编程逻辑器件具有其他方式没有的特点它具有易学方便新颖有趣直观设计与实验项目成功率高理论与实践结合紧密体积小容量大I/O口丰富易编程和加密等特点并且它还具有开放的界面丰富的设计库模块化的工具以及LPM定制等优良性能应用非常方便。因此本设计采用可编程逻辑器件实现。112课题研究的必要性现在是一个知识爆炸的新时代。新产品、新技术层出不穷电子技术的发展更是日新月异。可以毫不夸张的说电子技术的应用无处不在电子技术正在不断地改变我们的生活改变着我们的世界。在这快速发展的年代时间对人们来说是越来越宝贵在快节奏的生活时人们往往忘记了时间一旦遇到重要的事情而忘记了时间这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年随着科技的发展和社会的进步,人们对数字钟的要求也越来越高传统的时钟已不能满足人们的需求。14课题研究的内容本设计通过FPGA目标板实现数字跑表的功能,FPGA芯片为CYCLONGII系列EP2C8Q208,外接50M晶振,采用七段数码管显示,在本设计中才用共阳的数码管。因为采用的是50MHZ晶振,因此分频是是整数分频,因此能提供精确的始终。还有按键控制,此设计还有一个特点就是只有管脚定以后就能在相应的FPGA板子上面跑起来,而很多在网上下载的代码总是缺少部分程序,不能直接在板子上面运行。第二章数字时钟的基本理论21主程序结构和流程本设计通过FPGA目标板实现数字跑表的功能,FPGA芯片为CYCLONGII系列EP2C8Q208,外接50M晶振,采用七段数码管显示,在本设计中才用共阳的数码管。因为采用的是50MHZ晶振,因此分频是是整数分频,因此能提供精确的始终。还有按键控制,此设计还有一个特点就是只有管脚定以后就能在相应的FPGA板子上面跑起来,而很多在网上下载的代码总是缺少部分程序,不能直接在板子上面运行。22设计原理221原理图介绍此图为本次设计的分装图,从图中可以看出输入输出引脚,方便与管脚的定义,只需要将所对应的引脚与目标板连接,然后将后面所附带的代码复制到软件中就可以实现数字跑表的功能,此设计中用到的元件有电阻,共阳数码管,因此在在下载程序之前一定确保数码管极性相同,否在会出现乱码。开关,三极管,还有FPGA芯片,在这次设计中用到的是EP2C8Q8208,芯片。其中的FPGA的芯片只画出了用到的几个引脚其他的没有画出来。其中的三极管起到电流放大的作用。数码管为七段共阴极数码管。222ATIUMDESIGNER69介绍虽然现在网上已经有了很多关于ALTIUMDESIGNER的文章了但是在此我还是详谈一些自己在实际应用中遇到是一些常见的问题此软件较PROTEL99SE相比更加人性化,与鼠标的联系更加紧密,如按住滚轮移动鼠标进行缩放(比网上提供的PAGEUP、PAGEDOWN更加方便)、按住右键可以挪动图纸、CTRL鼠标左键拖动连线会跟着延长等。这些与PROTEL99SE中纯键盘操作相比有了更大的便捷性。ALTIUMDESIGNER中3D效果比DXP2004和PROTEL99效果好很多,制作封装库文件时可以同时画好3D,非常方便。三地效果(快捷键为3)的支持使我们更加明了所画板的实物状态,根据对三地效果板的观察,可以让我们及时调整一些摆放不当的元器件。全局修改在画板过程中是必须掌握的一个关键技能,我们在这里举例说明一下这个问题,让大家能有一个清晰的认识,如将电阻单击右键选择FINDSIMILAROBJECTS,将会弹出一个对话框在PARTCOMMENT中找到SAMECURRENTFOOTPRINT一项,在其对应的选项框中选择SAME,再在对话框左下角的位置上选上SELECTMATCHING,最后点击OK按钮。223VERILOGHDL介绍VERILOGHDL是一种硬件描述语言(HDLHARDWAREDISCRIPTIONLANGUAGE),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VERILOGHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由GATEWAYDESIGNAUTOMATION公司(该公司于1989年被CADENCE公司收购)开发。两种HDL均为IEEE标准。VERILOGHDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDAGATEWAYDESIGNAUTOMATION公司的PHILMOORBY在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年MOORBY推出它的第三个商用仿真器VERILOGXL,获得了巨大的成功,从而使得VERILOGHDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得VERILOGHDL成为了该公司的独家专利。1990年CADENCE公司公开发表了VERILOGHDL,并成立LVI组织以促进VERILOGHDL成为IEEE标准,即IEEESTANDARD13641995VERILOGHDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把VERILOGHDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,VHDL的学习要困难一些。但VERILOGHDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。224分析计算在本设计中采用的是50MHZ的时钟,因此最低位的是十毫秒位,在设计中设计了一个19位的计数器,用来对时钟进行计数,当时钟记到500000时为10个毫秒,因此最低位进一,然后计数器清零,而最低位变为一,这样当有九个时钟来时,又向前进位继续计数,依次进位这样就可以实现数字时钟的计数器。第3章数字时钟软件设计31开发软件介绍QUARTUSCN10ENDELSEIFCNT_DIV19H7A120BEGINCNT_DIV19B0CN11ENDELSEBEGINCNT_DIVCNT1B1CN10ENDEND42毫秒电路实现代码ALWAYSPOSEDGECN1ORNEGEDGERST_NBEGINIFRST_NBEGINSLL4D0SHL4D0CN20ENDELSEIFPAUSEBEGINIFSLL4D9BEGINSLL4D0IFSHL4D9BEGINCN21SHL4D0ENDELSESHLSHL1B1ENDELSEBEGINSLLSLL1B1CN20ENDENDEND43秒电路设计代码ALWAYSPOSEDGECN2ORNEGEDGERST_NBEGINIFRST_NBEGINSL3D0SH3D0CN30ENDELSEIFSL4D5BEGINSL4D0IFSH4D5BEGINCN31SH4D0ENDELSESHSH1B1ENDELSEBEGINSLSL1B1CN30ENDEND44分钟实现代码ALWAYSPOSEDGECN3ORNEGEDGERST_NBEGINIFRST_NBEGINSML4D0SMH4D0ENDELSEIFSML4D5BEGINSML4D0IFSMH3D5BEGINSMH3D0ENDELSESMHSMH1B1ENDELSEBEGINSMLSML1B1ENDEND45复位电路代码设计ALWAYSPOSEDGECLKORNEGEDGERST_NBEGINIFRST_NCNT_SCAN0ELSECNT_SCANCNT_SCAN1B1ENDALWAYSPOSEDGECLKORNEGEDGERST_NIFRST_NCNT20D0ELSEIFKEY_ANCNT20D0ELSECNTCNT1B1ALWAYSPOSEDGECLKORNEGEDGERST_NIFRST_NLOW_SW_R3B111ELSELOW_SW_RLOW_SWWIRE20LED_CTRLASSIGNLED_CTRLLOW_SW_R2046键盘代码设计ALWAYSPOSEDGECLKORNEGEDGERST_NIFRST_NKEY_RST3B111ELSEKEY_RSTSW1_N,SW2_N,SW3_N/相当于是延时REG20KEY_RST_RALWAYSPOSEDGECLKORNEGEDGERST_NIFRST_NKEY_RST_R3B111ELSEKEY_RST_RKEY_RSTWIRE20KEY_ANKEY_RST_R47数码管显示代码设计471位码显示设计ALWAYSSM_BITBEGINCASESM_BIT8B1111_1110DATAOUT_BUFSMH8B1111_1101DATAOUT_BUFSML8B1111_1011DATAOUT_BUFSH8B1111_0111DATAOUT_BUFSL8B1110_1111DATAOUT_BUFSHL8B1101_1111DATAOUT_BUFSLL8B1011_1111DATAOUT_BUF3HA8B0111_1111DATAOUT_BUF3HADEFAULTDATAOUT_BUF0ENDCASEEND472段码显示设计ALWAYSDATAOUT_BUFBEGINCASEDATAOUT_BUF4H0SM_SEG7HC04H1SM_SEG7HF94H2SM_SEG7HA44H3SM_SEG7HB04H4SM_SEG7H994H5SM_SEG7H924H7SM_SEG7HF84H8SM_SEG7H804H6SM_SEG7H824H9SM_SEG7H904HASM_SEG7H00ENDCASEEND结论我觉得对我来说,最大的收获可能就是编写程序。我们写的程序一定要有可读性,因此这就要求我们养成良好加备注的习惯,更加便于交流和保存,还有就是以前总感觉语言学完了就会了,可是真正的遇到一个项目的时候,感觉无从下手,根本不知道该怎么编程序,看做好的实力吧,两三百条的代码,根本没办法看下去,因为他的设计思路跟我们的思路不一样,因此只有自己慢慢的一点点的编程序,在这里我还要说的一点就是我自己觉得不管你的编程水平有多高,我们都得编个模块验证一个,有错赶紧解决,不然等到代码边到了两三百条,眼看着代码也编完了,可是运行时错误百出,根本没办法改动,自己也失去了在此改动的信心,总觉得额可能自己的当时的思路就有问题,从而放弃了改动。也许这些错误都是编的时候的小错误,如果当时就养成编一个模块验证一个模块的话就不会出现这种情况了,自己编的程序肯定能按照自己的意愿来运行,本人就是没有一个一个的验证,从而等到全部代码完毕的时候才发现,错误竟然好几十条,根本没办法改动,这里改一处,那里又出现一处,改着改着自己也失去了信心,后来我就是编一段代码就验证一次,从而将这些代码全部的编写完毕,最后全编译的时候也没出现问题。同时也体会到了原来看似简单的设计,甚至感觉很简答的东西,当自己动手去做的时候才发现,原来并不是自己想象中的那么简单,自己认为正确的代码编译的时候就已经出现了错误,等自己调试好了,问题又出现了,在硬件上它不工作,或者不按照自己想的那么工作,因此,我们必须的细心地同时要对自己的设计的每一个细节都要有清楚的认识和理解,而不是似是而非的想法做,这样很容易走入误区,还没办法发现错误,因此在设计前一定要对自己的设计有很清楚的认识。参考文献1VERILOGHDL数字设计教程贺敬凯编著西安电子科技大学出版社20102VERILOGHDL综合实用教程JBHASKER著清华大学出版社20043VERILOGHDL数字系统设计及实践刘睿强,童贞理,尹洪剑编著电子工业出版社20114VERILOGHDL与数字ASIC设计基础罗杰主编华中科技大学出版社20085VERILOGHDL程序设计与实践云创工作室编著人民邮电出版社20096VERILOGHDL硬件描述语言杜建国编著国防工业出版社2004附录一程序代码MODULEPBCLK,RST_N,SM_SEG,SM_BIT,SW1_N,SW2_N,SW3_NINPUTCLK/时钟输入端口INPUTRST_N/复位多口INPUTSW1_N,SW2_N,SW3_N/按键OUTPUT70SM_SEG/数码管段码OUTPUT70SM_BIT/数码管位码/OUTPUTPAUSE,STOP,START/暂停停止开始三个按键/REGPAUSE,STOP,STARTREG70SM_BIT/数码管位码寄存器REG70SM_SEG/数码管段码寄存器REG150CNT_SCAN/分频计数器REG30DATAOUT_BUF/按键寄存器REG180CNT_DIV/分频计数器REGCN1,CN2,CN3/进位标志REG30SHL,SLL,SH,SL,SMH,SML/分秒毫秒高位和低位/分频计数器ALWAYSPOSEDGECLKORNEGEDGERST_NBEGINIFRST_NBEGINCNT_DIV19B0CN10ENDELSEIFCNT_DIV19H7A120BEGINCNT_DIV19B0CN11ENDELSEBEGINCNT_DIVCNT1B1CN10ENDEND/毫秒计数器ALWAYSPOSEDGECN1ORNEGEDGERST_NBEGINIFRST_NBEGINSLL4D0SHL4D0CN20ENDELSEIFPAUSEBEGINIFSLL4D9BEGINSLL4D0IFSHL4D9BEGINCN21SHL4D0ENDELSESHLSHL1B1ENDELSEBEGINSLLSLL1B1CN20ENDENDEND/秒计数器ALWAYSPOSEDGECN2ORNEGEDGERST_NBEGINIFRST_NBEGINSL3D0SH3D0CN30ENDELSEIFSL4D5BEGINSL4D0IFSH4D5BEGINCN31SH4D0ENDELSESHSH1B1ENDELSEBEGINSLSL1B1CN30ENDEND/分钟计数器ALWAYSPOSEDGECN3ORNEGEDGERST_NBEGINIFRST_NBEGINSML4D0SMH4D0ENDELSEIFSML4D5BEGINSML4D0IFSMH3D5BEGINSMH3D0ENDELSESMHSMH1B1ENDELSEBEGINSMLSML1B1ENDEND/复位清计数器ALWAYSPOSEDGECLKORNEGEDGERST_NBEGINIFRST_NCNT_SCAN0ELSECNT_SCANCNT_SCAN1B1END/数码管位码显示ALWAYSCNT_SCANBEGINCASECNT_SCAN15133B000SM_BIT8B1111_11103B001SM_BIT8B1111_11013B010SM_BIT8B1111_10113B011SM_BIT8B1111_01113B100SM_BIT8B1110_11113B101SM_BIT8B1101_11113B110SM_BIT8B1011_11113B111SM_BIT8B0111_1111DEFAULTSM_BIT8B1111_1110ENDCASEEND/数码管位码显示ALWAYSSM_BITBEGINCASESM_BIT8B1111_1110DATAOUT_BUFSMH8B1111_1101DATAOUT_BUFSML8B1111_1011DATAOUT_BUFSH8B1111_0111DATAOUT_BUFSL8B1110_1111DATAOUT_BUFSHL8B1101_1111DATAOUT_BUFSLL8B1011_1111DATAOUT_BUF3HA8B0111_1111DATAOUT_BUF3HADEFAULTDATAOUT_BUF0ENDCASEEND/数码管段码显示ALWAYSDAT

温馨提示

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

评论

0/150

提交评论