EDA实验报告数字秒表的设计指导老师:谭会生班级:电技1503学号:15401700314姓名:冯博交通工程学院2017.10.28实验二数字秒表电路的设计一、实验目的1.学习QuartusⅡ软件的使用方法。2.学习GW48系列或其他EDA实验开发系统的基本使用方法。3.学习VHDL程序的基本结构和基本语句的使用。二、实验内容设计并调试一个计时范围为0.01s~1h的数字秒表,并用GW48系列或其他EDA实验开发系统进行硬件验证。三、实验要求1.画出系统的原理框图,说明系统中各主要组成部分的功能。2.编写各个VHDL源程序。3.根据系统的功能,选好测试用例,画出测试输入信号波形或编好测试程序。4.根据选用的EDA实验开发装置偏好用于硬件验证的管脚锁定表格或文件。5.记录系统仿真,逻辑综合及硬件验证结果。6.记录实验过程中出现的问题及解决方法。四、实验条件1.开发软件:QuartusⅡ13.0.2.实验设备:GW48系列EDA实验开发系统。3.拟用芯片:EP3C55F484C7五、实验设计1.设计思路要设计一个计时范为0.01S~1h的数字秒表,首先要有一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。其次,除了对每一个计数器需要设置清零信号输入外,还需为六个技术器设置时钟使能信号,即计时允许信号,以便作为秒表的计时起、停控制开关。因此数字秒表可由一个分频器、四个十进制计数器以及两个六进制记数器组成,如图1所示。系统原理框图2.VHDL程序(1)3MHz→100Hz分频器的源程序CLKGEN.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCLKGENISPORT(CLK:INSTD_LOGIC;--3MHZ信号输入NEWCLK:OUTSTD_LOGIC);--100HZ计时时钟信号输出ENDENTITYCLKGEN;ARCHITECTUREARTOFCLKGENISSIGNALCNTER:INTEGERRANGE0TO10#239999#;--十进制计数预置数BEGINPROCESS(CLK)ISBEGINIFCLK'EVENTANDCLK='1'THENIFCNTER=10#239999#THENCNTER=0;--3MHZ信号变为100MHZ,计数常熟为30000ELSECNTER=CNTER+1;ENDIF;ENDIF;ENDPROCESS;PROCESS(CNTER)IS--计数溢出信号控制BEGINIFCNTER=10#239999#THENNEWCLK='1';ELSENEWCLK='0';ENDIF;ENDPROCESS;ENDARCHITECTUREART;六进制计数器的源程序CNT6.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT6ISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;ENA:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CO:OUTSTD_LOGIC);ENDENTITYCNT6;ARCHITECTUREARTOFCNT6ISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,CLR,ENA)ISBEGINIFCLR='1'THENCQI=0000;ELSIFCLK'EVENTANDCLK='1'THENIFENA='1'THENIFCQI=0101THENCQI=0000;ELSECQI=CQI+'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(CQI)ISBEGINIFCQI=0000THENCO='1';ELSECO='0';ENDIF;ENDPROCESS;CQ=CQI;ENDARCHITECTUREART;十进制计数器的源程序CNT10.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYCNT10ISPORT(CLK:INSTD_LOGIC;CLR:INSTD_LOGIC;ENA:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CO:OUTSTD_LOGIC);ENDENTITYCNT10;ARCHITECTUREARTOFCNT10ISSIGNALCQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINPROCESS(CLK,CLR,ENA)ISBEGINIFCLR='1'THENCQI=0000;ELSIFCLK'EVENTANDCLK='1'THENIFENA='1'THENIFCQI=1001THENCQI=0000;ELSECQI=CQI+'1';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(CQI)ISBEGINIFCLK'EVENTANDCLK='1'THENIFCQI1001THENCO='0';ELSECO='1';ENDIF;ENDIF;ENDPROCESS;CQ=CQI;ENDARCHITECTUREART;数字秒表的源程序TIMES.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYTIMESISPORT(CLR:INSTD_LOGIC;CLK:INSTD_LOGIC;CLK2:INSTD_LOGIC;ENA:INSTD_LOGIC;COM:OUTSTD_LOGIC_VECTOR(7DOWNTO0);SEG:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDENTITYTIMES;ARCHITECTUREARTOFTIMESISCOMPONENTCLKGENISPORT(CLK:INSTD_LOGIC;NEWCLK:OUTSTD_LOGIC);ENDCOMPONENTCLKGEN;COMPONENTCNT10ISPORT(CLK,CLR,ENA:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CO:OUTSTD_LOGIC);ENDCOMPONENTCNT10;COMPONENTCNT6ISPORT(CLK,CLR,ENA:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);CO:OUTSTD_LOGIC);ENDCOMPONENTCNT6;COMPONENTCTRLSIS--元件定义语句PORT(CLK:INSTD_LOGIC;--端口说明语句(端口名:端口模式数据类型)SEL:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDCOMPONENTCTRLS;COMPONENTDISPLAYIS--元件定义语句PORT(SEL:INSTD_LOGIC_VECTOR(2DOWNTO0);DATAIN:INSTD_LOGIC_VECTOR(23DOWNTO0);COM:OUTSTD_LOGIC_VECTOR(7DOWNTO0);SEG:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENTDISPLAY;SIGNALS0:STD_LOGIC;SIGNALS1,S2,S3,S4,S5:STD_LOGIC;SIGNALSEL:STD_LOGIC_VECTOR(2DOWNTO0);--定义1个标准位矢量的位矢量信号SEL,含有3个元素SIGNALDOUT:STD_LOGIC_VECTOR(23DOWNTO0);--定义1个标准位矢量的位矢量信号DOUT,有24个数组元素BEGINU0:CLKGENPORTMAP(CLK=CLK,NEWCLK=S0);--名字关联U1:CNT10PORTMAP(S0,CLR,ENA,DOUT(3DOWNTO0),S1);U2:CNT10PORTMAP(S1,CLR,ENA,DOUT(7downto4),S2);--位置关联U3:CNT10PORTMAP(S2,CLR,ENA,DOUT(11DOWNTO8),S3);U4:CNT6PORTMAP(S3,CLR,ENA,DOUT(15DOWNTO12),S4);U5:CNT10PORTMAP(S4,CLR,ENA,DOUT(19DOWNTO16),S5);U6:CNT6PORTMAP(S5,CLR,ENA,DOUT(23DOWNTO20));U7:CTRLSPORTMAP(CLK2,SEL);U8:DISPLAYPORTMAP(SEL(2DOWNTO0),DOUT(23DOWNTO0),COM(7DOWNTO0),SEG(7DOWNTO0));--位置关联方式ENDARCHITECTUREART;六、实验结果及总结(1)仿真波形本设计包括两个层次,先进行底层的分频器CLKGEN、十进制计数器CNT10和六进制计数器CNT6的仿真,再进行顶层TIMES的仿真。(2)管脚锁定文件根据TIMES的电路结构图确定引脚的锁定如下图所示:(3)系统仿真结果CLKGEN的仿真结果如图所示:CNT6的仿真结果如图所示:CNT10的仿真结果如图所示:TIMES的仿真结果如图所示:从仿真的结果可以看出,底层的CLKGEN、CNT6、CNT10程序和顶层的TIMES程序都能实现预期功能,符合设计要求。同时从系统时序仿真结果可以看出,从输入到输出有一定的延时,这正是器件延时特性的反映。(4)逻辑综合结果使用QuartusⅡ13.0进行逻辑综合后,TIMES的RTL视图如图所示:(5)实物仿真DEA实验报告实验一:数字秒表的设计实验时间:2017年10月28号指导老师:谭会生学生姓名:马啸韬班级:电子科学与技术1503班学号:15401700331交通工程学院2017年10月28号1.实验目的:(1)学习QuartusII/ISEDesignSuite软件的基本使用方法.(2)学习GW48系列或其他EDA实验开发系统的基本使用方法.(3)学习VHDL程序的基本结构和基本语句的使用.2.实验内容设计并调试好一个计时范围为0.01~1h的数字秒表,并用GW48系列或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。3.实验条件(1)开发软件:QuartusⅡ8.0(2)实验设备:GW48系列EDA实验开发系统(3)拟用芯片:EPM7128S-PL844.实验设计(1)系统原理:需设计一个计时范围为0.01s~1h的数字秒表,首先需要获得一个比较精确的计时基准信号,这里是周期为1/100s的计时脉冲。其次,除了对每一个计时器需设置清零信号输入外,还需要为六个计时器设置时钟使能信号,以便作为秒表计时起、停控制开关。因此数字秒表可由一个分频器、四个十进制计数器(1/100s、1/10s、1s、1min)以及两个六进制计时器(10s、10min)组成,如图所示。(2)VHDL源程序①CLKGEN的VHDL源程序--CNT9999.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCLKGENISPORT(CLK:INSTD_LOGIC;--3MHZNEWCLK:OUTSTD_LOGIC);--100HZENDENTITYCLKGEN;ARCHITECTUREARTOFCLKGENISSIGNALCNTER:INTEGERRANGE0TO10#239999#;BEGINPROCESS(CLK)ISBEGINIFCLK'EVENTANDCLK='1'THENIFCNTER=10#239999#THENCNTER=0;100MHZ,计数常熟为30000ELSECNTER=CNTER+1;ENDIF;