燕山大学EDA课程设计数字跑表

时间:2019-05-15 10:28:25下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《燕山大学EDA课程设计数字跑表》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《燕山大学EDA课程设计数字跑表》。

第一篇:燕山大学EDA课程设计数字跑表

一、设计题目及要求 设计题目:数字跑表

要求:1 具有暂停,启动功能;

具有重新开始功能; 用六个数码管分别显示百分秒,秒和分钟。

二、设计过程及内容 总体设计:

第一,对于要实现的暂停、启动和重新开始功能,需要有一个控制模块完成相关控制。第二由题意可知需要一个分频模块,将实验箱提供的频率转换为100HZ即数字跑表百分秒的频率。第三是计时模块,完成跑表的百分秒、秒和分钟的计时功能。第四由于实验箱提供的数码显示是扫描显示,这就需要一个选时模块。第五部分则是显示模块。详细设计过程:

根据要求,将设计分成五个模块:

1、控制模块:使跑表具有启动、暂停及重新开始的功能;

2、分频模块:将实验箱所提供的频率转换为设计题目所需要的100HZ的时钟脉冲;

3、计时模块:进行百分秒、秒、分的计时,并且将当前时间输出给选时模块;

4、选时模块:从计时器得到当前时间输出给显示模块;

5、显示模块:通过数码管显示时间。

总图如下:

仿真波形:

第一个模块:控制模块

控制模块主要运用了两个D触发器,输入到触发器的时钟信号CLK1频率为2.86Hz,对电路起到了防抖的功能。

START/STOP为启动暂停按钮,当跑表为START状态时CLK端为高电平,Q为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,Q为0,时钟信号不输出,从而实现开始和暂停的功能。与门可控制时钟信号是否被输出到下一级。

RESET端为全局清零按钮,接到控制模块和计时模块的清零端,负责将计数器清零。当RESET为低电平时,控制模块和总计数器模块清零,跑表重新开始工作。电路图如下:

仿真波形:

第二个模块:分频模块

为了将实验箱提供的1465HZ转换成实验需要的100HZ,我将74161接成15进制计数器,实现分频的功能,转换为100HZ的近似时钟信号。然后将输出的时钟接入到计时模块。电路图如下: 3

仿真波形:

第三个模块:计时模块

计时模块由一个100进制计数器和两个60进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。100进制计数器和60进制计数器均采用两个74160,100进制采用并行进位方式,60进制采用整体置数方式。从100进制计数器和60进制计数器这三个输出端分别接出八个端口(百分秒、秒、分的个位及十位分别由四个二进制代码表示),将当前时间代码输送给选时模块,以实现时间的选择和显示。(百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D.)电路图如下:

仿真波形:

100进制计数器(count100): 仿真波形:

60进制计数器(count60):

仿真波形:

第四个模块:选时模块

选时模块由四个八选一数据选择器74LS151和一个地址选择器74LS161构成。

地址选择器74LS161接入一个1465 HZ的时钟信号,使能端和清零端接高电平,使其循环工作,产生的一组循环地址码接入到四个八选一数据选择器74LS151上,使其对地址相同的一组数据进行选择,产生四个二进制数CA,CB,CC,CD,即为数码管所要显示的数字的编码。同时,地址选择器74LS161产生一组循环地址码a、b、c,接到数码管的地址端,使其循环显示数字。

第一个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的最低位(H0A, H1A ,S0A,S1A, M0A, M1A), 第二个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的次低位(H0B,H1B ,S0B,S1B,M0B,M1B), 第三个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的第二位(H0C,H1C ,S0C,S1C,M0C,M1C), 第四个74LS151上的输入端为百分秒、秒、分个位及十位的四位二进制的第一位(H0D,H1D ,S0D,S1D,M0D,M1D),通过这四个八位二进制数比较器74LS151选出同一组数(百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D;秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D)作为输出CA,CB,CC,CD,接到显示模块输入端。电路图如下:

仿真波形:

第五个模块:显示模块

显示模块采用BCD—七段显示译码器7448对实验板上数码管进行驱 动。由选时模块输出的显示数字编码CA,CB,CC,CD接至输入端A,B,C,D,使输出端产生七位译码连接到实验箱公共数据输入端ABCDEDG,从而显示出数据。电路图如下:

仿真波形:

三、设计结论

两周的课程设计很快就结束了,虽然时间很短,但是收获颇丰。通过这次课程设计,我学到了许多关于EDA的知识,学习到了很多EDA的实用功能,更重要的是锻炼了我的实践动手能力,使我深刻地认识到仅仅学习课本上的知识是远远不够的,要多思考,多实践,才能真正把学到的知识用到实际中,而且我也深刻认识到通信专业在各个领域是多么有用武之地,更加使我有了学习深造的动力。

在设计的过程中遇到诸多问题,一个接一个,总结下来还是软件没有学深刻,出了问题也不知道如何排查,波形图一直找不到自己想看到的,后来经过问同学和自己的总结才知道这个仿真的时间要足够长,才能看到自己所需要的部分。让我知道做一件事之前的准备工作是多么重要,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。遇到问题才去翻书查资料,这些都是我以后要改进的地方。

