青海民族大学EDA论文论文题目:基于EDA的数字电子钟的实现指导老师:院系:物理与电子信息工程学院姓名:学号:班级:08通信工程(1)班2010年11月25日目录摘要Abstract第一章:绪论1.1:选题目的1.2:设计思路第二章:数字电子钟小系统2.1:整体设计方案框架图2.2:模块程序验证2.3:总程序框图第三章:硬件实现与总结3.1:硬件实现3.2:总结致谢参考文献摘要EDA技术[1]的设计语言为VHDL(硬件描述语言),实验载体为可编程器件CPLD或者FPGA,进行元件建模和仿真的目标器件为ASIC/SOC芯片。它是一种自动化设计电子产品的过程。在电子设计仿真的领域里,EDA技术的出现具有非常重要的现实意义。EDA源自于计算机辅助设计、制造、测试以及辅助工程。利用EDA工具,设计者们可以从概念、算法、协议等方面来设计电子系统。值得一提的是,在整个电子系统的设计过程中,设计电路、分析性能、布置IC和PCB版图等步骤都可以在电脑上自动完成。时钟我们的日常生活中必备的生活用品之一。而数字时钟的出现更是给人们的生产生活带来了极大的便利。EDA技术为数字类产品提供了一个非常简便实用的开发平台。随着EDA技术的快速发展,数字时钟的应用的范围越来越广泛,并且它在功能、外观等方面也有了很大的改善和提高。本文就是基于EDA技术和数字电路的基础知识,利用Quartus2软件、再现一个传统时钟功能和闹铃功能的数字时钟。整个小系统包括传统数字时钟所拥有的计时模块、校时模块、译码显示模块。关键词:EDA;数字时钟;模块;闹钟AbstractEDAtechnologydesignlanguageforVHDL(hardwaredescriptionlanguage),experimentalcarrierforprogrammabledevices,componentsorFPGACPLDdevicemodelingandsimulationoftargetforASIC/SOCchip.Itisakindofautomationdesignelectronicproductprocess.Intheelectronicdesignsimulationfield,EDAtechniqueappearshasveryimportantpracticalsignificance.EDAoriginatedincomputeraideddesign,manufacture,testandtheauxiliaryprojects.UsingEDAtools,designerscanfromconcept,algorithm,agreement,etctodesignelectronicsystems.Beworthwhatcarryis,inthewholeelectronicsystemdesignprocess,thecircuitdesign,analyzingperformance,decorateICandPCBlayoutstepscanbeonthecomputerautomatically.Clockisoneofthenecessariesinourdailylife.Anddigitalclockhasbroughtaboutlotsofconvenience.EDAtechnologyprovidesasimplerandmoreusefulplatformtomakeastudyofdigitalproducts.WiththedevelopmentofEDAtechnology,digitalclockhasimprovedalotinitsdesigningprocess,functions,appearanceandsoon.Nowadays,thispaperisbasedonEDAtechniqueanddigitalcircuit,byusingthebasicknowledgeofQuartus2software,reproduceatraditionalclockfunctionandalarmfunctionofdigitalclock.Thesystemincludestraditionaldigitalclockshavetimermodules,alarmclockmodule,decodingdisplaymodule.Keywords:EDA;digitalclock;modules;alarm第一章:绪论1.1:选题目的时钟是我们日常生活中常见的一种电子产品,它的出现给我们的生活带来了极大的便利,在大学这两年里所学的有关电子的知识尤其是EDA给了我一个平台去再现原始的、传统的数字电子钟,也为深入去了解、思考创新数字电子钟有一个基础。目前,现代时钟正朝着高精度、多功能、小体积、低功耗等方向发展。在这种趋势下,数字时钟以其小巧的外形、便宜的价格、走时准确、功能强大等优点迅速成为钟表市场上的主流产品。由此可见,研究数字时钟的扩展及其应用,有着非常重要的现实意义。因此,本论文即利用EDA技术(本论文仅涉及VHDL语言编程及硬件实现)以及数字电路技术等基础知识设计了一个传统钟表功能(如计时、闹铃等)数字时钟小系统。1.2:设计思路要实现一个数字时钟小系统,整个系统由主要模块电路模块和外部输入输出以及显示模块组成。首先分别实现单个模块的功能,然后再通过级联组合的方式实现对整个系统的设计。其中,主要模块有四个。它包括脉冲信号产生模块、时间计数模块(计数模块又分为分计数模块、秒计数模块、时计数模块)、译码显示模块、复位模块。各个模块先用EDA技术中的VHDL语言编程仿真,再生成各个小模块的模拟元件,再元件例化,根据设计连接电路实现数字电子钟小系统。第二章:数字电子钟小系统2.1:整体设计方案框架图译码显示计时模块校时模块时钟脉冲复位模块2.2:模块程序验证1、秒计时器(second1)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysecondisport(clk,reset:instd_logic;sec1,sec2:outstd_logic_vector(3downto0);carry:outstd_logic);endsecond;architecturert1ofsecondissignalsec1_t,sec2_t:std_logic_vector(3downto0);beginprocess(clk,reset)beginifreset='1'thensec1_t=0000;sec2_t=0000;elsifclk'eventandclk='1'thenifsec1_t=1001thensec1_t=0000;ifsec2_t=0101thensec2_t=0000;elsesec2_t=sec2_t+1;endif;elsesec1_t=sec1_t+1;endif;ifsec1_t=1001andsec2_t=0101thencarry='1';elsecarry='0';endif;endif;endprocess;sec1=sec1_t;sec2=sec2_t;endrt1;程序生成波形和硬器件:同秒计时器一样3、时计时器(hour1)libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityhourisport(clk,reset:instd_logic;hour1,hour2:outstd_logic_vector(3downto0));endhour;architecturert1ofhourissignalhour1_t,hour2_t:std_logic_vector(3downto0);beginprocess(clk,reset)beginifreset='1'thenhour1_t=0000;hour2_t=0000;elsifclk'eventandclk='1'thenifhour1_t=0011andhour2_t=0010thenhour1_t=0000;hour2_t=0000;elseifhour1_t=1001thenhour1_t=0000;ifhour2_t=0010thenhour2_t=0000;elsehour2_t=hour2_t+1;endif;elsehour1_t=hour1_t+1;endif;endif;endif;endprocess;hour1=hour1_t;hour2=hour2_t;endrt1;程序生成波形和硬器件:4、分频器(fp)libraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;entityfpisport(rst,clk:inSTD_LOGIC;what:outSTD_LOGIC);endfp;architectureaoffpissignalcount100:integerrange0to99;signaltt:std_logic;beginprocess(rst,clk)beginifrst='1'thencount100=0;elsifrising_edge(clk)thencount100=count100+1;tt=tt;ifcount100=99thencount100=0;tt=nottt;endif;endif;what=tt;endprocess;enda;程序生成波形和硬器件:5、mux6_1scanlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitymux6_1scanisport(clkscan,reset:instd_logic;in1,in2,in3,in4,in5,in6:instd_logic_vector(3downto0);data:outstd_logic_vector(3downto0);sel:outstd_logic_vector(2downto0));endmux6_1scan;architecturert1ofmux6_1scanissignalcount:std_logic_vector(2downto0);beginprocess(clkscan,reset)beginifreset='1'thencount=000;elsifclkscan'eventandclkscan='1'thenifcount=101thencount=000;elsecount=count+1;endif;endif;endprocess;process(count)begincasecountiswhen000=data=in1;when001=data=in2;when010=data=in3;when011=data=in4;when100=data=in5;whenothers=data=in6;endcase;endprocess;sel=count;endrt1;程序生成波形和硬器件:6.译码显示模块的VHDL程序(segment7.vhd)libraryieee;useieee.std_logic_1164.all;entitysegment7isport(data:instd_logic_vector(3downto0);dout:outstd_logic_vector(6downto0));endsegment7;architecturebeh