(电子行业企业管理)基于VHDL的数字电子钟系统设计精品

上传人:精****库 文档编号:138113298 上传时间:2020-07-13 格式:DOC 页数:52 大小:2.45MB
返回 下载 相关 举报
(电子行业企业管理)基于VHDL的数字电子钟系统设计精品_第1页
第1页 / 共52页
(电子行业企业管理)基于VHDL的数字电子钟系统设计精品_第2页
第2页 / 共52页
(电子行业企业管理)基于VHDL的数字电子钟系统设计精品_第3页
第3页 / 共52页
(电子行业企业管理)基于VHDL的数字电子钟系统设计精品_第4页
第4页 / 共52页
(电子行业企业管理)基于VHDL的数字电子钟系统设计精品_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《(电子行业企业管理)基于VHDL的数字电子钟系统设计精品》由会员分享,可在线阅读,更多相关《(电子行业企业管理)基于VHDL的数字电子钟系统设计精品(52页珍藏版)》请在金锄头文库上搜索。

1、集成电路软件设计基于VHDL的数字电子钟系统设计学 院 信息工程学院 班 级 电科1112 姓 名 闭应明 学 号 2011850057 成 绩 指导老师 卫雅芬 2013 年 12 月 10 日目录一、摘要1二、关键词1三、引言1四、设计要求1五、技术指标1六、设计思想1七、设计原理2八、设计方案2九、设计各个模块的功能3十、各个模块的波形仿真结果1十一、各个电路模块的DV综合的网标和电路模型.12十二、设计结果分析19十三、论文结论20十四、参考文献20十五、附录21十六、致谢50一、摘要: 本设计采用层次化设计方法,自顶向下进行设计。设计中根据系统的功能要求合理划分出层次,进行分级设计和

2、仿真验证,将较为复杂的数字系统逻辑简化为基本的模型从而降低实现的难度。突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过ModelSim SE 6.1完成综合、仿真。二、关键词: Modelsim VHDL 硬件描述语言 设计 数字钟 三、引言: 硬件描述语言HDL(Hardware Description Language)是一种用形式化方法来描述数字电路和系统的语言。目前电子系统向集成化、大规模和高速度等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,VHDL在这种形势下显示出了巨大的优势,展望将来VHDL在硬件设计领域的地位将与c语

3、言和c+在软件设计领域的地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法,而成为主要的硬件描述工具。本文提出了以VHDL语言为手段,设计了多功能数字钟。其代码具有良好的可读性和易理解性,源程序经Altera公司的ModelSimSE 61软件完成综合、仿真,四、设计要求:1、采用自顶向下的设计思想;2、使用本学期学习的设计语言VHDL和集成电路设计软件实现;3、最终以论文形式提交。五、技术指标:1、设计数字电子钟的基本功能有:年、月、日、时、分、秒,其中,月日为阳历显示,时为24小时制显示;可随时进行时间校对(60分);2、闰年提醒(10分)、支持闹铃

4、功能(10分);3、阳历转阴历与阴历显示(20分)。备注:用硬件描述语言VHDL设计系统,用Modelsim软件仿真,用Design compiler软件或Synplify软件综合成电路网表。六、设计思想: 这次课题论文要求设计显示年月日时分秒、阳历转阴历的数字电子钟,且能可随时进行时间校对和支持闹铃功能以及闰年提醒功能。本次课题基于VHDL语言,并用采用自顶向下的设计思想,即层次化设计思想并使用例化语句编写,很容易想到分模块设计,先写second、minute、hour、day、month、year、clock模块,然后将各个模块用顶层模块连接起来,再编写testbench激励信号,然后仿真

5、波形。可以通过比较的方法设计闹铃及利用“set”控制信号设计时钟校对。七、设计原理: 本次实验的电子数字钟的设计采用异步计时的方式,即各个时间模块每一个轮回后,输出一个高电平作为紧接下一个的时间模块的时钟信号;校正设置时间是通过set端控制,即如果为高电平时,就把预定好的时间参数(sset、mnset、hset、dset、mset、yset)作为要设置的时间,同时也通过此办法来校正时间的参数;闹铃时间控制是通过alarm端控制,即作为高电平时,把预定好的时间参数(salarm、mnalarm、halarm、dalarm、malarm、yalarm)作为闹铃的时间参数预制;闹铃功能实现是通过一个

