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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于VHDL的数字秒表设计.docx

1、基于VHDL的数字秒表设计河南农业大学课程设计报告设计题目: 基于VHDL的数字秒表的设计 学 院: 专 业: 电子信息科学与技术 班 级: 学 号: 姓 名: 电子邮件: 日 期: 成 绩: 指导教师: 装订线 河 南 农 业 大 学理 学 院课 程 设 计 任 务 书学生姓名 指导教师 学生学号 专业班级 题目 基于VHDL的数字秒表设计 任务与要求设计一个数字秒表,主要由显示译码器、分频器、十进制计数器、六进制计数器组成。在整个秒表中最关键的是如何获得一个精确的100HZ计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。秒表共有6个输出显示,分别为百

2、分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便于和显示译码器的连接。 合作人:分工方案:开始日期 2012年 12月 3日 完成日期2012年 月 9日 课程设计所在地点 一、 数字闹钟设计要求:1.四个十进制计数器:分别用来对百分之一秒、十分之一秒、秒和分进行计数;2.两个六进制计数器:用来分别对十秒和十分进行计数;3.分频器;用来产生100Hz计时脉冲;4.显示译码器:完成对显示译码的控制。3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。4、时、分、秒、百分之一秒显示准确。二、 实验目的:1、初步了解可编程

3、逻辑器件(PLD)的基本原理;2、熟练掌握MAX+Plus图形编辑器、文本编辑器等不同的输入设计方法,掌握EDA的自顶向下(Top to Down)的模块化设计思想;3、了解VHDL语言的语法、句法及结构,能看懂VHDl语言编写的程序,并能熟练运用MAX+Plus软件对各个程序模块进行波形仿真;4、熟悉顶层电路的原理图输入法,能应用EDA设计思想进行较复杂系统的分析和设计。三、设计方案:按照EDA自顶向下的设计理念,该数字秒表可以分为分频器模块、计数器模块、数据选择和数码管选择模块模块、数码管驱动模块,其顶层电路如下图所示。四、各个模块的功能:1、分频器模块:将2.5MHz的时钟信号转换成10

4、0Hz的计时脉冲,使秒表正常工作;2、计数器模块:这是本秒表设计的基本功能,对时间进行计数并在显示屏显示当前时间,这个模块中,分别有十进制计数器和六进制计数器,共用四个十进制,分别表示数字秒表的百分之一秒、十分之一秒、秒和分,两个六进制,分别表示数字秒表的十秒和十分;3、数据选择和数码管选择模块:通过每个计数器输入的dain信号对数码管进行选择,4、数码管驱动模块:通过对输入的信号进行编码,完成对7段数码管的驱动,使数码管显示出对应的数字;五、系统的各组成部分的原理框图及功能1、分频器的原理框图:2、六进制计数器的原理框图:3、十进制计数器的原理框图:4、选择模块的原理框图:5、译码显示电路的

5、原理框图:其中各部分功能如下:1、分频器将2.5MHz脉冲变成100Hz。2、六进制计数器能够实现6进制循环计数。3、十进制计数器能够实现10进制循环计数。4、选择模块通过每个计数器输入的dain信号对数码管进行选择5、译码显示电路通过对输入的信号进行编码,完成对7段数码管的驱动,使数码管显示出对应的数字。六、系统的主要模块VHDL源程序:1、分频器源程序clkgen:library ieee; use ieee.std_logic_1164.all;entity clkgen isport(clk:in std_logic; newclk:out std_logic);end entity

6、clkgen;architecture art of clkgen issignal cnter:integer range 0 to 10#24999#;beginprocess(clk)isbegin if clkevent and clk=1thenif cnter=10#24999# then cnter=0;else cnter=cnter+1; end if;end if;end process;process(cnter)isbeginif cnter=10#24999# then newclk=1;else newclk=0;end if;end process;end arc

