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;