- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字电子钟的VHDL程序设计实验报告汇总
实验报告
实验项目名称:数字电子钟的VHDL程序设计
实验项目性质:普通试验
所属课程名称:VHDL程序设计
实验计划学时:4学时
实验目的
掌握VHDL程序设计方法
实验内容和要求
能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能
具有复位功能
功能扩展:具有复位、整点报时提示、定时闹钟等功能
在软件工具平台上,进行VHDL语言的各模块编程输入、编译实现和仿真验证。
实验主要仪器设备和材料
计算机
实验方法、步骤及结果测试
数字电子钟由计数器、比较器,寄存器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。
1)时钟产生电路。将开发板上的时钟信号经过分频得到不同频率的时钟,分别作用于定时计数、LED扫描。
2)控制逻辑电路。完成电子钟的系统逻辑控制,包括计时控制、时间校对、显示扫描的逻辑控制,可完成系统复位、调整时间的功能。
3)计时电路。主要按照时钟模式完成计时功能。
4)闹钟电路。通过输入信号与电子钟比较,输出闹钟信号。
各功能模块的设计
60进制计数器设计
秒数的计数以1Hz的输入CLKS为触发信号,分数的计数以秒数的进位输出作为触发。是器件图形。
1hz时钟信号
OUTS:输出显示
RES:复位信号
INMIN:输出十进制信号
每来一个CLKS上升沿,计数器就加1,当计数器当到达第60个上升沿时,由59归零,仿真符合60进制计数器的要求。
24进制计数器设计
24进制计数器的结构和原理与60进制计数器相类似,只是将除以60改为除以24。下是生成的器件图形。
当计数时间在59分59秒时,报时模块输出报时控制信号。在报时设定时间与计数信号相同时,闹钟控制信号输出。
接口: NZS1 NZM2 NZH1:时钟计数信号
NZS2 NZM2 NZH2:设定闹钟信号
Q:报时响铃信号
由图可知,当时钟计数信号和设定闹钟信号相同时,报时响铃信号Q 输出。当时钟计数信号为零(整点)时,报时响铃信号Q 输出。
顶层设计
通过调用各模块功能,得出如下仿真波形,证明设计成功,能够完成闹钟功能及整点报时功能。
接口:CLK,RES:输入时钟脉冲,复位信号
LEDS,LEDM,LEDH:时钟显示信号
NZS,NZM,NZH:输入闹钟设置信号
QQQ :响铃信号
程序代码
顶层程序文件
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CLOCK IS
PORT(CLK,RES:IN STD_LOGIC;
LEDS,LEDM,LEDH:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
NZS,NZM,NZH:IN STD_LOGIC_VECTOR(5 DOWNTO 0);
QQQ :OUT STD_LOGIC);
END CLOCK;
ARCHITECTURE BEHAV OF CLOCK IS
COMPONENT SEC
PORT(CLKS: IN STD_LOGIC;
RES1: IN STD_LOGIC;
INMIN:OUT STD_LOGIC;
OUTS:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END COMPONENT;
COMPONENT MIN
PORT(CLKM: IN STD_LOGIC;
RES2: IN STD_LOGIC;
INHOUR:OUT STD_LOGIC;
OUTM:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END COMPONENT;
COMPONENT HOUR
PORT(CLKH: IN STD_LOGIC;
RES3: IN STD_LOGIC;
OUTH:OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END COMPONENT;
COMPONENT NZ
PORT(NZS1,NZS2,NZM1,NZM2,NZH1,NZH2:IN STD_LOGIC_VECTOR(5 DOWNTO 0);
Q :OUT STD_LOGIC);
END COMPONENT;
SIGNAL S: STD_LOGIC_VECTOR(5 DOW
文档评论(0)