实验十七数字时钟
实验目的
设计一个可以计时的数字时钟,其显示时间范围是00:00:00~23:59:59,且该时钟具有暂停计时、清零等功能。
实验器材
1、SOPC实验箱
2、计算机(装有Quartus II )
实验预****br/>1、了解时钟设计原理和各主要模块的设计方法。
2、提前预****编写好主模块的VHDL程序。
实验原理
,一个完整的时钟应由4部分组成:秒脉冲发生电路、计数部分、译码显示部分和时钟调整部分。
1、秒脉冲发生:一个时钟的准确与否主要取决秒脉冲的精确度。可以设计分频电路对系统时钟50MHz进行50000000分频从而得到稳定的1Hz基准信号。定义一个50000000进制的计数器,将系统时钟作为时钟输入引脚clk,进位输出即为分频后的1Hz信号。
2、计数部分:应设计1个60进制秒计数器、1个60进制分计数器、1个24进制时计数器用于计时。秒计数器应定义clk(时钟输入)、rst(复位)两个输入引脚,Q3~Q0(秒位)、Q7~Q4(十秒位)、Co(进位位)9个输出引脚。分、时计数器类似。如需要设置时间可再增加置数控制引脚Set和置数输入引脚d0~d7。
3、译码显示部分:此模块应定义控制时钟输入、时分秒计数数据输入共25个输入引脚;8位显示码输出(XQ7~XQ0)、6位数码管选通信号(DIG0~DIG5)共14个输出引脚。在时钟信号的控制下轮流选择对十时、时、十分、分、十秒、秒输入信号进行译码输出至XQ7~XQ0,并通过DIG0~DIG5输出相应的选通信号选择数码管。每位显示时间控制在1ms左右。时钟信号可由分频电路引出。
4、。
选择
译码
电路
显示码8位
数码管显示选通信号 6位
数码管
小时
秒
分
进位信号
进位信号
60进制
计数器
60进制
计数器
24进制
计数器
复位rst
置数set
分频电路
时钟信号
动态显示时钟信号2000Hz
数字时钟框图
系统时钟为1024Hz
产生1Hz模块
Library IEEE;
use ;
use ;
Entity clk_1Hz IS
PORT(sys_clk:in std_logic;
clk_1Hz:out std_logic);
END entity clk_1Hz;
Architecture bhv of clk_1Hz IS
signal clk_1Hz_r:std_logic;
signal count:std_logic_vector(9 downto 0);
Begin
Process(sys_clk)
Begin
IF sys_clk'EVENT AND sys_clk='1' THEN
IF count="1000000000" THEN
count<=(others=>'0');
clk_1Hz_r<=NOT clk_1Hz_r;
ELSE count<=count+1;
END IF;
END IF;
END Process;
clk_1Hz<=c
数字时钟设计VHDL 来自淘豆网www.taodocs.com转载请标明出处.