基于FPGA的万年历毕业论文.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的万年历 目录 1 目的 1 1.1硬件实训目的: 1 1.2软件实训目的: 1 2 实训意义 2 3 实训内容 4 3.1 硬件实训内容: 4 3.2 软件实训内容: 4 3.2.1 功能说明: 4 3.2.2 软件设计详细内容: 4 4 疑难解答 17 5 心得 18 参考文献 20 1 目的 1.1硬件实训目的: 1. 熟悉EDA实验箱的基本工作原理。 2. 熟悉并掌握EDA实验箱各个模式的功能。 3. 提高学生的动手能力。 1.2软件实训目的: 熟悉并掌握Max+plus2软件的使用。 熟练的使用原理图输入设计方法,VHDL语言编写程序,进一步了解和掌握各个程序语言,提高编程的熟练程度。 掌握年、月、日、时、分、秒程序的原理,进而理解万年历的设计原理。 拓宽学生知识面,增强工程意识,培养学生的分析和解决实际问题的能力。 提高学生的动手能历。 2 实训意义 该数字时钟实现了调时、年、月、日、时、分、秒的显示功能,无需接译码器,可直接接八段共阴极数码管,总体结构如下图所示: 第一部分 第二部分 第三部分 D8(l5) D7(l2) D6 D5 (l4) D4(l1) D3 D2(l3) D1 8个LED数码管为了显示清楚只用了6个数码管,分为3个部分。采用的是EDA试验箱上的模式7。 软件Max+plus2方面: 在显示程序中,k3控制分屏。当k3=‘1’时,3部分数码管显示年、月、日;当k3=‘0’时,3部分数码管显示时、分、秒。万年历正常工作时,D1~D8都不亮。 调时时,秒的变化不需控制,故需调时有年、月、日、时、分5个量。数码管每部分右边灯亮时,即l5亮、l4亮、l3亮分别控制的是年、月、日的变化;每部分左边亮时,即l2亮、l1亮分别控制的是时、分的变化。若控制其中一个量变化时,其余4个量均不变,也不向高位进位。 调时、显示、年、月、日、时、分、秒的VHDL语言分别生成各自的模块(Symbol),在顶层文件wannianli中调用这些底层模块——CNT60模块,CNT24模块,tian模块,yue模块,nian模块,tiaoshi模块,xianshi模块,然后链接各个模块,构成所需要的电子日历的原理图。 硬件EDA试验箱方面: 电子日历电路图根据要求采用的是EDA试验箱上的模式7。对万年历电路图上的引脚在电脑软件Max+plus2进行绑定,然后编译,在进行下载,下载到硬件EDA试验箱上。在EDA试验箱上就可以观察到上述变化。 引脚绑定如图所示: 3 实训内容 3.1 硬件实训内容: 在电脑上通过软件Max+plus2对万年历电路图的引脚进行绑定,编译, 然后与EDA试验箱连接,把wannianli .sof文件配置通过JTAG口载入FPGA中,选择实验电路模式No.7进行硬件测试。通过学习,理论上学习了EDA试验箱的原理,对试验箱内部的组件,以及组件之间的链接有了一定的了解,为以后的实训打下了良好的基础。 3.2 软件实训内容: 3.2.1 功能说明: (1)显示准确的北京时间(年、月、日、时、分、秒,年号只显示最后两位)随时可以调校时间1).秒、分:秒和分都是从0计数到59,可以用六十进制表示。 CNT60程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity CNT60 is port(CLK :in std_logic; cq1,cq2:out std_logic_vector(3 downto 0); cout:out std_logic); end entity; architecture one of CNT60 is signal q1,q2:std_logic_vector(3 downto 0); begin process(CLK) begin if CLK'event and CLK='1' then ––检测时钟上升沿 q2<=q2+1; ––q2开始计数 if q2=9 then q1<=q1+1; q2<="0000"; end if; if q2=9 and q1=5 then q1<="0000";q2<="

文档评论(0)

精品天地 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档