ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:701.86KB ,
资源ID:588950      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-588950.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字跑表课程设计.doc)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数字跑表课程设计.doc

1、目 录一:设计目的2二:设计方案21.方案论证22.模块电路设计23.计时电路34.计数器模块35.数字跑表的流程图36. 控制信号的作用4三:设计总体框图5四:硬件电路设计与程序设计61. 设计思路62.控制模块63.十进制计数模块74.六进制计数模块75.数码管扫描模块76.七段译码显示模块8五:程序设计如下9六:编译仿真及硬件测试15 1.编译仿真152.顶层设计图153.仿真后得到如下仿真波形图16七. 硬件实验调试171.开始计时172.暂停173.清零18八实验心得及体会19九.参考文献20一:设计目的(1)学会利用Quartus和所学的数字电路知识,搭建复杂一点的数字电路或系统。

2、(2)学会使用EDA的程序语言FPGA/CPLD设计数字跑表,设计主要包括功能分析、方案设计和电路测试几个步骤。二:设计方案1.方案论证 数字跑表设三个输入端,分别为时钟输入(CLK),复位(CLR),启动、暂停按键(PUSE)。复位信号高电平有效,可对跑表异步清零;当启动、暂停键为低电平时跑表开始计时,为高电平时暂停,变低后在原来的数值基础上继续计数。数字跑表的结构示意图如下:图1跑表示意图 2.模块电路设计数字跑表实际上为计数器,数据选择器,七段数码管译码器等模块构成,核心模块应为计数器,其次为暂停控制和清零控制。3.计时电路计时电路又分为百分秒计时电路、秒计时电路和分计时电路三个模块。百

3、分秒计时电路是一个100进制的计数器,以100Hz输入信号作为计数时钟,其进位信号作为秒计数电路的计数时钟,当秒计数器计满时,产生的进位信号又作为分计数电路的计数时钟。电路的暂停和复位信号用于控制计时的开始、停止和清零。4.计数器模块数字跑表的计时器功能是,当PAUSE为低电平时开始计数,百分秒低位自加一,加到九时归零,百分秒高位自加一,加到九时归零,且向秒位发出一个高电平,秒低位自加一,加到九时归零,秒高位自加一,加到五时归零,且向分位发出一个高电平,分低位自加一,加到六时系统清零。5.数字跑表的流程图数字跑表主要由计时器,七段数码管译码器组成。流程框图如图所示。数码管译码器百分秒计数器 C

4、LKmsl pause秒计数器 clr分计数器 图2程序流程图6. 控制信号的作用 表1 控制信号的作用复位clr异步复位信号,高电平有效pause同步暂停信号,低电平有效计数。sel共阴数码管的位选信号seg共阴数码管的段选信号 三:设计总体框图图3设计总体框图四:硬件电路设计与程序设计1. 设计思路 数字秒表电路计时范围的要求为0.011小时,即59分59.99秒,所以这就需要获得一个比较精确的计时基准信号,此基准信号可以由CPLD/FPGA试验箱提供的频率具体设定分频器。分频器在实验中显得很重要,因为如果分频的要求达不到,便会出现诸如缺少数字位、计时不精确等实验现象。六进制计数器针对10

5、秒和10分位,十进制针对0.01秒、0.1秒、1秒和1分位,这是根据不同的计数进位而设定的。电路还需要一个扫描电路,对每一位的计时结果进行不断的扫描,扫描的速度要大于输入信号的频率,避免出现扫描滞后、显示的结果不是当前结果的现象。扫描的同时还需要一个位码电路。位码电路的作用是将数字秒表的各位选中,以便七段数码管的显示。2.控制模块为了方便控制所有计数模块清零和使能功能需要设计一个控制模块,所以该模块的功能就是控制什么时候发出置零信号和使能信号来控制计数器工作。其模块图如下图所示: Clk为开始/暂停功能按钮(下降沿有效),初次按下它clc(控制计数器清零)为低电平,en(使计数器计数)为高电平

