ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:100.25KB ,
资源ID:4482897      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4482897.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(万年历实训报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

万年历实训报告.docx

1、万年历实训报告EDA技术及其应用实 训 报 告班 级 电信一班 姓 名 xx 学 号 xx 指导教师 xx 2012年 05月 21 日 xxxx学院 10级机械电子工程系前言.4课题.4 实验的目的及意义.4 实验的内容及要求.4 实验的地点.41. 6 实验的器材.41. 7 实验设计思想.41.8各模块的设计程序和元件介绍.5感想. 前言随着电子技术的不断发展与进步,电子系统的设计方法发生了很大的变化,基于EDA技术的设计方法正成为电子系统设计的主流,EDA技术已成为许多高职高专院校电类专业学生必须掌握的一门重要技术。 此次基于EDA技术的万年历实训,加强了同学们对EDA工具Quartu

2、sII的使用方法、VHDL语言知识、FPGA开发技术的深入理解,通过万年历的功能实现和功能测试,详细介绍QuartusII的完整设计流程,在此基础上,进一步介绍面向复杂模块的使用方法。其中包括年、月、日、时、分、秒以及调整、控制等各个模块的功能实现和仿真测试,进一揭示VHDL语言在语句应用和电路功能描述上的特点及其特殊用法,使我们在很短的时间内快速掌握了EDA这门重要技术。实验的课题: 万年历实验的目的及意义:(1)掌握EDA技术及FPGA技术的开发流程。(2)掌握系统设计的方法和层次化设计的方法。(3)掌握QuartusII软件的使用方法。(4)掌握VHDL语言的程序设计、编写、编译和错误修

3、改。(5)掌握熟悉EDA实验箱的各个模块(6)掌握EDA试验箱与pc机的连接、下载和引脚绑定的全过程和方法,实现功能仿真。实验的内容及要求:(1)实现年、月、日、时、分、秒的显示并具有闰年判断计数的功能(2)在试验箱上通过按键实现年月日和时分秒的显示切换。 (3)利用试验箱和pc机进行功能测试并实现万年历的显示功能。实验的地点:xxx学院EDA实验室实验的器材:硬件:计算机、EDA试验箱 软件:QuartusII软件实验设计思想: 将万年历分为各个模块分项处理,每个小模块实现一个小的功能,最后在万年历的顶层文件中将各个模块整好在一起,实现万年历的整体功能。这是万年历实验设计的整体思想。 其中组

4、成模块有:秒计时模块cnt60、分计时模块cnt60、时计时模块cnt24、日计时模块tian、月计时模块yue、年计时模块nian、调整模块tz、控制模块mux21,然后在顶层文件中连接个各个模块组成万年历的完整连接图,之后再pc机上进行编译,完成引脚绑定再下载到实验箱上,根据程序内容及引脚绑定通过按键控制和led灯的显示最终完成测试。各模块设计:1、秒分时、年月日、调整控制模块设计程序(1)秒计时模块cnt60(六十进制计数器)程序:library ieee;use CNT60 isport(clk:in std_logic;CQ1,CQ2:out std_logic_vector(3 d

5、ownto 0);COUT:OUT std_logic);end entity CNT60;architecture art of CNT60 issignal s1,s2:std_logic_vector(3 downto 0);beginprocess(clk)beginIF clkevent AND clk=1 then S1=S1+1; IF S1=9 THEN S1=0000;S2=S2+1; END IF; IF s2=5 AND S1=9 then s1=0000;s2=0000; COUT=1; else COUT=0; end if; end if;CQ1=S1;CQ2=S2

6、;end process;END art;将程序用QuartusII软件编译之后生成的cnt60模块元件如下图所示: (此模块实现六十进制计数,用它实现分和秒功能)(2)分计时模块cnt60:(六十进制计数器)分计时模块和秒计时秒快一样,同样是用六十进制计数器cnt60,程序和生成元件同上所述。(3)时计时模块cnt24(二十四进制计数器)程序:library ieee;use CNT24 isport( clk:in std_logic;CQ1,CQ2:out std_logic_vector(3 downto 0);COUT:OUT std_logic);end entity CNT24;

7、architecture art of CNT24 issignal s1,s2:std_logic_vector(3 downto 0);beginprocess(clk)beginIF clkevent AND clk=1 then S1=S1+1;IF S1=9 THEN S1=0000; S2=S2+1; END IF;if s2=2 AND S1=3 then s1=0000;s2=0000;COUT=1;else COUT=1; end if; end if; CQ1=S1;CQ2=S2;end process;END art;将程序用QuartusII软件编译之后生成的cnt24

8、模块元件如下图所示:(此模块实现二十四进制计数,用它实现小时功能)(4)天计时模块tian程序:library ieee;use tian isport(clk:in std_logic; ab:in std_logic_vector(1 downto 0); CQ1,CQ2:out std_logic_vector(3 downto 0); COUT:OUT std_logic);end entity tian;architecture art of tian is signal s1,s2:std_logic_vector(3 downto 0);beginprocess(clk) beg

9、in IF clkevent AND clk=1 then S1=S1+1;IF S1=9 THEN S1=0000; S2IF S2=2 AND S1=8 THEN S1=0000;S2=0000;COUT=1; ELSE COUTIF S2=2 AND S1=9 THEN S1=0000;S2=0000;COUT=1; ELSE COUTIF S2=3 AND S1=0 THEN S1=0000;S2=0000;COUT=1; ELSE COUTIF S2=3 AND S1=1 THEN S1=0000;S2=0000;COUT=1; ELSE COUTNULL;END CASE; END

10、 IF;CQ1=S1;CQ2=S2;end process;END art;将程序用QuartusII软件编译之后生成的tian模块元件如下图所示:(此模块实现的是天的计数功能,其中ab用来控制计数的进制,分为四种情况:28天、29天、30天和31天,其具体信号由月模块判断输出)(5)月计时模块yue程序:library ieee;use yue isport( clk:in std_logic; ab:out std_logic_vector(1 downto 0); r: in std_logic; CQ1,CQ2:out std_logic_vector(3 downto 0); COU

11、T:OUT std_logic);end entity YUE;architecture art of yue is signal s1,s2:std_logic_vector(3 downto 0);beginprocess(clk) begin IF clkevent AND clk=1 then S1=S1+1; IF S1=9 THEN S1=0000; S2=S2+1; END IF; IF s2=1 and s1=2 then s1=0001;s2=0000; COUT=1; ELSE COUTabif r=0 then ab=00; else ababababababababab

12、ababNULL; END CASE;CQ1=S1;CQ2=S2;end process;END art;将程序用QuartusII软件编译之后生成的yue模块元件如下图所示:(此模块实现的是月的计数功能,在其输入信号中,r用来判断是否为闰年,且在该模块中判断月份,为:一、三、五、七、八、十、十二月份时,ab=11,每月为31天;为:四、六、九、十一月份时,ab=10,每月为30天;二月份单独判断,当为闰年时, ab=10,二月为28天,当为非闰年时, ab=01,二月为29天。)(6)年计时模块nian程序:library ieee;use nian isport( clk:in std_l

13、ogic; CQ1,CQ2:out std_logic_vector(3 downto 0); r: buffer std_logic);end entity nian;architecture art of nian is signal s1,s2,a:std_logic_vector(3 downto 0);begin process(clk) begin IF clkevent AND clk=1 then S1=S1+1;a=a+1; IF S1=9 THEN S1=0000; S2=S2+1; END IF; IF s2=9 and s1=9 then s1=0001;s2=0000

14、; END IF; IF a=3 then r=1;a=0000; else r=0; end if; END IF; CQ1=S1;CQ2=S2;end process;END art;将程序用QuartusII软件编译之后生成的nian模块元件如下图所示:(此模块实现的是年的计数功能,并判断是否为闰年)(7)调整模块tz程序:LIBRARY IEEE;USE tz IS PORT( fi,si,ti,yi,ni,l2,l3,l4,l5,l6:out STD_LOGIC; k2,k3:in STD_LOGIC; yo,too,soo,fo,mo:in STD_LOGIC);END tz ;a

15、rchitecture one of tz is signal a:std_logic_vector(3 downto 0);begin process(k3,k2)begin if k2event and k2=1 then a=a+1; if a=5 then afi=mo;si=fo;ti=soo;yi=too;ni=yo; l2=0;l3=0;l4=0;l5=0;l6fi=k3;si=0;ti=0;yi=0;ni=0;l2=1;l3=0;l4=0;l5=0;l6fi=0;si=k3;ti=0;yi=0;ni=0;l2=0;l3=1;l4=0;l5=0;l6fi=0;si=0;ti=k3

16、;yi=0;ni=0;l2=0;l3=0;l4=1;l5=0;l6fi=0;si=0;ti=0;yi=k3;ni=0;l2=0;l3=0;l4=0;l5=1;l6fi=0;si=0;ti=0;yi=0;ni=k3;l2=0;l3=0;l4=0;l5=0;l6null;end case;end process;end;将程序用QuartusII软件编译之后生成的tz模块元件如下图所示:(此模块实现调整各模块(不包括秒)的调数,通过按键k2、k3调整年月日时分秒的切换,从而控制实验箱上年月日时分秒相对应的led灯的亮灭,l2、l3、l4、l5、l6用来指示是否处于调数状态)(8)控制模块mux21

17、:(用来控制年月日和时分秒的切换)程序:LIBRARY IEEE;USE mux21 ISPORT(m1,m2,f1,f2,s1,s2: in STD_LOGIC_vector(3 downto 0);,t1,t2,n1,n2,y1,y2:in STD_LOGIC_vector(3 downto 0); k1:in STD_LOGIC; l1:out std_logic;a1,a2,b1,b2,c1,c2:out STD_LOGIC_vector(3 downto 0);END mux21 ;architecture one of mux21 isbegin process(k1)begin

18、if k1=0 then a1=m1;a2=m2; b1=f1;b2=f2; c1=s1;c2=s2; l1=1; else a1=t1;a2=t2; b1=y1;b2=y2; c1=n1;c2=n2; l1=0; end if;end process;end one;将程序用QuartusII软件编译之后生成的mux21模块元件如下图所示:(此模块用来显示年月日和时分秒之间内容的切换)2、万年历的顶层文件原理图:(将以上各个模块在顶层文件中用线连接起来构成万年历的原理图,从而使它万年历的功能)3、引脚绑定和下载: 编译通过之后,在pc机上完成各个引脚的绑定工作,绑定好之后再用数据线将pc机和实验箱上的USB接口连接起来,然后完成下载工作,即将程序下载到实验箱上,在实验箱上完成万年历功能的显示和实现。4、调试通过对应的按键和切换将数码管上的时间时分秒和日期年月日调整到当前时刻即可。直到万年历功能在实验箱上正确显示和实现。 实验感想 通过这次试验.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1