电子日历VHDL程序设计报告

上传人:飞*** 文档编号:35885549 上传时间:2018-03-22 格式:DOC 页数:23 大小:436.50KB
返回 下载 相关 举报
电子日历VHDL程序设计报告_第1页
第1页 / 共23页
电子日历VHDL程序设计报告_第2页
第2页 / 共23页
电子日历VHDL程序设计报告_第3页
第3页 / 共23页
电子日历VHDL程序设计报告_第4页
第4页 / 共23页
电子日历VHDL程序设计报告_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《电子日历VHDL程序设计报告》由会员分享,可在线阅读,更多相关《电子日历VHDL程序设计报告(23页珍藏版)》请在金锄头文库上搜索。

1、电子设计自动化实训说明书电电子子设设计计自自动动化化实实训训说说明明书书题题 目目:电子日历 VHDL 程序设计报告 系系 部:部:信息与控制工程学院 专专 业:业:电子信息工程 班班 级级:07 级 2 班 学生姓名学生姓名:张献哲 学学 号号:07031340221 指导教师指导教师:杜 德 2010 年 12 月 6 日电子设计自动化实训说明书目录1 实训目的.11.1 硬件实训目的: .11.2 软件实训目的: .12 实训意义.23 实训内容.43.1 硬件实训内容: .43.2 软件实训内容: .43.2.1 功能说明: .43.2.2 软件设计详细内容: .44 实训中疑难解答.

2、175 实训心得.18参考文献.20电子设计自动化实训说明书11 1 实训目的实训目的1.11.1 硬件实训目的:硬件实训目的:1. 熟悉 EDA 实验箱的基本工作原理。2. 熟悉并掌握 EDA 实验箱各个模式的功能。3. 提高学生的动手能力。1.21.2 软件实训目的:软件实训目的:1熟悉并掌握 Max+plus2 软件的使用。2熟练的使用原理图输入设计方法,VHDL 语言编写程序,进一步了解和掌握各个程序语言,提高编程的熟练程度。3掌握年、月、日、时、分、秒程序的原理,进而理解万年历的设计原理。4拓宽学生知识面,增强工程意识,培养学生的分析和解决实际问题的能力。5提高学生的动手能历。电子设

3、计自动化实训说明书22 2 实训意义实训意义该数字时钟实现了调时、年、月、日、时、分、秒的显示功能,无需接译码器,可直接接八段共阴极数码管,总体结构如下图所示:第一部分 第二部分 第三部分 D8(l5) D7(l2) D6 D5 (l4) D4(l1) D3 D2(l3) D18 个 LED 数码管为了显示清楚只用了 6 个数码管,分为 3 个部分。采用的是 EDA试验箱上的模式 7。软件 Max+plus2 方面:在显示程序中,k3 控制分屏。当 k3=1时,3 部分数码管显示年、月、日;当 k3=0时,3 部分数码管显示时、分、秒。万年历正常工作时,D1D8 都不亮。调时时,秒的变化不需控

4、制,故需调时有年、月、日、时、分 5 个量。数码管每部分右边灯亮时,即 l5 亮、l4 亮、l3 亮分别控制的是年、月、日的变化;每部分左边亮时,即 l2 亮、l1 亮分别控制的是时、分的变化。若控制其中一个量变化时,其余 4 个量均不变,也不向高位进位。调时、显示、年、月、日、时、分、秒的 VHDL 语言分别生成各自的模块(Symbol),在顶层文件 wannianli 中调用这些底层模块CNT60 模块,CNT24 模块,tian 模块,yue 模块,nian 模块,tiaoshi 模块,xianshi 模块,然后链接各个模块,构成所需要的电子日历的原理图。硬件 EDA 试验箱方面:电子日

5、历电路图根据要求采用的是 EDA 试验箱上的模式 7。对万年历电路图上的引脚在电脑软件 Max+plus2 进行绑定,然后编译,在进行下载,下载到硬件 EDA 试验箱上。在 EDA 试验箱上就可以观察到上述变化。电子设计自动化实训说明书3引脚绑定如图所示:电子设计自动化实训说明书43 3 实训内容实训内容3.13.1 硬件实训内容:硬件实训内容:在电脑上通过软件 Max+plus2 对万年历电路图的引脚进行绑定,编译, 然后与 EDA 试验箱连接,把 wannianli .sof 文件配置通过 JTAG 口载入 FPGA 中,选择实验电路模式 No.7 进行硬件测试。通过学习,理论上学习了 E