6、;再次按下它时,clc保持为低电平,en跳变为低电平,如此重复循环。Reset为清零按钮(下降沿有效),无论何时按下它时,clc跳变为高电平,en变为低电平,以达到使计数器清零的目的。3.十进制计数模块此模块的功能就是完成十进制的计数功能,同时输出进位信号。其模块图如下图所示:Clk为时钟信号输入端,rst为计数器清零端(高电平有效),en为计数器使能端(高电平有效);daout为数据输出端,cout为进位信号输出端。4.六进制计数模块 此模块的功能就是完成六进制的计数功能,同时输出进位信号。其端口功能同十进制计数模块,在次不再重复诉说。5.数码管扫描模块该模块的功能是选择各个计数端口来的数据

7、,当相应的数据到来时,数据选择器选择数据后输出给七段译码器,同时输出位选信号,再接入到实验箱上的8字数码显示电路上就可显示了。 其模块图如下图所示:Clk为时钟信号输入端,msec1.minute2是各个计数端口来的数据的输入端,deout为数据选择器选择数据后输出端,sel为位选信号输出端。6.七段译码显示模块 该模块的功能就是把输入的四位二进制数据转换为七段数码管的显示编码,再输入到七段数码管中显示出数据。其模块图如下图所示:五:程序设计如下分频计的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FP ISPORT(CLK: IN

8、STD_LOGIC;NEWCLK: OUT STD_LOGIC);END FP;ARCHITECTURE ART OF FP IS SIGNAL CNTER: INTEGER RANGE 0 TO 10#29999#; BEGIN PROCESS(CLK) IS BEGIN IF CLKEVENT AND CLK=1 THEN IF CNTER=10#29999# THEN CNTER=0; ELSE CNTER=CNTER + 1; END IF; END IF;END PROCESS;PROCESS(CNTER) ISBEGIN IF CNTER=10#29999# THEN NEWCLK

9、=1; ELSE NEWCLK=0; END IF;END PROCESS;END ART;六进制计数器的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY TN6 ISPORT(CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT: OUT STD_LOGIC);END TN6;ARCHITECTURE ART OF TN6 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGIN

10、PROCESS(CLK,CLR,ENA) ISBEGINIF CLR=1 THEN CQI=0;ELSIF CLKEVENT AND CLK=1 THENIF ENA=1 THENIF CQI5 THEN CQI=CQI+1;ELSE CQI=0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI) ISBEGINIF CQI=5 THEN CARRY_OUT=1;ELSE CARRY_OUT=0; END IF;END PROCESS;CQ=CQI;END ART;十进制计数器源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_11

11、64.ALL;ENTITY TN10 ISPORT(CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT: OUT STD_LOGIC);END TN10;ARCHITECTURE ART OF TN10 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK,CLR,ENA) ISBEGINIF CLR=1 THEN CQI=0;ELSIF CLKEVENT AND CLK=1 THENIF ENA=1 THE

12、NIF CQI9 THEN CQI=CQI+1;ELSE CQI=0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI) ISBEGINIF CQI=9 THEN CARRY_OUT=1;ELSE CARRY_OUT=0; END IF;END PROCESS;CQ=CQI;END ART;扫描电路的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN ISPORT(scanclk:in std_logic;count1,Coun

13、t2,count3,count4,count5,count6:in std_logic_VECTOR(3 DOWNTO 0);S:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);DOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY SCAN;ARCHITECTURE DATAFLOW OF SCAN ISSIGNAL SS:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINPROCESS(scanclk)beginIF(scanclkEVENT AND scanclk=1)THENIF(SS=101)THENSS=

