eda课程设计多功能数字钟 .docx
精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习河南科技高校可编辑资料 - - - 欢迎下载精品名师归纳总结课 程 设 计 说 明 书课程名称 EDA 课程设计题目多功能数字钟学院 电信学院 班级 *071班 同学姓名 * 指导老师 王 勇日期 2021 年 9 月 22 日课程设计任务书课程设计名称 电子设计自动化课程设计 同学姓名 * 专业班级 电信科 071设计题目 多功能数字钟设计一、 课程设计目的1、综合运用 EDA技术,独立完成一个课题的设计,考察运用所学学问,解决实际问题的才能。2、结合理论学问,考察阅读参考资料、文献、手册的才能。3、进一步熟识EDA技术的开发流程,把握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧。4、锤炼撰写争论报告、争论论文的才能。5、通过本实践环节,培养科学和严谨的工作作风。二、 设计内容、技术条件和要求l、能进行正常的时、分、秒计时功能,分别由6 个数码显示 24 小时、 60 分钟的计数可编辑资料 - - - 欢迎下载精品名师归纳总结器显示。2、能利用试验系统上的按钮实现“校时”、“校分”功能。( 1)按下“ SA”键时,计时器快速递增,并按24 小时循环。( 2)按下“ SB”键时,计时器快速递增,并按59 分钟循环,并向“时”进位。( 3)按下“ SC”键时,秒清零。抖动的,必需对其消抖处理。3、能利用扬声器做整点报时:( 1)当计时到达 5950”时开头报时,频率可为500Hz 。计满 23 小时后回零。计满59 分钟后回零。( 2)到达 5959”时为最终一声整点报时,整点报时的频率可定为lKHz 。4 定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。6 、报时功能。报时功能用功能仿真的仿真验证,可通过观看有关波形确认电路设计是否正确。三、 时间进度支配1 周: 1 完成设计预备,确定实施方案。2 完成电路文件的输入和编译。4 完成功能仿真。2 周: 1 完成文件至器件的下载,并进行硬件验证。2 撰写设计说明书。四、 主要参考文献1 谭会生、瞿遂春, EDA 技术综合应用实例与分析,西安电子科技高校出版社,20042 曹昕燕、周凤臣等,EDA 技术试验与课程设计,清华高校出版社,2006指导老师签字:引言 :2021 年 9 月 5 日人类社会已进入到高度发达的信息化社会。信息化社会的进展离不开电子信息产品开发技术、产品品质的提高和进步。实现这种进步的主要缘由就是电子设计技术和电子制造技术的进展,其核心就是电子设计自动化EDA 技术, EDA技术的进展和推广应用又极大的推动了电子信息产业的进展。为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求, EDA技术正逐步成为不行缺少的一项先进技术和重要工具。目前,在国内电子技术教案和产业界的技术推广中已形成“EDA 热”,完全可以说,把握EDA 技术是电子信息类专业同学、工程技术人员所必备的基本才能和技能。试验原理:用层次化设计的方法以VHDL 语言编程实现以下功能:【1】 具有 “时”、“分”、“秒”计时功能。时为 24 进制,分和秒都为60 进制。【2】 具有消抖功能:手工按下键盘到是否这个过程大致50ms 左右,在按下开头到弹簧片稳,定接触这段时间为5-10ms ,从释放到弹片完全分开也是5-10ms,在达到稳固接触和完全分开的微观过程中,电平是时高时低的,因此假如在首次检测到键盘按下时延时10ms 再检测就不会检测到抖动的毛刺电平了。64Hz 的信号周期为15.6ms,正适合做消抖信号。可编辑资料 - - - 欢迎下载精品名师归纳总结【3】 具有校时和清零功能,能够用 4Hz 脉冲对 “小时 ”和 “分 ”进行调整,并可进行秒清零。【4】 具有整点报时功能。在59 分 51 秒、 53 秒、 55 秒、 57 秒发出低音 512Hz 信号,在 59 分 59 秒发出一次高音1024Hz 信号 ,音响连续 1 秒钟 ,在 1024Hz 音响终止时刻为整点。【5】 具有一键设定闹铃及正常计时与闹铃时间的显示转换。闹时时间为一分钟。程序流程:秒计数器模块设计:模块图如图 1 。六十进制带进位计数器,可清零,clk 输入信号为1Hz脉冲,当q0 计满 9 后 q1 增加 1 ,当 q0 满9 且 q1 记满 5 , q1 、q0 同时归零, co 输出为高电平。 q1 为十位 q0 为个位。图 1程序如下:library ieee。use ieee.std_logic_1164.a。ll use ieee.std_logic_unsigned.a。ll use ieee.std_logic_arith.al。l entity second ISportclk,clr:in std_logic 。co:out std_logic。cq0:out std_logic_vector3 downto 0。cq1:out std_logic_vector3 downto 0。END second。ARCHITECTURE behave of second is SIGNAL d: std_logic_vector3 downto 0 。SIGNAL g: std_logic_vector3 downto 0 。BEGINprocessclk,clr,d,g BEGINif clr ='1' then d <="0000"。g <="0000"。elsifclk'EVENT and clk='1'then ifd=9 and g=5thenco<='1。'elseco<='0。' end if。ifd=9thend<="0000"。ifg=5theng<="0000"。elseg<=g+1。可编辑资料 - - - 欢迎下载精品名师归纳总结end if。elsed<=d+1。end if。end if。end process。 cq0<=d。cq1<=g。end behave。仿真结果如下图 2 :分计数器同上 。注:不同之处为分的clk图2输入信号为秒的进位信号。library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.alluse ieee.std_logic_arith.all。entity minute ISportclk,clr:in std_logic。co:out std_logic。cq0:out std_logic_vector3 downto 0。cq1:out std_logic_vector3 downto 0。END minute。ARCHITECTURE behave of minute isSIGNAL d: std_logic_vector3 downto 0。SIGNAL g: std_logic_vector3 downto 0。BEGINprocessclk,clr,d,g BEGINif clr ='1' thend <="0000"。g <="0000"。elsifclk'EVENT and clk='1'then ifd=9 and g=5thenco<='1'。elseco<='0'。end if。ifd=9thend<="0000"。ifg=5theng<="0000"。elseg<=g+1。end if。可编辑资料 - - - 欢迎下载精品名师归纳总结elsed<=d+1。end if。end if。 end process。 cq0<=d。cq1<=g。end behave。时计数器: 模块图如图 3 。24 进制无进位计数器,当计数信号计到23 后再检测到计数信号时会自动归零。带清零,clk输入为分秒进位相与的结果。q1 为十位, q0 为个位。图 3library ieee。use ieee.std_logic_1164.a。ll use ieee.std_logic_unsigned.a。llUSE IEEE.STD_LOGIC_ARITH.ALL。entity hour IS portclk3,rst3,m:in std_logic。cq4:out std_logic_vector3 downto 0。cq5:out std_logic_vector3 downto 0。END hour。ARCHITECTURE behave of hour is SIGNAL d: std_logic_vector3 downto 0 。SIGNAL g: std_logic_vector3 downto 0 。BEGINprocessclk3,rst3,m,d,g BEGINif rst3 ='1' thend <="0000"。g <="0000"。elsifclk3'EVENT and clk3='1'then ifm='0' thenifd=9 or d=1 and g=1then d<="0000"。ifg=1theng<="0000"。elseg<=g+1。end if。elsed<=d+1。end if。else可编辑资料 - - - 欢迎下载精品名师归纳总结ifd=9 or d=3 and g=2then d<="0000"。ifg=2theng<="0000"。elseg<=g+1。end if。elsed<=d+1。end if。end if。end if。end process。 cq4<=d。cq5<=g。end behave。当 m=0 时,实现模 12 计数,当 m=1 时实现模 24 计数, cout2 作为 clk3时钟信号, rst3是复位信号 , cq4,cq5输出信号最终接在动态译管码芯片上。得出试验要求的小时计时器:仿真波形如下图 4 :图 4分频器: 模块图如图 5 。由四个分频器构成,输入信号 in_clk 为1024Hz 脉冲信号。把输入的 1024Hz 信号分频为四个脉冲信号,即 1Hz 的秒脉冲, 4Hz 的校时、校分脉冲, 64Hz 的消抖脉冲,以及 512Hz 的蜂鸣器低音输入。图5 library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。USE IEEE.STD_LOGIC_ARITH.ALL。entity div isportin_clk:in std_logic。clk_1,clk_4,clk_64,clk_512:out std_logic。end div。architecture one of div issignal q512,a,b,c:std_logic。signal c1,c4,c64:integer range 512 downto 0。begin processin_clk beginif in_clk'event and in_clk='1' thenq512<=not q512。if c64>=7 then c64<=0。c<=not c。else c64<=c64+1。end if。可编辑资料 - - - 欢迎下载精品名师归纳总结if c4>=127 then c4<=0。b<=not b。else c4<=c4+1。end if。if c1>=511 then c1<=0。a<=not a。else c1<=c1+1。end if。end if。end process。clk_512<=q512。clk_1<=a。clk_4<=b。clk_64<=c。end one。仿真波形如下图 6 :图6消抖: 模块图如图 7 。分频出的用 64Hz信号对 sa 校时信号、 sb 校分信号、 sc 秒清零信号、 sd 闹时设置信号进行防抖动处理。是由四个两级d 触发器构成的,分别对输入的 sa 、sb 、sc 、sd信号的相邻两个上升沿进行比较以确定按键的按下,从而达到消抖的目的。图7 library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。USE IEEE.STD_LOGIC_ARITH.ALL。entity xd isportclk_64,sa,sb,sc,sd:in std_logic。hj,mj,sclr,sdo:out std_logic。 end xd。architecture one of xd is beginprocessclk_64variable sa_n,sa_p,sb_n,sd_n,sb_p,sc_n,sc_p,sd_p:std_logic。beginif clk_64'event and clk_64='1' then sa_p:=sa_n。sa_n:=sa。sb_p:=sb_n。sb_n:=sb。sc_p:=sc_n。sc_n:=sc。sd_p:=sd_n。sd_n:=sd。if sa_p= sa_n then hj<=sa。end if 。if sb_p= sb_n then mj<=sb。end if。if sc_p= sc_n then sclr<=sc。 end if。if sd_p= sd_n then sdo<=sd。end if。end if 。end process。end one。仿真波形如下图 8 :可编辑资料 - - - 欢迎下载精品名师归纳总结图8闹钟时间的设定: 模块图如图 9 。一键设定闹铃时间,内部由四个 d 触发器构成。当确定 sd 键按下时,将当前时间的小时和分的个位十位分别存入四个 d 触发器内,作为闹时时间。图9 library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。USE IEEE.STD_LOGIC_ARITH.ALL。entity nz isport sd,hh,hl,mh,ml:in std_logic。hh_o,hl_o,mh_o,ml_o:out std_logic。end nz。architecture one of nz is beginprocess sd,hh,hl,mh,mlbeginif sd='1' thenhh_o<=hh。 hl_o<=hl。mh_o<=mh。ml_o<=ml。end if。end process。end one。仿真波形如下图 10 :图10二选一电路一位二选一:模块图如图11 。用以进行正常计时和校时/ 分的选择。 alarm为经过消抖的校时 / 分信号。当按键未曾按下时,即校时/ 分信号没有到来时,二选一选择器会选择输出 a(正常计时输入)信号,否就当alarm按键按下时输出y 为校时 / 分输入信号4Hz 。图 11library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。USE IEEE.STD_LOGIC_ARITH.ALL。entity x21 isport alarm,a,b:in std_logic。y:out std_logic。end x21。 architecture one of x21 isbegin processalarm,a,b可编辑资料 - - - 欢迎下载精品名师归纳总结beginif alarm='0' then y<=a。else y<=b。end if 。end process。end one。仿真波形如下图 12 :图12三位二选一:模块图如图13 。用以进行正常计时时间与闹铃时间显示的选择,alarm输入为按键。当alarm按键未曾按下时二选一选择器会选择输出显示正常的计时结果,否就当 alarm按键按下时选择器将选择输出显示闹铃时间显示。图13architecture one of x213 is beginprocessalarm,a,b beginif alarm='0' then y<=a。else y<=b。end if 。end process。end one。仿真结果如下图 14 :图 14整点报时及闹时: 模块图如图15 。在 59 分 51 秒、 53 秒、 55 秒、 57 秒给扬声器赋以低音512Hz 信号,在 59 分 59 秒给扬声器赋以高音1024Hz 信号 ,音响连续 1 秒钟 ,在 1024Hz 音响终止时刻为整点。当系统时间与闹铃时间相同时给扬声器赋以高音1024Hz 信号。闹时时间为一分钟。图 15 library ieee。use ieee.std_logic_1164.all。use ieee.std_logic_unsigned.all。USE IEEE.STD_LOGIC_ARITH.ALL。entity voice isportmin1,min0,sec1,sec0,hh,hl,mh,ml,hou0,hou1:instd_logic_vector3 downto 0。in_500,in_1000:in std_logic。q:out std_logic。 end voice。 architecture one of voice is beginprocessmin1,min0,sec1,sec0 begin可编辑资料 - - - 欢迎下载精品名师归纳总结- 整点报时部分if min1="0101" and min0="1001" and sec1="0101" thenif sec0="0001" or sec0="0011" or sec0="0101" or sec0="0111" then q<=in_500。elsif sec1="0101" and sec0="1001" then q<=in_1000。else q<='0'。end if。else q<='0'。end if。- 闹时部分ifmin1=mhandmin0=mlandhou1=hhandhou0=hlthen q<=in_1000。end if 。end process。end one。仿真波形如下图 16 :图16顶层原理图见附图。感想通过这次设计,既复习了以前所学的学问,也进一步加深了对EDA 的明白,让我对它有了更加深厚的爱好。特别是当每一个子模块编写调试成功时,心里特别的兴奋。但是在画顶层原理图时,遇到了不少问题,最大的问题就是根本没有把各个模块的VHD文件以及生成的器件都全部放在顶层文件的文件夹内,仍有就是程序设计的时候考虑的不够全面,没有联系着各个模式以及试验板的情形来编写程序,以至于多考虑编写了译码电路而铺张了很多时间。在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示 :在分频模块中,设定输入的时钟信号后,却只有二分频的结果,其余三个分频始终没反应。后来,在数十次的调试和老师的指点之后,才发觉是由于规定的信号量范畴太大且信号的初始值随机,从而不能得到所要的结果。仍有的仿真图根本就不出波形,怎么调剂都不管用,后来才知道原先是路径不正确,路径中不行以有汉字。真是细节准备成败啊! 总的来说,这次设计的数字钟仍是比较成功的,有点小小的成就感,最终觉得平常所学的学问有了有用的价值,达到了理论与实际相结合的目的,不仅学到了不少学问,而且锤炼了自己的才能,使自己对以后的路有了更加清楚的熟识,同时,对将来有了更多的信心。参考资料:1、潘松,王国栋,VHDL有用教程 M .成都 :电子科技高校出版社,2000.12、崔建明主编,电工电子EDA 仿真技术 北京:高等训练出版社,20043、李衍编著, EDA 技术入门与提高王行西安:西安电子科技高校出版社,20054、侯继红 , 李向东主编, EDA 有用技术教程北京:中国电力出版社,20045、沈明山编著, EDA 技术及可编程器件应用实训北京:科学出版社, 20046、侯伯亨等, VHDL硬件描述语言与数字规律电路设计西安 :西安电子科技高校出版社, 19977、辛春艳编著, VHDL硬件描述语言 北京:国防工业出版社,2002可编辑资料 - - - 欢迎下载精品名师归纳总结版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.可编辑资料 - - - 欢迎下载精品名师归纳总结转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。Reproduction or quotation of the content of thisarticle must be reasonable and good-faith citation for theuse of news or informative public free information. Itshall not misinterpret or modify the original intention ofthe content of this article, and shall bear legal liabilitysuch as copyright.可编辑资料 - - - 欢迎下载