EDA技术课程设计-多功能数字钟
- 格式:doc
- 大小:170.50 KB
- 文档页数:14
1 EDA技术课程设计
——多功能数字钟
专业: 通信c132
姓名: 苏莹洁138245
史晓威138241
指导老师: 安亚军
时间: 2015.12.26
2 目录
1、设计目的·····················································3
2、设计系统环境·················································3
3、设计性能指标及功能···········································3
···················································3
···················································3
4、设计总体框图·················································3
5、底层文件设计··················································4
5.1秒计数器····················································4
5.2分钟计数器··················································4
5.3小时计数器··················································5
5.4整点报时驱动信号产生模块····································5
5.5驱动8位八段共阴扫描数码管的片选驱动信号输出模块··································································6
5.6驱动八段字形译码输出模块·····································6
6、顶层文件设计················································6
7、心得体会······················································7
附录(源程序)·····················································8
3 1、设计目的
掌握各类计数器和分频器以及它们相连的设计方法;掌握多个数码管的原理与方法;掌握CPLD技术的层次化设计的方法;掌握使用VHDL语言的设计思想;对整个系统的设计有一个了解。
2、设计系统环境
(1)一台PC机;
(2)一套GW48型EDA实验开发系统硬件;
(3)X+PLUS Ⅱ集成化的开发系统硬件。
3、设计性能指标及功能
3.1设计功能
1)具有时、分、秒计数显示功能,以24小时循环计时。
2)时钟计数显示时有LED灯的花样显示。
3)具有调节小时、分钟、秒及清零的功能。
4)具有整点报时功能。
1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分
——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。
2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来一个脉冲,即计数一次。
3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。
4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。
5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。
4、设计总体框图
根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。
4
5、模块及模块功能
多功能数字钟中的时钟记数模块、驱动8位八段共阴扫描数码管的片选驱动信号输出模块、驱动八段字形译码输出模块、整点报时驱动信号产生模块。
5.1秒计数器
5 VHDL语言描述程序见附录
模块CNT60_2 该模块为60进制计数器,计时输出为秒的数值,在计时到59时送出进位信号CO,因为硬件有延时,所以模块CNT60_2在此模块变为00时加1,符合实际。
5秒计数器的仿真波形图
5.2分钟计数器
5 VHDL语言描述程序见附录
模块CNT60_1 该模块为60进制计数器,计时输出为分的数值,在EN信号有效且时钟到来时,计数器加1。在sb按下时,EN信号有效,计数值以秒的速度增加,从而实现对分钟的设置。 数字时钟
控制单元 时调整 分调整
使能端信号
CLK信号 时显示
分显示
秒显示 24进制
60进制
60进制 LED显示
整点报时 花样显示 5
5分钟计数器的仿真波形图
5.3小时计数器
5VHDL语言描述程序见附录
模块CNT24 该模块为24进制计数器,计时输出为小时的数值,在EN信号有效且时钟到来时,计数器加1。在sa按下时,EN信号有效,计数值以秒的速度增加,从而实现对时钟的设置。
5小时计数器的仿真波形图
5.4整点报时驱动信号产生模块
5VHDL语言描述程序见附录
该模块功能:在时钟信号(CLK)的作用下可以生成波形,SPEAK输出接扬声器,
以产生整点报时发声。
5整点报时驱动信号产生的仿真波形图 6 5.5驱动8位八段共阴扫描数码管的片选驱动信号输出模块
5VHDL语言描述程序见附录
5驱动8位八段共阴扫描数码管的片选驱动信号输出的仿真波形图
5.6驱动八段字形译码输出模块
5VHDL语言描述程序见附录
该模块功能:信号输入后,模块驱动八段字形译码输出,A,B,C,D,E,F,G分别接八段共阴级数码管7个接口,即有字形输出。
5驱动八段字形译码输出的仿真波形图
6、顶层文件设计
7
仿真是EDA技术的重要组成部分,也是对设计的电路进行功能和性能测试的有效手段。EDA工具提供了强大且与电路实时行为相吻合的精确硬件系统测试工具。在建立了波形文件、输入信号节点、波形参数、加输入信号激励电平并存盘之后,选择主菜单“MAX+plusII”中的仿真器项“Simulator”,弹出对话框之后单击“Start”进行仿真运算,完成之后就可以看到时序波形。图为总电路的时序图。
7、心得体会
1、在此次的数字钟设计过程中,更进一步地熟悉了芯片的结构及掌握了各芯的
工作原理及具体使用方法。
2、设计的模块要分块调试,免得所有部分都做完了再调试不知道哪出错了,毫无头绪。
3、在连接二十四进制,六十进制的进位的接法中,要求熟悉逻辑电路及其芯片各引脚的功能,那么在电路出错时便能准确地找出错误所在并及时纠正了.。
8 附录(源程序)
library ieee;
gic_1164.all;
use ieee.std_logic_unsigned.all;
entity second is
port(reset,clk,setmin : in std_logic;
daout : out std_logic_vector(7 downto 0);
enmin : out std_logic);
end second;
architecture behav of second is
signal count : std_logic_vector(3 downto 0);
signal counter : std_logic_vector(3 downto 0);
signal carry_out1 : std_logic;
signal carry_out2 : std_logic;
begin
p1: process(reset,clk)
begin
if reset='0' then
count<="0000";
counter<="0000";
elsif(clk'event and clk='1') then
if (counter<5) then
if (count=9) then
count<="0000";
counter<=counter + 1;
else
count<=count+1;
end if;
carry_out1<='0';
else
if (count=9) then
count<="0000";
counter<="0000";
carry_out1<='1';
else
count<=count+1;
carry_out1<='0';
end if;
end if;
end if;
end process;
daout(7 downto 4)<=counter;
daout(3 downto 0)<=count;