这次的EDA课程设计给了我一次非常重要也非常难得的实践机会,使我可以将平时课本上学习的理论知识应用于实际操作。设计过程多于我这个专业知识还不牢固的很困难,先前两天看了课本学习了软件,每个子模块和波形图出来的都比较顺利,但当做到总图的时候遇到了很多困难,经过询问老师后也都解决了。实验箱的部分比较顺利,由于粗心连错了线,频率也没选对,总之过程很艰难,但最终还是做出来了。最后感谢老师给与我这次宝贵的实践机会!

第二篇:数字电路EDA课程设计数字跑表

EDA课程设计报告书

题目: 数字跑表

姓名: 班级: 学号: 成绩:

一、设计题目及要求 设计题目:数字跑表

要求:1 具有暂停,启动功能。

具有重新开始功能。用六个数码管分别显示百分秒,秒和分钟。

二、设计过程及内容

拿到题目后,我在图书馆进行了相关书籍的查阅,首先明确了题目中设计项目要实现的功能,再进一步确定实现其功能的组成部分和使用器件,对于本次设计的总体思路,首先是设计一个控制模块,可以使跑表具有启动、暂停及重新开始的功能;然后,利用一个分频模块即15进制计数器得到100HZ的时钟脉冲,接入到一个100*60*60三个计数器的模块中,完成对时间的计时工作和对选时模块的输出工作,使选时模块得到对应的时间,其次将选时模块与显示模块连接,使数码管显示选中的当前时间,从而完成了这次课程设计的设计工作,进入到实现过程中去。

根据课程设计要求将设计分为5个模块:

1、控制模块,使跑表具有启动、暂停及重新开始的功能;

2、分频模块,用于得到频率为100HZ的时钟脉冲;

3、计时模块,进行时间的计时,同时将当前时间输出给选时模块;

4、选时模块,从计时器得到当前时间输出给显示模块;

5、显示模块,进行时间的显示。总图如下: 第一个模块:控制器模块

与门可控制时钟信号的输出与否,当跑表为START状态时CLK端为高电平,QA为1,时钟信号输出,当跑表为STOP状态时CLK端为低电平,QA为0,时钟信号不输出,从而实现开始和暂停的功能。REST是清零按钮,REST接到控制模块和总计时器模块的清零端,当REST为高电平时,控制模块和总计数器模块清零,跑表重新开始工作。

第二个模块:分频器模块

将74161接成15进制计数器,将1465HZ的时钟频率转换成近似于100HZ的时钟信号即所需的输入时钟信号,从而实现分频功能。将得到的时钟信号输入到总计数器模块中去。第三个模块:计时模块

计时模块

本模块由两个60进制计数器和一个100进制计数器构成,从而实现百分秒向秒、秒向分的计数功能需求。60进制计数器及100进制计数器均采用两个74LS160,采用整体置数方式接成。从60进制计数器和100进制计数器这三个输出端分别印出八个端口(秒、分、时的个位及十位分别由四个二进制代码表示),将当前时间编码传送给选时模块,实现时间的选择和显示。(秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)

100进制计数器

60进制计数器

第四个模块:选时模块

本模块由四个八选一数据选择器74LS151和地址选择器74LS161构成。

地址选择器74LS161接入一个1465 HZ的时钟信号,使能端和清零端接高电平,使其循环工作,产生一组循环地址码A、B、C,接到数码管的地址端,使其循环显示数字。同时,地址选择器74LS161产生的一组循环地址码接入到四个八选一数据选择器74LS151上,使其对地址相同的一组数据进行选择,产生四个二进制数A0,A1,A2,A3,即为数码管所要显示的数字的编码。

第一个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的最低位(S0A,S1A, M0A, M1A, H0A, H1A), 第二个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的次低位(S0B,S1B,M0B,M1B,H0B,H1B), 第三个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的第二位(S0C,S1C,M0C,M1C,H0C,H1C), 第四个74LS151上的输入端为秒、分、百分秒个位及十位的四位二进制的第一位(S0D,S1D,M0D,M1D,H0D,H1D),通过这四个八位二进制数比较器74LS151选出同一组数(秒个位:S0A,S0B,S0C,S0D;秒十位:S1A,S1B,S1C,S1D;分个位:M0A,M0B,M0C,M0D;分十位:M1A,M1B,M1C,M1D;百分秒个位:H0A,H0B,H0C,H0D;百分秒十位:H1A,H1B,H1C,H1D.)作为输出A0,A1,A2,A3,接到显示模块输入端。

选时模块

第五个模块:显示模块

本模块采用BCD—七段显示译码器7448对实验板上数码管进行驱动。由选时模块输出的显示数字编码A0,A1,A2,A3接至输入端A,B,C,D,使输出端产生七位译码连接到实验箱公共数据输入端ABCDEDG,从而进行数据的显示。

