VHDL 语言设计数字时钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字时钟
DIGITAL CLOCK
电子信息科学与技术专业
关键词:VHDL,设计,数字钟,应用电路
英文关键词:VHDL; design; digital clock; application electro circuits
摘要:以一款数字钟设计为例,较详细的介绍了如何用VHDL语言设计数字电路,并给出了部分程序、仿真波形图,并在
MAX+plusII中进行编译、仿真、下载。由此说明利用VHDL
开发数字电路的优点。
英文摘要:By showing some program codes and emulational wave charts,the paper introduces the way to design
digital electro circuits with VHDL in details and
gives us an example of designing a digital clock.And
it compiles,emulates and downloads them in
MAX+plusII,which elucidates the advantages of
developing digital electro circuits with VHDL
引言
20世纪末,数字电子技术得到了飞速发展,有力地推动和促进了社会生产力的发展和社会信息化的提高,数字电子技术的应用已经渗透到人类生活的各个方面。从计算机到手机,从数字电话到数字电视,从家用电器到军用设备,从工业自动化到航天技术,都尽可能采用了数字电子技术。
现代电子设计技术的核心是EDA技术。EDA(电子设计自动化)技术就是以计算机为工具,在EDA软件平台上,对硬件语言HDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作(文本选用的开发工具为Altera公司的MAX+PLUSII)。EDA的仿真测试技术只需要通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,大大提高了大规模系统电子设计的自动化程度。设计者的工作仅限于利用软件方式,即利用硬件描述语言(如VHDL)来完成对系统硬件功能的描述。EDA技术使实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。
今天EDA技术已经成为电子设计的重要工具,无论是设计芯片还是设计系统,如果没有EDA工具的支持,都将是难以完成的。EDA工具已经成为现代电路设计工程师的重要武器,正在发挥越来越重要的作
用。为了提高自身的实践能力与专业知识应用能力,为了更快地与社会实际和社会需要接轨,这次设计我选择了以数字时钟作为设计课题。相信通过此次课题设计将为我更全面更系统更深入地掌握EDA技术打下良好的基础。我也会尽自己最大的努力学好这一门技术。
目录
引言 (2)
一、设计要求说明 (5)
二、方案论证 (5)
三、各模块设计程序 (7)
四、系统设计 (12)
五、调试过程 (12)
六、结论 (14)
七、感想 (14)
参考文献 (16)
—、设计要求说明
设计并实现具有一定功能的数字小系统(数字钟)
要求: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为分计时器的进位信号,
作为下一级的时钟输入信号。
时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0; clk为驱动时计时器工作的时钟,与enhour相连接;dh、dl为时计时器的输出;enhour为时计时器的进位信号,作为下一级的时钟输入信号。
显示模块的功能是实现秒、分、时的显示,有七段LED数码管实现。
报时模块(speak)的功能是当整点(将min作为该模块的输入信号,min=00)时,speak输出高电平,并且持续1分钟。
数字钟的工作原理图1如下所示:
图1 数字钟的工作原理图
课程设计数字钟-仿真波形如图2所示:
图2 数字钟-仿真波形
三、各模块设计程序
1、秒时钟程序
library ieee;
use ieee, std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity second is
port(clk,reset,setmin:in std_logic;
enmin:out std_logic;
dh:buffer std_logic_vector(3 downto 0);
dl:buffer std_logic_vector(3 downto 0)); end;
architecture behave of second is
begin
process(clk,reset,setmin)
begin
if setmin= ‘0’then
enmin<=clk;
elsif dl=“1001”and dh= “0101”then
enmin<=‘0’;
else
enmin<= ‘1’;
end if;
if reset= ‘0’ then
dh<=“0000”;