基于PFGA的数字跑表.doc_第1页
基于PFGA的数字跑表.doc_第2页
基于PFGA的数字跑表.doc_第3页
基于PFGA的数字跑表.doc_第4页
基于PFGA的数字跑表.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

基于fpga的数字跑表学院:物电学院姓名:学号:08417612班级:08(27)班日期:2011年6月28日目录一、实例的主要内容3二、实验目标:41初步掌握verilog hdl语言的设计方法42、完成一个数字跑表的设计。4三、实验原理:4四、程序代码及分析5五、实验步骤95.1新建一个文件夹,95.2创建工程105.3 编译、运行程序135.4导入波形145.5显示波形175.6波形运行后结果185.7引脚分配205.8引脚分配完成图21六、设计心得22七、参考文献22一、实验的主要内容通过对verilog hdl语言的编写一个具有“百分秒、秒、分”计时功能的数字跑表,可以实现一个小时以内精确至百分之一秒的计时器。数字跑表的显示可以通过编写数码管显示程序来实现,实现了计数及进位的设计,通过几个always模块的设计实现一个特定用途的模块-数字跑表。二、实验目标:1初步掌握verilog hdl语言的设计方法2、完成一个数字跑表的设计。三、实验原理:本字跑表首先要从最低位的百分秒计数器开始,按照系统时钟进行计数。计数至100后向秒计数器仅为,秒计数器一百分秒计数器的进位位为时钟进行计数。计数至60后向分计数器进位,分计数器以秒计数器的进位位为时钟进行计数。数字跑表巧妙地运用进位位作为时钟来 减少计数的位数。如果统一使用系统时钟作为计数时钟,那秒计数器将是一个6000进制的计数器,额分计数器将是一个3600000进制的计数器。这将极大的浪费fpga的逻辑资源。而使用进位位作为计数时钟,只需要一个100进制的计数器和两个60进制的计数器。在实际的设计中,为了是计数器更加简单,计数器使用高低位两个计时器来实现。100进制计数器分别是最高位10进制计数器,地位10进制计数器,60进制计数器分别是高6进制计数器,低位10进制计数器。这样整个数字跑表使用6个计数器来实现。同时由于10进制计数器重复使用了5次,可以使用独立的模块实现十进制计数器,这样就可以通过模块复用来节省整个模块使用的资源。数字跑表提供了清零为clr和暂停位pause,百分秒的时钟信号可以通过系统时钟分频提供。分频至1/100s,即可实现真实的时间计数。详细的时钟分频设计渎职可以参考相关的资料实现。代码中端口信号的定义:clk:时钟信号clr:异步复位信号pause:暂停信号msh、msl:百分秒的高位和低位sh、sl:秒信号的高位和低位mh、ml:分钟信号的高位和低位如图是本实例的数字跑表模块图。四、程序代码及分析module paobiao(clk,clr,pause,msh,msl,sh,sl,mh,ml);/端口说明input clk,clr;input pause;output 3:0 msh,msl,sh,sl,mh,ml;/内部信号说明reg 3:0 msh,msl,sh,sl,mh,ml;reg cn1,cn2;/cn1为百分秒向秒的进位,cn2为秒向分的进位/百分秒技术模块,每计满100,cn1产生一个进位always (posedge clk or posedge clr) begin if(clr) begin /异步进位msh,msl=8h00;cn1=0;end else if(!pause) begin/pause为0时正常计数,为1时暂停计数 if(msl=9) beginmsl=0;/低位计数至10时,低位归零if(msh=9) beginmsh=0;/低、高位计数至10时,高位归零cn1=1;/低、高位计数至10时,触发进位位endelse/低位计数至10,高位技术为止10时,高位计数msh=msh+1;endelse begin msl=msl+1;/低位计数未至10时,低位计数 cn1=0;/低位计数未至10时,触发进位位endendend/秒计数模块,每计满60,cn2产生一个进位always (posedge clk or posedge clr) beginif(clr) begin/异步复位sh,sl=8h00;cn2=0;end else if(sl=9) begin sl=0;/低位计数至10时,低位归零if(sh=5) begin sh=0;/低位计数至10时,高位计数至6位,高位归零cn2=1;/低位计数至10时,高位计数至6位,触发进位位endelse sh=sh+1;/低位计数至10时,高位计数未至6时,高位计数endelse beginsl=sl+1;/低位计数至10时,低位计数cn2=0;/低位计数至10时,不触发进位位endend/分钟计数模块,每计满60,系统自动清零always (posedge cn2 or posedge clr) beginif(clr) begin/异步复位mh,ml=8h00;endelse if(ml=9) beginml=0;/低位计数至10时,低位归零if(mh=5)mh=0;/低位计数至10,高位计数至6时,高位归零elsemh=mh+1;/低位计数至10时,高位计数未至6时,高位计数endelsemlstart comilation,运行程序2.若没有错进行下一步创建波形文件,单击fileother filesvector waveform file,5.4导入波形1.右击node finderlist,把元器件添加进去5.5显示波形1.波型图如下:2.更改类型5.6波形运行后结果1.如下所示:2、保存3、运行后的波形图5.7引脚分配(1)单击assignmentstiming analysis setting进行引脚分配(2)直接导入引脚分配,单击assignmentsimport assignments5.8引脚分配完成图完成引脚分配六、设计心得本次试验设计经过了四个阶段的程序设计,第一阶段是了解数字电子跑表的工作方式及其原理,确定设计的方向与方法以及确定设计过程中发需要的软件及工具。第二阶段是熟悉用quartus软件编写verilog hdl语言的方法,这一阶段侧重于对verilog hdl语言的基本掌握,在这一阶段中因为对verilog hdl语言不太熟悉,所以显得相对笨拙,进展也会相对缓慢。第三阶段是进行硬件的设计,在这个过程中,对软硬件结合出现的问题做了大量的工作,得到了比较理想的效果。总体上,笨设计已近达到了预期的效果,在软件上做了相关的功能仿真和时序仿真,也实现了再硬件上的测试,虽然离工程上的运行还比较远,但作为实验研究课题及达到了要求。在这一次课程设计过程中,我很是受益匪浅,不仅对自己在大三所学的只是进行了回顾,并积累了宝贵的经验和培养了自己额动手能力和运用所学知识解决实际问题的能力。通过这次实验,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性。从中得到了很多书上没有的知识。自己今后将会更加

温馨提示

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

评论

0/150

提交评论