版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE22 / NUMPAGES22科技大学课 程 设 计 说 明 书课程名称EDA技术与应用 题 目电子日历 学 院 车辆与动力工程学院 班 级 农业电气化与自动化101班 学生 天保 指导教师罗四倍 日 期 2013年7月10日 电子日历 摘要本设计为实现一个多功能的电子日历,具有年、月、日、星期计时并显示的功能;并且具有校对功能,能够对初始的时间进行人为的设定。本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计具有电子日历功能的硬件电路,在QuartusII软件设计环境下,采用自顶向下的设计思路,分别对各个基础模块进行创建,通过各个基础模块的组合和连接来构建上层原理图
2、,完成基于VHDL电子日历地设计。 系统目标芯片采用EP1K30TC144-3,由时钟模块、控制模块、计时模块、数据译码模块、显示模块组成。经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,将硬件编写程序下载到试验箱上进行功能验证。本系统能够完成年、月、日、星期的显示,由按键输入进行电子日历的校时功能。关键词:EDA、电子日历、VHDL、QuartusII目录TOC o 1-3 h u HYPERLINK l _Toc21539 第一章 绪论 PAGEREF _Toc21539 1 HYPERLINK l _Toc21685 1.1 EDA技术 PAGEREF _Toc21685 1 HY
3、PERLINK l _Toc2172 1.2 QuartusII的使用 PAGEREF _Toc2172 1 HYPERLINK l _Toc2850 1.3 模块化设计 PAGEREF _Toc2850 1 HYPERLINK l _Toc11763 1.4 分析、解决问题 PAGEREF _Toc11763 1 HYPERLINK l _Toc30499 第二章 总体设计 PAGEREF _Toc30499 2 HYPERLINK l _Toc12501 2.1设计容 PAGEREF _Toc12501 2 HYPERLINK l _Toc1386 2.2设计说明 PAGEREF _Toc
4、1386 2 HYPERLINK l _Toc32347 2.3设计报告要求 PAGEREF _Toc32347 3 HYPERLINK l _Toc31853 第三章 设计原理 PAGEREF _Toc31853 4 HYPERLINK l _Toc8378 3.1设计思想 PAGEREF _Toc8378 4 HYPERLINK l _Toc3259 3.2设计原理图 PAGEREF _Toc3259 4 HYPERLINK l _Toc24750 3.3工作过程 PAGEREF _Toc24750 5 HYPERLINK l _Toc29924 第四章 设计结果 PAGEREF _Toc
5、29924 6 HYPERLINK l _Toc16448 4.1VHDL程序与仿真 PAGEREF _Toc16448 6 HYPERLINK l _Toc23967 4.1.1秒与分模块 PAGEREF _Toc23967 6 HYPERLINK l _Toc219 4.1.2小时模块 PAGEREF _Toc219 7 HYPERLINK l _Toc30735 4.1.3星期模块 PAGEREF _Toc30735 8 HYPERLINK l _Toc14060 4.1.4日模块 PAGEREF _Toc14060 9 HYPERLINK l _Toc30557 4.1.4月模块 PA
6、GEREF _Toc30557 10 HYPERLINK l _Toc16287 4.1.5年低两位模块 PAGEREF _Toc16287 12 HYPERLINK l _Toc2053 4.1.6校时模块 PAGEREF _Toc2053 14 HYPERLINK l _Toc20863 4.1.7显示模式模块 PAGEREF _Toc20863 17 HYPERLINK l _Toc14971 4.2顶层设计与仿真 PAGEREF _Toc14971 17 HYPERLINK l _Toc26361 4.3实验小结 PAGEREF _Toc26361 18 HYPERLINK l _To
7、c17435 第五章 参考文献 PAGEREF _Toc17435 19第一章 绪论1.1 EDA技术EDA(Electronic Design Automation),即电子设计自动化,是指利用计算机完成电子系统的设计。它的主要特征与核心是“自顶向下”的设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证。然后用综合优化工具生成具体门电路的网表。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利于早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的
8、工作量,提高了设计的一次成功率。1.2 QuartusII的使用 通过实验,熟悉并掌握QuartusII软件的使用,熟悉该软件工具的环境。除了学习利用VHDL语言编写程序实现硬件电路以外,还要熟练的使用原理图输入的方法进行硬件设计,具体是对每个模块形成一个功能元件,通过元件的连接来实现系统的功能,而不是通过VHDL语言的元件例化程序来完成,不仅提高了效率,而且思想原理也更加的清晰。1.3 模块化设计掌握年、月、日、时、分、秒以与控制部分的各功能模块程序设计的原理,进而理解电子日历的设计原理,学习并理解模块化设计的方法与思想。用VHDL语言编写各模块程序,进一步了解和掌握各个程序语言,知道编程中
9、的注意事项,提高编程的熟练程度。1.4 分析、解决问题通过本实验设计,理论联系实际,巩固所学理论知识,并且提高自己通过所学理论分析、解决实际问题的能力。进一步加深对VHDL设计的了解与认识,体会EDA的巨大作用,了解进行硬件系统设计的整个流程,对生活工作中的电气设备有了更深一层次的了解,对电气工程专业有了更多兴趣。总体设计2.1设计容设计具有如下功能的电子日历:1)能进行正常的年、月、日、星期计时和显示功能。2)能利用实验系统上的按键实现年、月、日和星期的校对功能。3)用层次化设计方法设计该电路,编写各个功能模块的程序。4)仿真报时功能,通过观察有关波形确认电路设计是否正确。5)完成电路设计后
10、,用实验系统下载验证设计的正确性。2.2设计说明年、月、日和星期的显示格式如图2所示。年(高位) 年(低位) 月 日 星期图2-1电子日历显示格式2.3设计报告要求1)分析系统的工作原理。 2)画出顶层原理图,写出顶层文件源程序。3)写出各功能模块的源程序。4)仿真各功能模块,画出仿真波形。5)书写实验报告应结构合理,层次分明。第三章 设计原理3.1设计思想按照模块化的设计思想,要实现电子日历的基础功能,必定要包含年、月、日和星期的功能模块,其中,日用三十进制计数器来实现,月用十二进制计数器来实现,年的低两位和高两位都是一百进制计数器,同时每个计数器都有显示输出端和进位输出端,同时低级别(如日
11、)的进位输出要给较高级别(如月)的时钟输入端,以此类推,采用串行工作方式进行连接。从而完成了基础的计时和显示的功能。再按照由基础功能到增强功能的设计思路,要实现校时功能,要在之前电路的基础之上增加一个校时控制模块,增加两个按键来实现控制,按键1来选择校对哪一个模块,按键2选择校对到何值检测到按键2的一个上升沿,对应的计数器加1。3.2设计原理图电子日历时分秒部分的原理图如下图所示,年月日部分与之同理,通过控制可以进行切换。译码驱动译码驱动译码驱动译码驱动译码驱动译码驱动年十位计数年个位计数月十位计数月个位计数日十位计数日个位计数校年控制电路校月控制电路分频器电路分频器电路晶体振荡器电路图3-1
12、电子日历实验原理图原理图说明: K1键是选择电子日历工作的模式,K2键提供上升沿(时钟功能)来使各计数模块加一,从而实现校时的功能。 模式0:正常计时显示 -K1不按 模式1:调整星期增加 -K1按下一次 模式2:调整日增加 - K1按下两次 模式3:调整月增加 - K1按下三次 模式4:调整年增加 - K1按下四次 CLK是外部1Hz输入时钟,作为秒的时钟输入,驱动整个电子日历工作运行。3.3工作过程 当1Hz时钟信号从CLK输入端输入时,K1没有按下时,系统从零开始处于正常的计时模式,并显示。低位计满归零并且向高位进1。如果此时按一下按键1,那么电子日历停止计时,工作于模式1,再通过按键2
13、对分进行校时,通过同样的方法可以对时、日、月、年进行校时。当校时完毕,需要电子日历重新计时工作时,通过按下键1使系统工作与正常计时模式。第四章 设计结果4.1VHDL程序与仿真4.1.1秒与分模块秒与分模块为六十进制的计数器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60 ISPORT(CLK:IN STD_LOGIC;Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT60;ARCHI
14、TECTURE ONE OF CNT60 ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENQ11=Q11+1;IF Q11=9 THEN Q110);Q22=Q22+1;END IF;IF Q22=5 AND Q11=9 THEN Q22=0000;Q11=0000;COUT=1;ELSE COUT=0;END IF;END IF;END PROCESS;Q1=Q11;Q2=Q22;END;仿真结果:图4-1 60进制计数器仿真图如上图所示当Q1、Q2计满
15、60时,Q1、Q2都归零同时有一个进位输出脉冲,完成了六十进制计数器的功能,设计正确。4.1.2小时模块时模块为24进制计数器。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT24 ISPORT(CLK:IN STD_LOGIC; Q1,Q2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END CNT24;ARCHITECTURE ONE OF CNT24 ISSIGNAL Q11,Q22:STD_LOGIC
16、_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THENQ11=Q11+1;IF Q11=9 THEN Q110);Q22=Q22+1;END IF;IF Q22=2 AND Q11=3 THEN Q22=0000;Q11=0000;COUT=1;ELSE COUT=0;END IF;END IF;END PROCESS;Q1=Q11;Q2=Q22;END;仿真结果:图4-2 24进制计数器仿真图如上图所示当Q1、Q2计满24时,Q1、Q2都归零同时有一个进位输出脉冲,完成了二十四进制计数器的功能,设计正确。4.1
17、.3星期模块星期模块为“7进制”的计数器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY WEEK ISPORT(CLK:IN STD_LOGIC; W:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END WEEK;ARCHITECTURE ONE OF WEEK ISSIGNAL Q11:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT A
18、ND CLK=1 THENQ11=Q11+1;IF Q11=7 THEN Q11=0001; END IF; END IF; END PROCESS;W=Q11;END;仿真结果:图4-3 7进制计数器仿真图如上图所示当W计满7时,归1,完成了“七进制”计数器的功能,设计正确。4.1.4日模块日模块原本有四种情况,大月为31进制计数器,小月为30进制计数器,平年二月为28进制计数器,闰年二月为29进制计数器。本文简化处理,统一记为30天。日模块为30进制计数器。源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNS
19、IGNED.ALL;ENTITY DAY ISPORT( CLK :IN STD_LOGIC; CQ1 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); CQ2 :OUT STD_LOGIC_VECTOR (3 DOWNTO 0); COUT :OUT STD_LOGIC);END;ARCHITECTURE ONE OF DAY ISSIGNAL CQ3,CQ4:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN -上升沿CQ3=CQ3+1;IF CQ3=9 THEN
20、CQ30);CQ4=CQ4+1; END IF; IF CQ4=3 AND CQ3=0 THEN CQ4=0000;CQ3=0001;COUT=1; ELSE COUT=0; END IF; END IFEND PROCESS;CQ1=CQ3; CQ2=CQ4;END;仿真结果:图4-4 30进制计数器仿真图如图所示,仿真结果与设计要求一致,日模块的设计正确4.1.4月模块月模块为12进制计数器源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MONTH ISport(clk
21、:IN STD_LOGIC; cout :OUT STD_LOGIC; cq1,cq2 :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END ;ARCHITECTURE behav OF MONTH ISsignal cq3,cq4: STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk)BEGINIF clkEVENT and clk=1 THEN cq3=cq3+1;IF cq3=9 THEN cq4=cq4+1;cq3=0000; END IF;IF cq3=2 and cq4=1 THEN cq3=0001;cq4=000
22、0;cout=1;ELSE cout=0;END IF;END IF; END PROCESS; -十二进制计数器 cq1=cq3; cq2=cq4;END;仿真结果:图4-5月模块仿真图如图所示月模块为12进制计数器,合设计要求,模块的设计正确。4.1.5年低两位模块年的高两位和低两位都为一百进制计数器,功能基本一样源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YEAR ISPORT(CLK:IN STD_LOGIC;Y1,Y2:OUT STD_LOGIC_VECTOR(
23、3 DOWNTO 0););END YEAR;ARCHITECTURE ONE OF YEAR ISSIGNAL Q1,Q2:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=1 THEN Q1=Q1+1;IF Q1=9 THEN Q10);Q2=Q2+1;END IF;IF Q2=9 AND Q1=9 THEN Q2=0000;Q1=0000;COUT=1;ELSE COUT=0;END IF;END IF;END PROCESS;Y1=Q1;Y2=Q2;END;图4-6 年低两位模块仿真图4.1.5
24、年高两位模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YEAR ISPORT(CLK:IN STD_LOGIC;Y3,Y4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);COUT:OUT STD_LOGIC);END YEAR;ARCHITECTURE ONE OF YEAR ISSIGNAL Q11,Q22:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(CLK)BEGINIF CLKEVENT AND CLK=
25、1 THENQ11=Q11+1;IF Q11=9 THEN Q110);Q22=Q22+1;END IF;IF Q22=9 AND Q11=9 THEN Q22=0000;Q11=0000;COUT=1;ELSE COUT=0;END IF;END IF;END PROCESS;Y3=Q11;Y4=Q22;END;仿真结果:图 4-7高两位年模块仿真图如图所示,高两位年模块为100进制计数器符合设计的要求,设计正确。4.1.6校时模块如原理图的说明部分所述,校时模块进行工作模式的选择,输入端设有控制按键K1,K2。K1进行模式的选择,K2的功能如同手动时钟脉冲,进行调时设置。源程序:LIBRA
26、RY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIAODUI IS PORT(K1,K2:IN STD_LOGIC; WI,DI,MI,YLI,YHI:IN STD_LOGIC; WO,DO,MO,YLO,YHO:OUT STD_LOGIC);END JIAODUI;ARCHITECTURE BEHAV OF JIAODUI ISSIGNAL A: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGIN PROCESS(K1,K2) BEGIN IF K1EVENT AND
27、 K1=1 THEN A=A+1; IF A=5 THEN AWO=WI;DO=DI;MO=MI;YLO=YLI;YHOWO=K2;DO=0;MO=0;YLO=0;YHOWO=0;DO=K2;MO=0;YLO=0;YHOWO=0;DO=0;MO=K2;YLO=0;YHOWO=0;DO=0;MO=0;YLO=K2;YHOWO=0;DO=0;MO=0;YLO=0;YHONULL;END CASE; END PROCESS;END;仿真结果:图4-8 K1按下一次与两次,K2校正星期与日图4-9 K1按下三次,K2校正月图4-10 K1按下四次,K2校正年低两位图4-11 K1按下五次,K2校正年高两位图4-12 K1按下六次恢复正常如图,按键K1,K2能够完成电子日历工作模式的选择与调时校对的功能,满足系统的设计要求,设计正确。4.1.7显示模式模块源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT(WL,WH,DL,DH,ML,MH,YL,YH,Y1L,Y1H:INSTD_LOGIC_VECT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年房屋施工承包标准合同版B版
- 2024年新能源汽车研发与生产许可合同
- 城市道路绿化草坪施工合同
- 咖啡厅炊事员劳动合同
- 通信工程师聘用合同续签书
- 陶瓷厂消防设施升级合同
- 高端会所装修施工分包协议
- 农田排水沟清淤服务合同
- 河流清淤疏浚工程合同
- 2024年个体工商户借款合同:含信用贷款与保证贷款3篇
- 电子商务概论B2C电子商务
- 脑卒中患者的核心肌群训练课件
- 监控维修安装培训课件
- 2024年中国铁路南宁局集团有限公司招聘笔试参考题库附带答案详解
- 2024年度医院神经内科医生科医务人员述职报告课件
- 施工现场危险源识别
- 民宿可行性分析报告方案
- 能源行业保密案例分析
- 脑梗机械取栓护理查房课件
- 《弘扬真善美》课件
- 一例乳腺癌术后并发淋巴水肿患者的个案护理
评论
0/150
提交评论