14、000;ELSESS=SS+1;END IF;END IF;END PROCESS;S=SS;DOUT=COUNT1 WHEN SS=000 ELSE COUNT2 WHEN SS=001 ELSE COUNT3 WHEN SS=010 ELSE COUNT4 WHEN SS=011 ELSE COUNT5 WHEN SS=100 ELSE COUNT6;END DATAFLOW;位码选择电路的源程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YIMA ISPORT(INP:

15、 IN STD_LOGIC_VECTOR(2 DOWNTO 0);OUTP: OUT BIT_VECTOR(7 DOWNTO 0);END YIMA;ARCHITECTURE ART OF YIMA ISBEGINOUTP(0)=1 WHEN INP=000 ELSE 0;OUTP(1)=1 WHEN INP=001 ELSE 0;OUTP(2)=1 WHEN INP=010 ELSE 0;OUTP(3)=1 WHEN INP=011 ELSE 0;OUTP(4)=1 WHEN INP=100 ELSE 0;OUTP(5)=1 WHEN INP=101 ELSE 0;OUTP(6)=1 WHE

16、N INP=110 ELSE 0;OUTP(7) LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED = 1000111;END CASE;END PROCESS;A=LED(6);B=LED(5);C=LED(4);D=LED(3);E=LED(2);F=LED(1);G=LED(0);END ART;六:编译仿真及硬件测试1.编译仿真当完成了以上秒表系统各个模块的VHDL设计,就可以使用Quartus对本设计进行编译和仿真。首先使用文本编辑器输入本设计的所有模块的源程序,先对各个模块进行编译和仿真,当所有模块全部编

17、译通过和仿真功能正确后,就可以利用图形编辑工具完成顶层设计,其设计图如顶层设计图所示。然后再对图形编辑器编辑出的顶层设计图进行全程编译,通过之后就可以进行系统的整体仿了。其中各个模块的仿真已在模块设计中完成,在此从略,下面只说明系统的整体仿真。2.顶层设计图 在仿真中,合理选取start和reset信号,就可以进行系统的整体仿真了。3.仿真后得到如下仿真波形图七. 硬件实验调试1.开始计时2.暂停图为运行至5.42秒暂停3.清零八实验心得及体会从实验中,我对整个流程有了初步了解;对实验进行了深入学习,让我掌握硬件描述语言Verilog HDL语言的语言规则,数据类型,语句结构和模块设计;接着是

18、最关键的编程,需要根据任务书分析需要的模块,编程并仿真。两周的课程设计已经结束,虽然时间很短,但是增强了我的实践动手能力,使我深刻地认识到仅仅学习课本上的知识是远远不够的,必须要多多动手,多多实践,才能真正理解并掌握所学的知识,达到学以致用的目的,为以后的工作积累了宝贵的经验,同时我也深深地感受到严谨的态度对于科学研究的重要性。由于在设计的过程中,一点点的失误都可能造成整个系统的瘫痪,所以每一个细节都要认真思考,认真操作,不能有丝百分的大意。这使我认识到要想做一个科研工作者是多么的不易!自己身上的缺点还有很多,要靠以后艰苦的努力来克服! 这次的课程设计给了我一次非常重要也非常难得的实践机会,使

19、我可以将平时课本上学习的理论知识应用于实际操作。设计的过程是十分艰苦的,由于从未接触过类似的领域,所以刚开始的时候一片茫然,不知道该干些什么。随着研究的逐渐深入,自己渐渐的摸出头绪,掌握了一些规律和方法,设计的成果也逐步成型,最终按照要求完成了设计。在实际操作的过程中,碰到了许多的困难,但最终在老师的耐心指导和同学的热情帮助下,按时完成了任务。在此对老师和同学们表示衷心的感谢! 最后感谢老师给与我这次宝贵的实践机会!九.参考文献1. 康华光主编.电子技术基础(数字部分),高等教育出版社。 2. 阎石主编. 电子技术基础(数字部分),清华大学出版社。3. 陈大钦主编,电子技术基础实验,高等教育出版社。4. 彭介华主编,电子技术课程设计指导,高等教育出版社。5. 张 原编著,可编程逻辑器件设计及应用,机械工业出版社。6. 荀殿栋,徐志军编著,数字电路设计实用手册,电子工业出版社。7. 刘洪喜,陆颖编著. VHDL电路设计实用教程 清华大学出版社 20

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2