7、hitecture art;2、六进制计数器源程序count6:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count6 is port (clk,clr,start:in std_logic; daout:out std_logic_vector(3 downto 0); cout:buffer std_logic );end count6;architecture behave of count6 is signal temp:std_logic_vector(3 downt

8、o 0);beginprocess(clk,clr) begin if clr=1 then temp=0000; cout=0; elsif clkevent and clk=1 then if start=1then if temp=0101 then temp=0000; cout=1; else temp=temp+1;cout=0; end if; elsif start=0 then temp=temp;cout=cout; end if; end if; end process;daout=temp; end behave; 3、十进制计数器源程序count10:library

9、ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count10 is port (clk,clr,start:in std_logic; daout:out std_logic_vector(3 downto 0); cout:buffer std_logic );end count10;architecture behave of count10 is signal temp:std_logic_vector(3 downto 0);beginprocess(clk,clr) begin if c

10、lr=1 then temp=0000; cout=0; elsif clkevent and clk=1 then if start=1then if temp=1001 then temp=0000; cout=1; else temp=temp+1; cout=0; end if; elsif start=0 then temp=temp;cout=cout; end if; end if; end process;daout=temp; end behave;4、数据选择和数码管选择模块模块源程序seltime:library ieee;use ieee.std_logic_1164.

11、all;USE ieee.std_logic_UNSIGNED.all;entity seltime is port(clr,clk: in std_logic; dain0,dain1,dain2,dain3,dain4,dain5: in std_logic_vector(3 downto 0); sel: out std_logic_vector(2 downto 0); daout: out std_logic_vector(3 downto 0);end seltime;architecture a of seltime is signal temp:integer range 0

12、to 5;begin process(clk) begin if (clr=1) then daout=0000; sel=000; temp=0; elsif (clk=1and clkevent) then if temp=5 then temp=0; else tempsel=000;daoutsel=001;daoutsel=010;daoutsel=011;daoutsel=100;daoutsel=101;daoutledledledledledledledledledledledledout(0);b=ledout(1);c=ledout(2);d=ledout(3);e=led

13、out(4);f=ledout(5);g=ledout(6);u1: count10 port map(clk,stop,start,daout1,count_cout(0);u2: count10 port map(count_cout(0),stop,start,daout2,count_cout(1);u3: count10 port map(count_cout(1),stop,start,daout3,count_cout(2);u4: count6 port map(count_cout(2),stop,start,daout4,count_cout(3);u5: count10

14、port map(count_cout(3),stop,start,daout5,count_cout(4);u6: count6 port map(count_cout(4),stop,start,daout6,count_cout(5);u7:cfq port map(clk2,count_cout(5),count_cout(6);u7:seltime port map(stop,clk,daout1,daout2,daout3,daout4,daout5,daout6,sel,daout7);u8: ym port map(daout7,ledout);u9: clkgen port

15、map(clk, newclk);end c;六、程序功能仿真图:1、count6仿真图如下示:2、count10仿真图如下示:3、seltime仿真图如下示:4、ym仿真图如下示:七、心得和体会 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。总的来说,这次设计的数字秒表还是比较成功的,虽然在实际的过程中曾经遇到了大量的问题,但是经过自己的努力,都给妥善解决了,这样的积累对于现在大学生来说是十分宝贵的。希望以后能有更多的动手实践机会,在硬件中

16、发现自己的不足,弥补自己的不足,最终成为一个合格的大学生。最后,特别感谢老师对我的帮助。八、参考文献1谭会生、张昌凡.EDA技术及应用.西安电子科技大学出版社,20062东方人华MAX+PLUS入门与提高清华大学出版社,2004EDA设 计 实 习 成 绩 评 定 表评定项目内 容满 分评 分总 分学习态度学习认真,态度端正,遵守纪律10答疑和设计情况认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力教强。40说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。40回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。10总成绩采用五级分制或百分制。五级分制:优、良、中、及格、不及格指导教师评语: 签 名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1