6、DA 试验箱的原理,对试验箱内部的组件,以及组件之间的链接有了一定的了解,为以后的实训打下了良好的基础。3.23.2 软件实训内容:软件实训内容:3.2.1 功能说明:(1)显示准确的北京时间(年、月、日、时、分、秒,年号只显示最后两位)(2)随时可以调校时间即可以控制年、月、日、时、分的变化,可以跳到指定的时间。3.2.2 软件设计详细内容:(1).秒、分:秒和分都是从 0 计数到 59,可以用六十进制表示。CNT60 程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CN

7、T60 isport(CLK :in std_logic;cq1,cq2:out std_logic_vector(3 downto 0);cout:out std_logic);end entity;architecture one of CNT60 issignal q1,q2:std_logic_vector(3 downto 0); 电子设计自动化实训说明书5begin process(CLK) begin if CLKevent and CLK=1 then 检测时钟上升沿q2if q2=3 and q1=1 then q2if q2=3 and q1=0 then q2if q2=

8、2 and q1=8 then q2if q2=2 and q1=9 then q2null;end case;end if;end process;T1panif run=1 then panpanpanpanpanpanpanpanpanpanpannull;end case;end if;Y1n1n1n1n1n1n1NULL;end case;end process;end;tiaoshi 模块如图:(7).显示library ieee;use ieee.std_logic_1164.all;电子设计自动化实训说明书15use ieee.std_logic_unsigned.all;en

9、tity xianshi isport(k3:in std_logic;ns,ng,ts,tg,ys,yg,ss,sg,fs,fg,ms,mg:in std_logic_vector(3 downto 0);q1,q2,q4,q5,q7,q8:out std_logic_vector(3 downto 0); l:out std_logic); end entity;architecture one of xianshi isbeginprocess(k3)beginif k3 =1 then q8=ns;q7=ng;q5=ys;q4=yg;q2=ts;q1=tg;l=1; k3=1时,三部分

10、数码管从左至右分别显示年、月、日,l 输出信号为 1else q8=ss;q7=sg;q5=fs;q4=fg;q2=ms;q1=mg;l=0; k3=0时,三部分数码管从左至右分别显示时、分、秒,l 输出信号为 1end if;end process;end one; xianshi 模块如图:电子设计自动化实训说明书16(8)万年历原理图:由底层文件生成的模块即 CNT60 模块,CNT24 模块,tian 模块,yue 模块,nian 模块,tiaoshi 模块,xianshi 模块链接构成。万年历的实体如下:entity wannianli isport(clk:in std_logic

11、; k1,k2,k3 :in std_logic;q1,q2,q4,q5,q7,q8:out std_logic_vector(3 downto 0); l,l1,l2,l3,l4,l5:out std_logic); end entity; 输入信号:clk 是最底层文件秒的时钟信号k1 是 tiaoshi 程序的时钟信号k2 是控制调时中年、月、日、时分的变化k3 是控制分屏。输出信号:q7,q8 显示的是年(时)q4,q5 显示的是月(分)q1,q2 显示的是日(秒)l 输出高电平1 ,q8=ns;q7=ng;q5=ys;q4=yg;q2=ts;q1=tg;l 输出低电平0 ,q8=ss

12、;q7=sg;q5=fs;q4=fg;q2=ms;q1=mg;l5 输出高电平1 ,控制的是年的变化l4 输出高电平1 ,控制的是月的变化l3 输出高电平1 ,控制的是日的变化l2 输出高电平1 ,控制的是时的变化l1 输出高电平1 ,控制的是分的变化电子设计自动化实训说明书174 4 实训中疑难解答实训中疑难解答在 EDA 实训过程中,刚开始时不知如何着手,就是老师把程序讲的很清楚了,最后还是出现很多错误。不过幸运的是,我找到解决的方法。错误: 1CNT24 程序编译无错误,但波形仿真时只有 013,2023 这几个数。原因:CNT24 是在 CNT60 的基础上改的,CNT60 程序波形仿真正确,认为 CNT24 程序也因该正确,但却不曾考虑 24 进制与 60 进制的不同。在日常生活中个位 9 的后面就是个位 0。CNT60 的个位 q2=9 时,随后清零,但 CNT24 的个位 q2=3,随后清零,但 3 的后面是 4。因此出现了上述问题。2.CNT60 程序,CNT24 程序编译正确,波形仿真也正确,但把 CNT 60 和 CNT24组成一个时间程序时,秒位对应的数码管从 059 变化正常,但分、时位所对应的数码管却都为 00。原因:CNT60 程序中第一个 59 到达后,输出进位信号 cout

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

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

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