文档介绍:可编程数字系统设计
课程设计实验报告
实验名称: 基于VHDL的数字钟设计_
所属课程: 可编程数字系统设计
《可编程数字系统》课程设计
一、课程设计目的:
熟悉EDA工具;掌握用VHDL语言进行数字系统设计的基本方法和过程。
二、设计任务:
设计一数字钟,用数码管显示
基本功能要求:
(1) 可以分屏显示时、分、秒,可用数码管的小数点“.”代替时、分、秒的分
隔符“:”,分屏显示是指由于数码管只有4个,不能同时显示时、分、秒,但可以只显示时、分,或只显示分、秒,通过按键来切换这两种显示方式。
(2)可设置时钟的开始时间。设置时,相应的数码管要闪烁,指示当前设置的设置(内容)。
(3)具有闹铃功能,可以设定闹铃时间。闹铃时间到,LED闪烁进行指示。
三、设计原理:
数字钟的逻辑框图如图1所示。它由校时部分、闹钟部分、计时部分、显示部分组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒钟计数器满60后向分计数器进位,分钟计数器满60后向小时计数器进位,时钟计数器按照“24归0”规律计数。计数器的输出分别经译码器送显示。当计时出现误差时或者到达另外一个时区时,可以用校时部分校时、校分、校秒。需要是用闹钟时,可以利用闹钟部分进行定时。
四、系统分析:
根据数字钟的功能,我们可以将它的系统电路设计划分为四个部分:校时部分、闹钟部分、计时部分和显示部分。其中计时部分又划分为秒钟计时模块、分钟计时模块、时钟计时模块,显示部分又划分为BCD译码模块和扫屏输出模块。
校时模块
秒钟计时模块
分钟计时模块
时钟计时模块
译码模块
扫屏输出
闹钟模块
LED灯
图1
数字钟的顶层实体描述如下:
--
LIBRARY IEEE;
USE ;
USE ;
USE ;
ENTITY digitalclock IS
PORT(
--输入时钟
CLK:IN STD_LOGIC;
--设定闹钟
ALARM_SET:IN STD_LOGIC;
--双键位校时
SET:IN STD_LOGIC;
MODE:IN STD_LOGIC;
--选择显示方式
CHG:IN STD_LOGIC;
--八段译码输出
out_data:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
--输出片选
seg_out:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
--LED输出
ED_OUT:OUT STD_LOGIC
);
END digitalclock;
ARCHITECTURE EXAMPLE OF digitalclock IS
--元件例化
COMPONENT adjuster
PORT(
--输入时钟
CLK:IN STD_LOGIC;
--双键位校时
SET:IN STD_LOGIC;
MODE:IN STD_LOGIC;
--计数使能,
EN:IN STD_LOGIC;
--秒计数器进位输入
S_ENOUT:IN STD_LOGIC;
--分计数器进位输入
M_ENOUT:IN STD_LOGIC;
--输出1HZ时钟
CLK1HZ:OUT STD_LOGIC;
--输出使能
S_CE:OUT STD_LOGIC;
M_CE:OUT STD_LOGIC;
H_CE:OUT STD_LOGIC
);
PONENT;
T60
PORT(
--输入1HZ时钟
CLK1HZ:IN STD_LOGIC;
--计数使能
EN:IN STD_LOGIC;
--进位输出
ENOUT:OUT STD_LOGIC;
--BCD输出
LOW:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
HIGH:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
PONENT;
T24
ORT(
--输入1HZ时钟
CLK1HZ:IN STD_LOGIC;
--计数使能
EN:IN STD_LOGIC;
--BCD输出
LOW:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
HIGH:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
PONENT;
COMPONENT