EDA论文.docx
《EDA论文.docx》由会员分享,可在线阅读,更多相关《EDA论文.docx(26页珍藏版)》请在冰点文库上搜索。
EDA论文
EDA(II)
设计实验报告
实验名称:
多功能数字钟
指导老师:
姓名:
学号:
院系:
实验时间:
第一部分:
摘要
摘要和关键词…………………………………………….2
第二部分:
正文
设计要求说明…………………………………………….3
一、实验内容………………………………………3
二、实验目的………………………………………3
三、实验要求………………………………………3
方案论证………………………………………………….3
各子模块设计原理………………………………………4
调试……………………………………………………....5
一、脉冲发生电路…………………………………5
二、计时电路………………………………………7
三、译码显示电路…………………………………11
四、附加电路(万年历)……………………………12
实验心得体会……………………………………………22
附录………………………………………………………22
参考书目……………………………………………22
摘要
文章里,我们将用QuartusII软件进行模拟仿真并设计出具有计数和报时功能的数字时钟,在此基础上,我们另外加上了保持、清零、快速校时校分功能,以便满足实际调试,完成了这些基础工作以后,需要对电路的功能进行拓展,我的思路是设计出一个万年历电路,并通过开关在时钟功能和万年历功能之间切换。
关键字:
数字时钟,保持,清零,校时校分,万年历
Abstract
Inthepage,weusethesoftwareQuartusIItosimulatetoanddesignaclockwhichhasthefunctionofcountingandtellingthetime,onthebasisofthis,weaddsotherfunctions,suchaskeepingthetime,clearingtimetozero,fastingtothehoursandfastingtotheminutes,soitiseasytosimulatethesystem,donethese,thereneedstodevelopthesystemmore,inmyopinion,perpetualcalendarisagoodchoice,andakeyisusedtochangethesystembetweentheclockandperpetualcalendar.
Keywords:
digitalclock,keepingthetime,clearingtimetozero,fastingtothehoursandminutes,perpetualcalendar
正文
设计要求说明
一.实验内容
运用所学集成电路的工作原理和使用方法,在单元电路的基础上进行小型数字系统的设计。
完成一个多功能数字计时器,可以实现24小时的计时功能,并在控制电路的作用下具有清零、使能控制、校分校时、整点报时、动态显示以及其他附加功能。
二.实验目的
1.熟悉QUARTUS
软件的使用方法,和实现FPGA电路设计的一般流程。
2.了解VHDL语言编程。
3.掌握较为复杂的逻辑电路的设计方法。
三.实验要求
1.设计计时电路,完成00时00分00秒~23时59分59秒的计时功能。
2.清零电路,在任何时候,按动清零开关可以进行计时器清零。
3.保持电路,在任何时候,按动使能控制开关可以控制系统的使能。
4.设计报时电路,使数字计时器从59分53秒开始报时,每隔一秒发一声,共三声低音,一声高音;即59分53秒、59分55秒、59分57秒发低音,59分59秒发高音。
5.设计校分电路,在任何时候,拨动校分开关,可以进行快速校分;设计校时电路,在任何时候,拨动校时开关,可以进行快速校时。
6.对每一单元电路进行模拟仿真,首先通过仿真波形判断电路的正确与否,进行改正,再仿真,直到仿真通过。
7.系统级联调试,将以上电路进行级联完成计时器的所有功能,然后将电路下载到下载板内显示以上功能的动态显示.
方案论证(整体电路的工作原理)
各子模块设计原理
一、脉冲发生电路
分频电路的目的是将系统提供的48MHz电源的频率降至1Hz以此来满足计数频率要求,同时,分频电路也可以为下面的报时电路部分提供1KHz和512Hz的铃声频率,还可以将1KHz频率作为显示电路的同步输入频率。
二、计时电路
由数字钟的计时特性:
秒位和分位都是00~59的六十进制加法计数电路,而时位则为00~23的二十四进制加法计数。
因此可将秒位和分位用同样的一个模块代替,但是,秒位和分位又有着不同,因此,需要在原模块的基础上加入一些特殊的控制开关,进而形成新的模块,由于分位的功能较之于秒位的要多了个快速校分功能,因此这些控制开关中必然要有一个快速校分开关(为1时快速校分,为0时不起作用),当然,在秒位计数上,该快速校分开关应置于0。
另外,必须要考虑的是进位机制,如果采用简单的逻辑电路进行进位控制,就会因为实际电路元件的延迟作用而产生中间状态,从而造成计数误差,这里,我们采用了边沿触发进位,这种进位方式的优点在于延迟对其的影响很小,计数精确度较高。
三、校分(时)电路(已集成在计数器中)
校分电路可以看成是在原电路的基础之上另外加入了一个进位控制端,并且,该控制端与秒位进位控制端是或的关系,即两者只要有一个工作即可使得分位开始计数,同理,校时电路亦是如此。
四、清零电路(已集成在计数器中)
清零电路可以看成是利用计数器的清零端进行强制清零,这里有两种清零办法,一种是同步清零,另一种为异步清零,两种办法的区别是同步清零需要等待下一个脉冲的到来才开始清零,而异步清零则不需要,这里我们采用了同步清零的办法。
五、译码显示电路
由于实验只提供一个译码管,这就需要对译码器进行快速扫描,当其扫描频率快于人眼的分辨能力时(实验中我们选用了1KHz作为扫描频率),显像管的显示看起来就变得连续,这里的快速扫描我们采用计数方式,由计数结果对显像管进行选择。
六、报时电路(实际做的时候已经集成到计数器中)
利用报时时间点,列出真值表,并由卡诺图得到报时时刻的逻辑表达式,同时将蜂鸣器所需频率作为输入端,利用门电路将两者结合到一起,作为报时电路的控制。
调试
总电路图
一、脉冲发生电路
要得到1KHz,512Hz和1Hz的输出频率,就必须要对原有的48MHz频率源分别作48k分频,96k分频和48M分频,而这些分频量均可以由一些基本的分频得到,如48k=2*2*2*2*3*10*10*10,96k=48*2,48M=48k*10*10*10,这里我们得先做出一些基本的分频器:
二分频、三分频、五分频和十分频。
二分频:
三分频:
五分频:
十分频:
十分频的构成方式由很多种,它既可以由二分频和五分频级联而成,也可以类比三分频的设计方法,这里,为了保证脉冲的占空比更接近1/2(这样有利于电路的稳定,起到一定的消颤作用),我们采用了类比三分频的设计思路,直接由计数器设计:
二、计时电路
首先得设计出60进制加法器,并且要求该加法器保留有进位输入端,通过对下面的校分电路的分析,我们得知:
在分位,该进位端的输入控制应该还有快速校分开关。
用两片十进制计数器74160,其中一个仍作十进制计数使用,而另一个则用作六进制计数,而且只有当两者同时满足一个为1001、另一个为0101时才可以有六十进位。
60进制加法器的设计图:
封装后:
各输入输出作用:
CLK
K1
K2
in
Qa[3..0]
Qb[3..0]
w
同步时钟信号输入
同步保持
同步清零
进位输入(可以与校分开关结合设计,在分位有效),秒位置零
个位输出
十位输出
进位控制端
再者,需要有二十四进制的计数器作为小时信号计数,同样的需要有清零端和输入控制端,这样可以同步清零和快速校时。
24进制加法器设计图:
封装后:
各输入输出的作用:
CLK
K1
K2
in
Qa[3..0]
Qb[3..0]
w
同步时钟信号
同步保持
同步清零
进位输入(可以与校时开关结合设计)
个位输出
十位输出
归零进位(一个24小时计数)
报时功能
封装后:
各输入输出的作用:
500Hz
1KHz
Qa[3..0]
Qb[3..0]
Qc[3..0]
Qd[3..0]
CLOCK
500Hz输入
1KHz输入
接秒个位
接秒十位
接分个位
接分十位
接蜂鸣器
由以上的各个模型再封装组合可得到24小时的计数器模型:
封装得到:
各输入输出的作用:
CLK
K1
K2
K3
K4
500Hz
1KHz
时钟频率输入
系统使能开关(为0正常工作,1时保持)
系统清零开关(为0正常工作,1时同步清零)
快速校分开关(为0正常工作,1时快速校分)
校时开关(为0正常工作,1时快速校时)
500Hz频率输入
1KHz频率输入
CLOCK
Qa[3..0]
Qb[3..0]
Qc[3..0]
Qd[3..0]
Qe[3..0]
Qf[3..0]
接蜂鸣器
秒个位输出
秒十位输出
分个位输出
分十位输出
时个位输出
时十位输出
三、译码显示电路
整体电路图:
因为要实现动态显示,所以必须要有一个扫描信号,并且该扫描信号的扫描频率要高于人眼的分辨能力,但也不能太大,否则会造成显示错位,我们这里选用的是1KHz作为扫描频率,至于译码和显示这一块,没有什么难于理解的,此处略去不谈。
封装后得:
各输入输出的功用:
CLK
Qa,Qb,Qc,Qd,Qe,Qf
G[5..0]
O[6..0]
扫描频率输入
接计数部分输出
接六个显示管
译码输出,接显示管
四、附加电路—万年历
万年历包括年份、月份、日,而且十二个月中每个月的天数又不一样,31天的有:
1,3,5,7,8,10,12;30天的有:
4,6,9,11;另外一个为2月,闰年时有29天,平年时有28天。
所以为确定每个月的天数,首先得判定是哪个月,再次,如果是2月,就还得从年份上去鉴定,所以天数的控制不仅有月份,还有年份,计数则需要原来的二十四小时的进位输出控制。
其次,考虑到不同的月对应的天数不同,而且总共只有四种情况,即:
28天,29天,30天,31天,因此有必要做四个天数的计数器,每次只能使用一个,四个计数器前面则是没一类的判别电路。
需要指出的是,虽然在月份的跳转过程中,计数器的变化是有延时效应的,但这并不影响最终的运行,应为在前面的二十几天里,每个计数器都是一样的,而且延迟的时间并没有那么长。
另外,得找到判定某年是否是闰年的依据,我的判定方法是:
首先对原有的年份判定它是否能被4整除,如果不能,则可以确定为平年,反之,得再进行讨论,判别它是否能被100整除,如不能,则说明其一定是闰年,如果还满足条件,就看它能否被400整除,如果能,则能说明其为闰年,反之则为平年。
否
判定依据的方框图
设计的电路图有:
(备注:
年月日输出分别为:
Q8Q7Q6Q5:
Q4Q3:
Q2Q1)
(a)31天计数和其封装
天数都是从01开始的,而不是从00,所以要在原有结果后面加1才能作为结果输出,00~30变成01~31,下同。
(b)31天判断和其封装
(c)30天计数及其封装
(d)30天判断及其封装
(e)29天计数及其封装
(f)29天判断及其封装
其中run为判别是否是闰年的封装电路。
(g)28天计数及其封装
(h)28天判断及其封装
(i)闰年的判断电路及其封装
(j)月份的计数及其封装
月份没有00月,所以要在原有结果上加1,原来为12进制则原有结果为00~11,加上1以后变成01~12.
(K)年份的计数以及封装
年份只需要四位十进制计数即可
(L)译码显示电路(这里同基本电路部分,只需增加两个显示管,另外实现万年历与时间的开关切换)
最终的附加电路图
万年历部分:
整体设计:
新增开关功能:
K5调节日开关,为0时正常计数,为1时调节,下同
K6调节月份开关
K7调整年份开关
K8切换显示开关,为0时显示时间,为1时显示日期
实验心得体会
通过此次实验设计,我了解了芯片的构造原理,以及怎样系统的去设计一个具有新功能的电路系统,没有拘泥于成规,用自己的思路去设计去开发,从而锻炼了自信心,并且,对自己所学的专业知识有了更深的了解,让我对以后的学习生活更加充满希望:
努力的汗水终将浇灌出成功的果实!
附录
参考书目
【1】《EDA设计实验指导书》南京理工大学电子技术中心
2011年4月;
【2】《数字逻辑电路与系统设计》蒋立平主编电子工业出版社2007;
【3】《电子线路实践教程》王建新,姜萍编著科学出版社2003