显示模块

三、设计结论

两周的课程设计很快就结束了,虽然时间很短,但是收获颇丰。通过这次课程设计,我学到了许多关于EDA的知识,认识到了EDA的强大功能,更重要的是增强了我的实践动手能力,使我深刻地认识到仅仅学习课本上的知识是远远不够的,必须要多多动手,多多实践,才能真正理解并掌握所学的知识,达到学以致用的目的。同时我也深深地感受到严谨的态度对于科学研究的重要性。由于在设计的过程中,一点点的马虎都可能造成整个系统的瘫痪,所以每一个细节都要认真思考,认真操作,不能有丝 百分的大意。这使我认识到要想做一个科研工作者是多么的不易!自己身上的缺点还有很多,要靠以后艰苦的努力来克服!

这次的EDA课程设计给了我一次非常重要也非常难得的实践机会,使我可以将平时课本上学习的理论知识应用于实际操作。设计的过程是十分艰苦的,由于从未接触过类似的领域,所以刚开始的时候一片茫然,不知道该干些什么。随着研究的逐渐深入,自己渐渐的摸出头绪,掌握了一些规律和方法,设计的成果也逐步成型,最终按照要求完成了设计。在实际操作的过程中,碰到了许多的困难,但最终在老师的耐心指导和同学的热情帮助下,按时完成了任务。在此对老师和同学们表示衷心的感谢!

最后感谢老师给与我这次宝贵的实践机会!

第三篇:燕山大学EDA课程设计电子日历

燕 山 大 学 EDA课程设计报告书

姓名: 班级: 学号: 日期:

一、设计题目:电子日历

二、设计要求

1.能显示年、月、日、星期,如01.11.08 6,星期日显示8 2.年、月、日、星期可调 3.不考虑闰年

三、设计思路

为实现本电路要求,采取模块电路设计方法。本电路系统主要 包括以下三大模块:

1.计数模块 2.控制模块 3.译码器显示模块

四、设计过程

1.计数模块 1)星期计数模块

由于星期日要显示8,一般芯片难以实现,可通过四个JKFF触发器设计而成。电路图如下:

波形仿真图如下:

2)天计数模块

通过两个74160芯片作计数电路和DFF作去毛刺电路设计而成,若没有去毛刺电路,在硬件仿真时,月计数会出现连续计两次的情况。由于不同月份有不同天数(31、30、28),故需要三个输入端(C31、C30、C28)选择计数的进制,同一时刻只能有一个有效(输入高电平)。电路图如下:

C30端有效时的波形仿真图如下:

3)月计数模块

通过两个74160芯片设计而成,电路图如下:

波形仿真图如下:

4)月计数对天计数的反馈模块

通过画真值表列出逻辑表达式,从而设计出如下电路:

波形仿真图如下:

5)年计数模块

通过两个74160芯片设计而成,为了实现可调,将年个位对十位的进位输出端C先到控制模块上。电路图如下:

波形仿真图如下:

2.控制模块

时钟脉冲经CP端输入,K、Kweek、Kday、Kmonth、Kyear1、Kyear2为手动控制端。K端输入高电平时为调节状态,输入低电平时为自动计数状态。电路图如下:

3.译码器显示模块

该模块由一个74160芯片、四个数据选择74151和译码驱动器7449组成。电路图如下:

4.总图

连接控制模块和计数模块。电路图如下:

该部分波形仿真图如下:

在其中可以发现,月比天滞后1.5个时钟周期(其中1个时钟周期是由于天计数模块的去毛刺电路产生的),年个位比月滞后0.5个时钟周期,年十位比年个位滞后0.5个时钟周期。由于时间有限,知识经验不足等限制,在答辩前仍未解决该问题。

再连接译码器显示模块。电路图如下:

接通电源时,K端要先输入高电平,把月调到非0,才能在K端输入低电平后正常计数。

五、总结

第四篇:EDA课程设计——数字时钟

Hefei University

EDA课程综述

论文题目: EDA课程综述

专 业: 09通信(2)班

姓 名: 唐吉祥

学 号: 0905072035 指导老师: 查长军

随着基于PLD的EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息、通信、自动控制及计算机应用领域的重要性日益提高。

作为现在的大学生应熟练掌握这门技术,为以后的发展打下良好的基础,本实验设计是应用QuartusII环境及VHDL语言设计一个时间可调的数字时钟。使自己熟练使用QuartusII环境来进行设计,掌握VHDL语言的设计方法。要注重理论与实践之间的不同,培养自己的实践能力!

目录

一、课程设计任务及要求............................................................................................3

1.1实验目的..........................................................................................................3 1.2功能设计..........................................................................................................3

二、整体设计思想........................................................................................................3

2.1性能指标及功能设计......................................................................................3 2.2总体方框图......................................................................................................4

三、详细设计................................................................................................................4

3.1数字钟的基本工作原理:..............................................................................4