6、比较器,即当前的电子钟时间和预定的时间是否一致,如果一致,闹铃ring输出1,否则为0,同时也可以作为闰年的提醒功能。按照设计内容和要求以及所有的设计思路与原理,综合考虑后,采用例化语句方法,设计模块化的结构:顶层设计实体为electronic_clock(数字钟)模块,其下又分为:years(年)、month(月)、day(日)、hour(时)、minute(分)、second(秒)、alarm_clock(闹钟)7个模块。每个模块主要使用VHDL语言输入中常用的进程语句、元件例化语句、if语句以及赋值语句来编写VHDL代码。8、 设计方案 图1 9、 设计各个模块的功能:1. second

7、计时模块:begin process(clks,sets,ss) begin if sets=1 then if ss=0 then qs=qs; else qs=ss; end if;elsif(clksevent and clks=1) then if(qs=59) then qs=0; clk1=1; elsif qs59 then qs=qs+1; clk1=0; end if; end if;end process;当clk上升沿来临时,second模块开始从0计数到59,并输出一个控制信号clk1控制minute模块,此时clk1=1 ,并回到0然后循环计数,此时clk1=0。当需

8、要设置时间时,即sets=1,则把预定好的初值ss赋给输出信号qs。2、 minute模块begin process(clkmn,setmn,mns) begin if setmn=1 then if mns=0 then qmn=qmn; else qmn=mns; end if;elsif(clkmnevent and clkmn=1) then if(qmn=59) then qmn=0; clk2=1; elsif qmn59 then qmn=qmn+1; clk2=0; end if; 当clk上升沿来临时,minute模块开始从0计数到59,并输出一个控制信号clk1控制minu

9、te模块,此时clk1=1 ,并回到0然后循环计数,此时clk1=0。当需要设置时间时,即setmn=1,则把预定好的初值ss赋给中间信号qmn。3、Hour计时模块:begin process(clk) beginif(clkevent and clk=1) then if(q=23) then q=0;clk1=1; elsif q23 then q=q+1; clk1=0; end if;end if;end process;当clk上升沿来临时,hour模块开始从0计数到23,并输出一个控制信号clk1控制day模块,此时clk1=1 ,并回到0然后循环计数,此时clk1=0。由于要求

10、初始时间为14,我们可以利用“signal q:integer:=14;”赋初始值,这样计数器就会从14开始计数。4、 Day计时模块:if setd=1 then if ds=0 then qd=qd; else qd=ds; end if; elsif (clkdevent and clkd=1) then if ( yearin rem 4 =0) then if (monthin=1) or (monthin=3) or (monthin=5) or (monthin=7) or (monthin=8) or (monthin=10) or (monthin=12) then-? if

11、(qd=31) then qd=1; clk2=1; elsif qd31 then qd=qd+1; clk2=0; end if; elsif (monthin=2) then if(qd=29) then qd=1; clk2=1; elsif qd29 then qd=qd+1; clk2=0; end if; elsif (monthin=4) or (monthin=6) or (monthin=9) or (monthin=11) then if(qd=30) then qd=1; clk2=1; elsif qd30 then qd=qd+1; clk2=0; end if;

12、end if; elsif (monthin=1) or (monthin=3) or (monthin=5) or (monthin=7) or (monthin=8) or (monthin=10) or (monthin=12) then if(qd=31) then qd=1; clk2=1; elsif qd31 then qd=qd+1; clk2=0; end if; elsif monthin=2 then if(qd=28) then qd=1; clk2=1; elsif qd28 then qd=qd+1; clk2=0; end if; elsif (monthin=4) or (monthin=6) or (monthin=9) or (monthin=11) then if(qd=30) then

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号