VHDL 语言设计数字时钟

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1数字时钟DIGITALCLOCK电子信息科学与技术专业关键词:VHDL,设计,数字钟,应用电路英文关键词:VHDL;design;digitalclock;applicationelectrocircuits摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在MAX+plusII中进行编译、仿真、下载。由此说明利用VHDL开发数字电路的优点。英文摘要:Byshowingsomeprogramcodesandemulationalwavecharts,thepaperintroducesthewaytodesigndigitalelectrocircuitswithVHDLindetailsandgivesusanexampleofdesigningadigitalclock.Anditcompiles,emulatesanddownloadstheminMAX+plusII,whichelucidatestheadvantagesofdevelopingdigitalelectrocircuitswithVHDL2引言20世纪末,数字电子技术得到了飞速发展,有力地推动和促进了社会生产力的发展和社会信息化的提高,数字电子技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能采用了数字电子技术。现代电子设计技术的核心是EDA技术。EDA(电子设计自动化)技术就是以计算机为工具,在EDA软件平台上,对硬件语言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作(文本选用的开发工具为Altera公司的MAX+PLUSII)。EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述。EDA技术使实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。今天EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。EDA工具已经成为现代电路设计工程师的重要武器,正在发挥越来越重要的作3用。为了提高自身的实践能力与专业知识应用能力,为了更快地与社会实际和社会需要接轨,这次设计我选择了以数字时钟作为设计课题。相信通过此次课题设计将为我更全面更系统更深入地掌握EDA技术打下良好的基础。我也会尽自己最大的努力学好这一门技术。4目录引言…………………………………………………………………2一、设计要求说明………………………………………………5二、方案论证……………………………………………………5三、各模块设计程序……………………………………………7四、系统设计……………………………………………………12五、调试过程……………………………………………………12六、结论…………………………………………………………14七、感想…………………………………………………………14参考文献…………………………………………………………165—、设计要求说明设计并实现具有一定功能的数字小系统(数字钟)要求:1、对所有设计的小系统能够正确分析;2、基于VHDL语言描述系统的功能;3、在mux+plu2环境中编译通过;4、仿真通过并得到正确的波形;5、给出相应的设计报告。二、方案论证该数字钟可以实现3个功能:计时功能、整点报时功能和显示时间功能,因此有3个子模块:计时、报时(speak)、l轮流显示其中计时模块有4部分构成:秒计时器(second)、分计时器(minute1)、时计时器(hour1)。秒计时器(second1)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;setmin为置数信号,当setmin为0时,秒计时器置数,置clk的值。clk为驱动秒计时器的时钟,dh、dl为秒计时器的输出,enmin为秒计时器的进位信号,作为下一级的时钟输入信号。分计时器(minute)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;sethour为置数信号,当sethour为0时,分计时器置数,置clk1的值。clk为驱动分计时器工作的时钟,与ensmin相连接;dh、dl为分计时器的输出;enhour为分计时器的进位信号,6作为下一级的时钟输入信号。时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;clk为驱动时计时器工作的时钟,与enhour相连接;dh、dl为时计时器的输出;enhour为时计时器的进位信号,作为下一级的时钟输入信号。显示模块的功能是实现秒、分、时的显示,有七段LED数码管实现。报时模块(speak)的功能是当整点(将min作为该模块的输入信号,min=00)时,speak输出高电平,并且持续1分钟。数字钟的工作原理图1如下所示:图1数字钟的工作原理图课程设计数字钟-仿真波形如图2所示:7图2数字钟-仿真波形三、各模块设计程序1、秒时钟程序libraryieee;useieee,std_logic_1164.all;useieee.std_logic_unsigned.all;entitysecondisport(clk,reset,setmin:instd_logic;enmin:outstd_logic;dh:bufferstd_logic_vector(3downto0);dl:bufferstd_logic_vector(3downto0));end;architecturebehaveofsecondisbeginprocess(clk,reset,setmin)beginifsetmin=‘0’thenenmin=clk;elsifdl=“1001”anddh=“0101”thenenmin=‘0’;elseenmin=‘1’;endif;ifreset=‘0’thendh=“0000”;8dl=“0000”;elsif(clk‘eventandclk=‘1’)thenifdl=9thendl=“0000”;ifdh=5thendh=“0000”;elsedh=dh+1;endifelsedl=dl+1;endif;endif;endprocess;endbehav;2、分时钟程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityminuteisport(clk,clk1,reset,sethour:instd_logic;enhour:outstd_logic;dh:bufferstd_logic_vector(3downto0);dl:bufferstd_logic_vector(3downto0));end;architecturebehavofminuteisbeginprocess(clk,clk1,reset,sethour)beginifsethour='0'thenenhour=clk1;elsifdl=1001anddh=0101thenenhour='0';elseenhour='1';endif;ifreset='0'thendh=0000;dl=0000;elsif(clk'eventandclk='1')thenifdl=9thendl=0000;ifdh=5then9dh=0000;elsedh=dh+1;endif;elsedl=dl+1;endif;endif;endprocess;endbehav;3、轮流显示的程序:libraryieee;useieee.std_logic_1164.all;entitylunliulisport(sech,secl,minh,minl,hourh,hourl:instd_logic_vector(3downto0);clk:instd_logic;q:bufferstd_logic_vector(5downto0);dout:outstd_logic_vector(3downto0));end;architecturebehavoflunliulissignalqin:integerrange5downto0;beginprocess(clk)beginif(clk'eventandclk='1')thenifqin=5thenqin=0;elseqin=qin+1;endif;endif;ifqin=0thendout=secl(3downto0);q=111110;elsifqin=1thendout=sech(3downto0);q=111101;elsifqin=2thendout=minl(3downto0);q=111011;elsifqin=3thendout=minh(3downto0);q=110111;10elsifqin=4thendout=hourl(3downto0);q=101111;elsedout=hourh(3downto0);q=011111;endif;endprocess;end;4、小时程序:libraryieee;useieee.std_logic_1164.all;entityxiaoshiisport(num:instd_logic_vector(3downto0);led8:outstd_logic_vector(7downto0));end;architecturebehavofxiaoshiisbeginprocess(num)begincasenumiswhen0000=led8=11000000;when0001=led8=11111001;when0010=led8=10100100;when0011=led8=10110000;when0100=led8=10011001;when0101=led8=10010010;when0110=led8=10000010;when0111=led8=11111000;when1000=led8=10000000;when1001=led8=10010000;whenothers=null;endcase;endprocess;end;5、时的程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityhourisport(clk,reset:instd_logic;dh:bufferstd_logic_vector(3downto0);11dl:bufferstd_logic_vector(3downto0));end;architecturebehavofhourisbeginprocess(clk,reset)beginifreset='0'thendh=0000;dl=0000;elsif(clk'eventandclk='1')thenifdh=0010anddl=0011thendl=0000;dh=0000;elsifdl=9thendl=0000;ifdh=2thendh=0000;elsedh=dh+1;endif;elsedl=dl+1;endif;endif;endprocess;end;6、报时程序:library

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功