3.1.1时基T 产生电路..................................................................................4 3.1.2调时、调分信号的产生......................................................................4 3.1.3计数显示电路.......................................................................................5 3.2设计思路..........................................................................................................5 3.3设计步骤..........................................................................................................6

3.3.1工程建立及存盘...................................................................................6 3.3.2工程项目的编译...................................................................................7 3.3.3目标芯片的选择...................................................................................7 3.3.4时序仿真...............................................................................................8 3.3.5引脚锁定.............................................................................................10 3.3.6硬件测试.............................................................................................11 3.3.7实验结果.............................................................................................11

四、设计总结..............................................................................................................12

五、附录......................................................................................................................12

5.1 VHDL源程序..................................................................................................12 5.2配置符号图....................................................................................................17

一、课程设计任务及要求

1.1实验目的

1)掌握VHDL语言的基本运用

2)掌握QuartusII的简单操作并会使用EDA实验箱 3)掌握一个基本EDA课程设计的操作

1.2功能设计

1)有时、分、秒计数显示功能,小时为24进制,分钟和秒为60进制以24小时循环计时

2)设置复位、清零等功能

3)有校时功能,可以分别对时及分进行单独校时,使其校正到标准时间 4)时钟计数显示时有LED灯显示

二、整体设计思想

2.1性能指标及功能设计

1)时、分、秒计时器

时计时器为一个24进制计数器,分、秒计时器均为60进制计数器。当秒计时器接受到一个秒脉冲时,秒计数器开始从1计数到60,此时秒显示器将显示00、01、02、...、59、00;每当秒计数器数到00时,就会产生一个脉冲输出送至分计时器,此时分计数器数值在原有基础上加1,其显示器将显示00、01、02、...、59、00;每当分计数器数到00时,就会产生一个脉冲输出送至时计时器,此时时计数器数值在原有基础上加1,其显示器将显示00、01、02、...、23、00。即当数字钟运行到23点59分59秒时,当秒计时器在接受一个秒脉冲,数字钟将自动显示00点00分00秒。2)校时电路

当开关拨至校时档时,电子钟秒计时工作,通过时、分校时开关分别对时、分进行校对,开关每按1次,与开关对应的时或分计数器加1,当调至需要的时与分时,拨动reset开关,电子钟从设置的时间开始往后计时。2.2总体方框图

三、详细设计

3.1数字钟的基本工作原理:

3.1.1时基T 产生电路

数字钟以其显示时间的直观性、走时准确性作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。

由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz的、非常稳定的计数时钟脉冲。

3.1.2调时、调分信号的产生

由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59 时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。现在我们把电路稍做变动:把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz 的信号作为分计数 器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。调节小时的时间也一样的实现。

3.1.3计数显示电路

由计数部分、数据选择器、译码器组成,是时钟的关键部分。

1、计数部分:由两个60进制计数器和一个24 进制计数器组成,其中60 进制计数器可用6 进制计数器和10 进制计数器构成;24 进制的小时计数同样可用6 进制计数器和10 进制计数器得到:当计数器计数到24 时,“2”和“4”同时进行清零,则可实现24 进制计数。

2、数据选择器:84 输入14 输出的多路数据选择器,因为本实验用到了8个数码管(有两个用来产生隔离符号‘—’)。

3、译码器:七段译码器。译码器必须能译出‘—’,由实验二中译码器真值表可得:字母F 的8421BCD 码为“1111”,译码后为“1000111”,现在如果只译出‘—’,即字母F的中间一横,则译码后应为“0000001”,这样,在数码管上显示的就为‘—’。

3.2设计思路

根据系统设计要求,系统设计采用自顶向下设计方法,由时钟分频部分、计时部分、按键部分调时部分和显示部分五个部分组成。这些模块都放在一个顶层文件中。

1)时钟计数:

首先下载程序进行复位清零操作,电子钟从00:00:00计时开始。sethour可以调整时钟的小时部分, setmin可以调整分钟,步进为1。

由于电子钟的最小计时单位是1s,因此提供给系统的内部的时钟频率应该大于1Hz,这里取100Hz。CLK端连接外部10Hz的时钟输入信号clk。对clk进行计数,当clk=10时,秒加1,当秒加到60时,分加1;当分加到60时,时加1;当时加到24时,全部清0,从新计时。

用6位数码管分别显示“时”、“分”、“秒”,通过OUTPUT(6 DOWNTO 0)上的信号来点亮指定的LED七段显示数码管。

2)时间设置:

手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。3)清零功能: reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。

3.3设计步骤

3.3.1工程建立及存盘

1.打开 QuartusⅡ,单击“File”菜单,选择 File→New Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。

2.单击“File”菜单,选择New,弹出小对话框,双击“VHDL File“,即选中了文本编辑方式。在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择File→Save As,即出现“Save As”对话框。选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。

3.建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定。即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“Finish”按钮。3.3.2工程项目的编译

单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译完成后的屏幕如图所示:

3.3.3目标芯片的选择

