您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > EDA技术与实践综合设计报告
北华航天工业学院综合实践总结报告综合实践名称:EDA技术与实践年历日历设计综合实践地点、时间教十EDA实验室2014-2015-2学期第13~17周专业班级:13251姓名:李露陈泽东李泽宙学号:201310194201310167201310193指导教师姓名:薛瑞完成时间:2015年6月20日2一、综合实践目的1.通过编写VHDL程序,结合硬件电路设计,实现年·月·日的计时功能。同时将计时结果通过8个七段数码管显示,并可通过两个按键,对计数时钟的有关参数进行调整。2.学会使用QUARTUSⅡ软件下载调试程序,用调试程序将学习板调试成功。锻炼学生的动手能力以及提高学生的综合专业素质。二、综合实践理论基础和核心内容根据系统的设计要求,计时电路可分为计日电路,计月电路,,计年电路等三个子模块,这三个子模块必须都具有预置,计数和进位功能,设计思想如下:(1)计日电路:将计时电路产生的进位脉冲信号作为计日电路的计数时钟信号,通过系统辨认,确定本月总天数X(包括28,29,30,31四种情况),待计数至X+1瞬间,进位,计月电路加1,而计日电路返回1重新开始计数。(2)计月电路:将计日电路产生的进位脉冲信号作为计月电路的计时时钟信号,待计时至12瞬间,进位,计年电路加1,而计月电路返回1重新开始计数。(3)计年电路:将计月电路产生的进位脉冲信号作为时钟计年电路的计数时钟信号,待计数至100瞬间,计年电路返回0重新开始计数。(4)对于系统中的时间调整电路,拟通过模式和调整两个外部按3件完成。模式键负责切换正常时间计数模式和时间调整模式,调整键负责在时间调整模式之下,对当前模式的计数结果进行调整。三、综合实践具体内容和记录(图、表或程序等)1·Tian程序(李露)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitytianisport(clk,a,b:instd_logic;t1:outstd_logic_vector(3downto0);t2:outstd_logic_vector(7downto4);cout:outstd_logic);endtian;architectureoneoftianissignalq1:std_logic_vector(3downto0);signalq2:std_logic_vector(7downto4);signalab:std_logic_vector(1downto0);beginprocess(clk,a,b)beginifclk'eventandclk='1'thenq1=q1+1;ifq1=9thenq1=0000;q2=q2+1;endif;ab=a&b;caseabis4when00=--当ab=00时,yue输出31天ifq2=3andq1=1thenq2=0000;q1=0001;cout='1';elsecout='0';endif;when01=--当ab=01时,yue输出30天ifq2=3andq1=0thenq2=0000;q1=0001;cout='1';elsecout='0';endif;when10=--当ab=10时,yue输出28天ifq2=2andq1=8thenq2=0000;q1=0001;cout='1';elsecout='0';endif;when11=--当ab=11时,yue输出29天ifq2=2andq1=9thenq2=0000;q1=0001;cout='1';elsecout='0';endif;whenothers=null;endcase;endif;endprocess;t1=q1;t2=q2;endone;仿真31天530天28天29天2·Yue程序(陈泽东)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyueisport(clk,run:instd_logic;y1:outstd_logic_vector(3downto0);y2:outstd_logic_vector(7downto4);6a,b,cout:outstd_logic);endyue;architectureoneofyueissignalq1,q2:std_logic_vector(3downto0);signalq2q1:std_logic_vector(7downto0);beginprocess(clk,run)beginifclk'eventandclk='1'thenq1=q1+1;ifq1=9thenq1=(others='0');q2=q2+1;endif;ifq2=1andq1=2thenq2=0000;q1=0001;cout='1';elsecout='0';endif;endif;q2q1=q2&q1;caseq2q1iswhen00000001=a='0';b='0';--当为1月时,a=0b=0为31天when00000010=ifrun='1'thena='1';b='1';elsea='1';b='0';endif;--当为2月时,如果是闰年a=1b=1为29天,否则a=1b=0为28天when00000011=a='0';b='0';--当为3月时,a=0b=0为31天when00000100=a='0';b='1';--当为4月时,a=0b=1为30天when00000101=a='0';b='0';7--当为5月时,a=0b=0为31天when00000110=a='0';b='1';--当为6月时,a=0b=1为30天when00000111=a='0';b='0';--当为7月时,a=0b=0为31天when00001000=a='0';b='0';--当为8月时,a=0b=0为31天when00001001=a='0';b='1';--当为9月时,a=0b=1为30天when00010000=a='0';b='0';--当为10月时,a=0b=0为31天when00010001=a='0';b='1';--当为11月时,a=0b=1为30天when00010010=a='0';b='0';--当为12月时,a=0b=0为31天whenothers=null;endcase;y1=q1;y2=q2;endprocess;endone;仿真3·Nian程序(李泽宙)libraryieee;8useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitynianisport(clk:instd_logic;n1,n2:outstd_logic_vector(3downto0);run,cout:outstd_logic);endnian;architectureoneofnianissignalq1,q2,q3:std_logic_vector(3downto0);beginprocess(clk)beginifclk'eventandclk='1'then--如果clk=1时,q1加1q1=q1+1;ifq1=9thenq1=(others='0');--如果q1=9,q1清零,q2加1q2=q2+1;endif;ifq2=9andq1=9thenq1=0000;--如果q1=9,q2=9,q1、q2清零,进位。否则不进位q2=0000;cout='1';elsecout='0';endif;endif;endprocess;process(clk)beginifclk'eventandclk='1'then--如果clk=1,q3加1q3=q3+1;9ifq3=3thenq3=(others='0');--如果q3=3则q3清零run=1否则run=0run='1';elserun='0';endif;endif;n1=q1;n2=q2;endprocess;endone;仿真4·Nian2程序(李泽宙)LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYnian2ISPORT(clk:INSTD_LOGIC;n3,n4:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDENTITYnian2;ARCHITECTUREoneOFnian2ISSIGNALq1:STD_LOGIC_VECTOR(3DOWNTO0):=0000;SIGNALq2:STD_LOGIC_VECTOR(3DOWNTO0):=0010;SIGNALq3:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(clk)BEGINIFclk'EVENTANDclk='1'THEN--如果clk=1时,q1加110q1=q1+'1';IFq1=9THEN--如果q1=9,q1q2加1q1=0000;q2=q2+'1';ENDIF;IFq2=9ANDq1=9THEN--如果q1=9,q2=9,q1、q2清零q2=0000;q1=0000;ENDIF;ENDIF;n3=q1;n4=q2;ENDPROCESS;ENDone;仿真5·Seltime程序——扫描(李露)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityseltimeisport(clk1:instd_logic;t1,t2,y1,y2,n1,n2,n3,n4:instd_logic_vector(3downto0);daout:outstd_logic_vector(3downto0);11dp:outstd_logic;s:outstd_logic_vector(3downto0);sel:outstd_logic_vector(3downto0));endseltime;architecturefunofseltimeissignalcount:std_logic_vector(3downto0);begins=1011;sel=count;process(clk1)beginif(clk1'eventandclk1='1')thenif(count=0111)thencount=0000;elsecount=count+1;endif;endif;casecountisWHEN0000=DAOUT=t1;DP='0';--sel为“0000”时,扫描天个位,DP点不亮WHEN0001=DAOUT=t2;DP='0';--sel为“0001”时,扫描天十位,DP点不亮WHEN0010=DAOUT=y1;DP='1';--sel为“0010”时,扫描月个位,DP点亮WHEN0011=DAOUT=y2;DP='0';--sel为“0011”时,扫描月十位,DP点不亮WHEN0100=DAOUT=n1;DP='1';--sel为“0100”时,扫描年个位,DP点亮12WHEN0101=DAOUT=n2;DP='0';--sel为“0101”时,扫描年十位,DP点不亮WHEN0110=DAOUT=n3;DP='0';--sel为“0110”时,扫描年百位,DP点不亮WHENOTHERS=DAOUT=n4;DP='0';--sel为“0111”时,扫描年千位,DP点不亮en
本文标题:EDA技术与实践综合设计报告
链接地址:https://www.777doc.com/doc-2911001 .html