选择菜单 Assignments 选项的下拉菜单中选择器件 Device „,如图所示: 在弹出的对话框中的 Family(器件序列栏)对应的序列名,EP1C3 对应的是 Cyclone 系列。在 Available Devices里选择 EP1C3T144-C8(有时需要把 Show advanced devices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致。

在图中,单击“Device and Pin Options„”,在弹出的“Device and Pin Options„”窗口中,单击“Unused Pins”标签。选择“As output driving an unspecified signal ”(由于学习机的“FPGA”具有很多功能,为了避免使用引脚对其它器件造成影响,保证本系统可靠工作,将未使用引脚设定为输出不定状态)后,单击确定后,无误后单击“OK”。

3.3.4时序仿真

建立波形文件:选择 File→New,在New窗中选中“Other File”标签。在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕。在出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder„„”。在屏幕中的 Filter 中选择 Pins,单击“List”。而后,单击“>>”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。然后单击屏幕右上脚的 “OK”。在出现的小屏幕上单击“OK”。

设定仿真时间宽度。选择 Edit → End time„选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。

波形文件存盘。选择File→Save as 选项,直接存盘即可。运行仿真器。在菜单中选择项,直到出现,仿真结束。

未曾编辑的仿真波形

仿真波形 3.3.5引脚锁定

将设计编程下载进选定的目标器件中,如EPF10K10,作进一步的硬件测试,将设计的所有输入输出引脚分别与目标器件的EPF10K10的部分引脚相接,操作如下:

1.选择 Assignments → Assignments Editor ,即进入 Assignments Editor编辑器。在Category 栏选择 Pin,或直接单击右上侧的 Pin 按钮。

2.双击 TO 栏的《new》,在出现的的下拉栏中选择对应的端口信号名(如 D[0]);然后双击对应的栏的《new》,在出现的下拉栏中选择对应的端口信号名的期间引脚号。

3.最后存储这些引脚锁定信息后,必须再编译(启动)一次,才能将引脚锁定信息编译进编程下载文件中。此后就可以准备将编译好的 SOF 文件下载到试验系统的FPGA中去了。

引脚锁定 3.3.6硬件测试

1.首先将下载线把计算机的打印机口与目标板(如开发板或实验板)连接好,打开电源,选择模式7。

2.打开编辑窗和配置文件。选择,弹出一个编辑窗。在Mode栏中选择JTAG,并在选项下的小方框打勾。注意核对下载文件路径与文件名。如果文件没有出现或者出错,单击左Add file侧按钮,手动选择配置文件 clock.sof。

3.最后单击下载标符Start,即进入对目标器件 FPGA 的配置下载操作。当 Progress 显示100%,以及在底部的处理栏中出现 Configuration Succeeded 时,表示编程成功,如图所示。注意,如果必要时,可再次单击 Start,直至编程成功。

4.下载完成后,通过硬件测试进一步确定设计是否达到所有的技术指标,如未达到,可逐步检查,哪部分出现问题。如果是代码出现问题,须修改代码;若是时序波形图有问题,须重新设置。

3.3.7实验结果

实验箱使用模式7,键8为复位按键,键8为1时正常工作。键4设置小时,键7设置分钟。

下载成功后,按下键8,及使六个LED复位清零,显示数秒的自动计时,可以通过4键设置小时数,7键设置分钟数。当秒数满60则进一位,分钟数满60进一位,当显示为23:59:59时,秒数在加一则显示00:00:00,之后从新计时。

四、设计总结

通过这次课程设计,我进一步加深了对电子设计自动化的了解。并进一步熟练了对QuartusII软件的操作。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。通过与同学探讨和请教老师,终于把问题都解决了,并加深了对数字时钟原理和设计思路的了解。

同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。

在此,也感谢康老师的悉心指导,使自己学到了很多东西!

五、附录

5.1 VHDL源程序

Alert模块

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY alert IS

PORT(clk:IN STD_LOGIC;

dain:IN STD_LOGIC_VECTOR(6 DOWNTO 0);

speak:OUT STD_LOGIC;

lamp:OUT STD_LOGIC_VECTOR(2 DOWNTO 0));END alert;ARCHITECTURE fun OF alert IS

SIGNAL count:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNAL count1:STD_LOGIC_VECTOR(1 DOWNTO 0);

BEGIN speaker:PROCESS(clk)

BEGIN

--speak<=count1(1);

IF(clk'event and clk='1')THEN

IF(dain=”0000000“)THEN

speak<=count1(1);

IF(count1>=”10“)THEN

count1<=”00“;--count1为三进制加法计数器

ELSE

count1<=count1+1;--speak<=count1(0);

END IF;

END IF;

END IF;

END PROCESS speaker;lamper:PROCESS(clk)

BEGIN

IF(rising_edge(clk))THEN

IF(count<=”10“)THEN

IF(count=”00“)THEN

lamp<=”001“;--循环点亮三只灯

ELSIF(count=”01“)THEN

lamp<=”010“;

ELSIF(count=”10“)THEN

lamp<=”100“;

END IF;

count<=count+1;

ELSE

count<=”00“;

END IF;

END IF;

END PROCESS lamper;END fun;Hour模块

LIBRARY IEEE;use IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY hour IS

PORT(clk,reset:IN STD_LOGIC;

daout:out STD_LOGIC_VECTOR(5 DOWNTO 0));END ENTITY hour;ARCHITECTURE fun OF hour IS SIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);

BEGIN

daout<=count;

PROCESS(clk,reset)

BEGIN

IF(reset='0')THEN count<=”000000“;--若reset=0,则异步清零

ELSIF(clk'event and clk='1')THEN

--否则,若clk上升沿到

IF(count(3 DOWNTO 0)=”1001“)THEN--若个位计时恰好到”1001“即9

IF(count<16#23#)THEN

--23进制

count<=count+7;

--若到23D则

else

count<=”000000“;

--复0

END IF;

ELSIF(count<16#23#)THEN

--若未到23D,则count进1

count<=count+1;

ELSE

--否则清零

count<=”000000“;

END IF;

--END IF(count(3 DOWNTO 0)=”1001“)

END IF;

--END IF(reset='0')

END PROCESS;END fun;Minute模块

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY minute IS

PORT(clk,clk1,reset,sethour:IN STD_LOGIC;

enhour:OUT STD_LOGIC;

daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY minute;ARCHITECTURE fun OF minute IS SIGNAL count :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enhour_1, enhour_2: STD_LOGIC;--enmin_1为59分时的进位信号 BEGIN

--enmin_2由clk调制后的手动调时脉冲信号串

daout<=count;

enhour_2<=(sethour and clk1);--sethour为手动调时控制信号,高电平有效

enhour<=(enhour_1 or enhour_2);PROCESS(clk,reset,sethour)

BEGIN

IF(reset='0')THEN--若reset为0,则异步清零

count<=”0000000“;

ELSIF(clk'event and clk='1')THEN--否则,若clk上升沿到

IF(count(3 DOWNTO 0)=”1001“)THEN--若个位计时恰好到”1001“即9

IF(count <16#60#)THEN--又若count小于16#60#,即60

IF(count=”1011001“)THEN--又若已到59D

enhour_1<='1';--则置进位为1

count<=”0000000“;--count复0

ELSE

count<=count+7;--若count未到59D,则加7,即作”加6校正“

END IF;--使前面的16#60#的个位转变为8421BCD的容量

ELSE

count<=”0000000“;--count复0(有此句,则对无效状态电路可自启动)

END IF;

--END IF(count<16#60#)

ELSIF(count <16#60#)THEN

count<=count+1;--若count<16#60#则count加1

enhour_1<='0' after 100 ns;--没有发生进位

ELSE

count<=”0000000“;--否则,若count不小于16#60# count复0

END IF;--END IF(count(3 DOWNTO 0)=”1001“)

END IF;--END IF(reset='0')

END process;END fun;Second模块

LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY second IS PORT(clk,reset,setmin:STD_LOGIC;

enmin:OUT STD_LOGIC;

daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY second;ARCHITECTURE fun OF second IS SIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL enmin_1,enmin_2:STD_LOGIC;

--enmin_1为59秒时的进位信号

BEGIN

--enmin_2由clk调制后的手动调分脉冲信号串

daout<=count;

enmin_2<=(setmin and clk);--setmin为手动调分控制信号,高电平有效

enmin<=(enmin_1 or enmin_2);--enmin为向分进位信号

PROCESS(clk,reset,setmin)

BEGIN

IF(reset='0')THEN count<=”0000000“;--若reset为0,则异步清零

ELSIF(clk 'event and clk='1')then--否则,若clk上升沿到

IF(count(3 downto 0)=”1001“)then

--若个位计时恰好到”1001“即9

IF(count<16#60#)then--又若count小于16#60#,即60H IF(count=”1011001“)then

--又若已到59D

enmin_1<='1';count<=”0000000“;--则置进位为1及count复0

ELSE

--未到59D

count<=count+7;--则加7,而+7=+1+6,即作”加6校正“

END IF;

ELSE

--若count不小于16#60#(即count等于或大于16#60#)

count<=”0000000“;

--count复0

END IF;

--END IF(count<16#60#)

ELSIF(count<16#60#)then--若个位计数未到”1001“则转此句再判

count<=count+1;

--若count<16#60#则count加1

enmin_1<='0'after 100 ns;--没有发生进位

ELSE

--否则,若count不小于16#60#

count<=”0000000“;

--则count复0

END IF;

--END IF(count(3 DOWNTO 0)=”1001")

END IF;

--END IF(reset='0')END PROCESS;END fun;5.2配置符号图

第五篇:EDA课程设计 数字时钟

EDA

课程设计报告

一·设计任务

使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。

二·设计要求

除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。

a)具有时,分,秒,计数显示功能,以24小时循环计时; b)具有时间清零功能;

c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。

d)具有闹钟功能,能预设闹钟时间,精确到秒。

整个数字钟只设一个时钟输入端口,所需不同频率信

号在内部分频实现。(LED扫描频率设为50Hz以上)。

三·设计方案

设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。计时模块:秒模块,分模块,时模块。闹钟模块,显示模块,控制模块。

四·模块端口设置

1.分频模块

输入:clkin :

本实验输入为50MHz晶振

输出:clk : 为显示模块及始终调节提供1KHz脉冲

clkt: 为计数器模块提供1Hz脉冲

2.计时模块

m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提

供。counta,count1 是手动调节时间。Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。sec1,min1,hour1 输出的是计时的秒,分,时。

3.闹钟模块

原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的

频率由clk 提供。countb,count2 是手动调节闹钟时间。amin,ahour 是输出的闹钟的分钟和 小时 4.控制模块

m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是

闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的

暂停与开始。change 接按键,手动调整时,每按一次,计数器加1;如果长按,则连续快

速加1,用于快速调时和定时;turn 接按键,在手动校时功能时,选择是调整小时,还是分

钟;若长时间按住该键,还可使秒信号清零,用于精确调时。count1,count2,counta,countb 分

别是用来调节计时时间和闹钟时间。LD_min,LD_hour,指示当前调节的是分钟还是小时。5 显示模块

输入:clk--1kHz时钟,提供高频扫描

in0、in1…in5--分别为时、分、秒的个位与十位信号

输出:a、b…g--数码管输入

d0、d1…d5--数码管选通

五.程序。

分频模块

module fenpin(clk,clkt,clkin);input clkin;output clk,clkt;reg clk,clkt;reg [31:0]out,t1;

initial t1<=0;initial out<=0;initial clk<=0;initial clkt<=0;

always@(posedge clkin)begin

out<=out+1;

if(out==20000)

begin

out<=0;

clk<=!clk;

end end

always@(posedge clk)

begin

t1<=t1+1;

if(t1==1000)

begin

clkt<=1;

t1<=0;

end

else

clkt<=0;end endmodule

计时模块 module jishi(clk,clk_1Hz, turn,mode,count1,counta,sec1,min1,hour1,num3,num4);input clk,clkt,turn,num3,num4;input mode;input count1,counta;output [7:0] sec1,min1;output [7:0] hour1;wire clkt,ct1,cta,turn,num3,num4;reg [7:0] sec1=0,min1=0;reg [7:0] hour1=0;reg [1:0] m;wire count1,counta;reg minclk,hclk;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m<=0;else m<=m+1;end /////秒钟计时模块////// always @(posedge clkt)

if((sec1==8'h59)|turn&(!m))///////若长时间按住该键,还可使秒信号清零,用于精确调时。begin sec1<=0;//按住“turn”按键一段时间,秒信号可清零,该功能用于手动精确调时

if(!(turn&(!m)))minclk<=1;///产生进位 end else begin if(sec1[3:0]==4'b1001)begin sec1[3:0]<=4'b0000;sec1[7:4]<=sec1[7:4]+1;end else sec1[3:0]<=sec1[3:0]+1;minclk<=0;end ////////分钟计时模?/// assign m_clk=minclk||count1;/////m_clk 产生进位或校正改变 assign ct1=(num3&clk)|(!num3&m_clk);//ct1 用于计时、校时中的分钟计数

always @(posedge ct1)begin if(min1==8'h59)begin min1<=0;hclk<=1;end else begin if(min1[3:0]==9)

begin min1[3:0]<=0;min1[7:4]<=min1[7:4]+1;end else min1[3:0]<=min1[3:0]+1;hclk<=0;end end ////////小时计时模块/// assign h_clk=hclk||counta;//////h_clk 产生进位或校正改变 assign cta=(num4&clk)|(!num4&h_clk);//cta 用于计时、校时中的小时计数

always @(posedge cta)if(hour1==8'h23)hour1<=0;else if(hour1[3:0]==9)begin hour1[7:4]<=hour1[7:4]+1;hour1[3:0]<=0;end else hour1[3:0]<=hour1[3:0]+1;Endmodule

闹钟模块

module alarm(clk,amin,ahour,num1,num2,count2,countb,LD_alert);input clk,num1,num2,count2,countb;output [7:0] amin;

output [7:0] ahour;output LD_alert;wire LD_alert;reg [7:0] amin=0;reg [7:0] ahour=0;assign ct2=(num1&clk)|(!num1&count2);//ct2 用于定时状态下调整分钟信号

assign LD_alert=(ahour|amin)?1:0;//指示是否进行了闹铃定时 always @(posedge ct2)if(amin==8'h59)amin<=0;else if(amin[3:0]==9)begin amin[3:0]<=0;amin[7:4]<=amin[7:4]+1;end else amin[3:0]<=amin[3:0]+1;assign ctb=(num2&clk)|(!num2&countb);////ctb 用于定时状态调节小时信号 always @(posedge ctb)if(ahour==8'h23)ahour<=0;else if(ahour[3:0]==9)begin ahour[3:0]<=0;ahour[7:4]<=ahour[7:4]+1;end else ahour[3:0]<=ahour[3:0]+1;Endmodule 控制模块

module ctrol(change,turn,count1,count2,counta,countb,pause,LD_min,LD_hour,mode);input change,mode,turn;output count1,count2,counta,countb,pause,LD_min,LD_hour;reg [1:0] m;reg fm=0,count1=0,count2=0,counta=0,countb=0,pause=0,LD_min=0,LD_hour=0;wire mode,turn,change;always @(posedge mode)//mode 信号控制系统在三种功能间转换 begin if(m==4)m<=0;else m<=m+1;end always @(posedge turn)//////////接按键,在手动校时功能时,选择是调整小时,还是分钟; begin fm<=~fm;end

always @(m or fm or change)begin case(m)2: begin ////////2:调节时间功能; if(fm)begin count1<=change;{LD_min,LD_hour}<=2;end//////指示当前调整的是分钟

Else

begin counta<=change;{LD_min,LD_hour}<=1;end/////指示当前调整的是小时 {count2,countb}<=0;end 1: begin //////1:调节闹钟功能 if(fm)begin count2<=change;{LD_min,LD_hour}<=2;end/////指示当前调整的是分 else begin countb<=change;{LD_min,LD_hour}<=1;end/////指示当前调整的是小时 {count1,counta}<=0;end

0: begin {count1,count2,counta,countb,LD_min,LD_hour}<=0;end ////0:计时功能 endcase end endmodule 显示模块

module show(min1,sec1,amin,hour1,ahour,MSH,MSL,SH,SL,MH,ML,min,sec,hour,mode);input [7:0] min1,sec1,amin;input [7:0] hour1,ahour;input[3:0] MSH,MSL,SH,SL,MH,ML;input mode;output [7:0] min,sec;output [7:0] hour;reg [7:0] min,sec;reg [7:0] hour;reg [1:0] m;always @(posedge mode)//mode 信号控制系统在三种功能间转换

begin if(m==4)m<=0;else m<=m+1;end always @(min1 or sec1 or amin or hour1 or ahour or m)begin case(m)0: begin hour<=hour1;min<=min1;sec<=sec1;end 1: begin hour<=ahour;min<=amin;sec<=8'hzz;end 2: begin hour<=hour1;min<=min1;sec<=8'hzz;end 3: begin

hour<={SH,SL};

min<={MSH,MSL};sec<={MH,ML};end endcase end Endmodule

实验分析 七

实验总结

八、参考资料

1、《EDA技术实用教程》

2、实验箱使用说明;

下载燕山大学EDA课程设计数字跑表word格式文档
下载燕山大学EDA课程设计数字跑表.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    EDA课程设计 数字时钟(闹钟)

    课 程 设 计 说 明 书 题目: 闹钟 学院(系): 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 共 16 页第 1 页 目 录 第1章 摘要……………………………………………………………......

    数字电子EDA课程设计八音电子琴

    燕山大学EDA课程设计 实验报告院系:信息科学与工程学院姓名: 班级: 学号: 日期: [实验名称] 八音电子琴 [实验要求] 1.能发出1.2.3.4.5.6.7.i八个音2.用按键作为键盘......

    燕山大学传感器课程设计(DOC)

    目录 摘要 电涡流位移传感器设计 一、设计要求 二、总体设计方案 三、电涡流传感器的基本原理 3-1电涡流效应和传感器等效电路 3-2电涡流形成的范围四、传感器的结构形式......

    EDA课程设计

    考试序号:28 自动打铃系统设计说明书 学 生 姓 名:周文江 学 号:14112502521 专 业 班 级:1102 报告提交日期:2013.11.26 湖 南 理 工 学 院 物 电 学 院 目录 一、题目及要......

    EDA 课程设计

    《电子系统设计自动化》课程设计报告 学 院: 机电工程学院 题 目: 数字时钟电路设计 课 程: 《电子系统设计自动化》课程设计 专业班级: 电信10级2 班 学生姓名: 刘星 秦玉杰 王......

    《EDA课程设计》

    《EDA课程设计》 课程设计题目: 基于单片机的温湿度采集系统 姓 名: xxx 学班时地 号:xxxx 级: xxxx 间:2014.4.21~ 2013.5.5 点: xxxxx 指 导老师: xxxxx 目录 一、电路原理......

    简易数字跑表设计5篇

    西安郵電大学 数字控制系统课程设计报告书 院(系)名称 : 学生姓名 : 专业名称 : 班级 : 时自 动 化 学 院 自动化 自动1103 间 : 2014年9月1日 至2014年9月12日 乘法器设计 一、......

    eda课程设计5篇

    数字钟 一、 设计要求 设计一个数字钟,具体要求如下: 1、 具有时、分、秒计数显示功能,以24小时循环计时。 2、 具有清零、校时、校分功能。 3、 具有整点蜂鸣器报时以及LED花......