数字钟的设计.EDA课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA 课程设计报告书

课题名称 数字钟的设计 姓 名

王砾

学 号 0812201-37 院 系 物理与电信工程系 专 业 电子信息工程 指导教师

周来秀讲师

2011年 6月13日

※※※※※※※※※ ※

※ ※※ ※

2008级学生

EDA 课程设计

数字钟的设计

王砾

(湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300)

1设计目的

1,熟练的运用数字系统的设计方法进行数字时钟设计

2,能进行较复杂的数字系统设计

3,按要求设计一个数字钟

2设计的主要内容和要求

a.计时计数器用24进制计时器电路。

b.可手动校时,能清零及分别进行时、分、秒的校正。

c.可整点报时,扬声器发出时长为1s的信号。

d.可设置闹钟功能。当计时计到预定时间时,扬声器发出闹铃信号,可控制闹

铃时长。

3 整体设计方案

基于VHDL 语言,用Top_Down 的思想进行设计,其中计数模块、闹铃模块、定时模块、显示模块为主要模块,选择模块为辅助模块。

选择模块

定时模块

显示模块

闹铃模块计数模块选择模块

数码显示管

4 硬件电路的设计

4.1如下分别为60与24进制模块的代码: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count_60 is

port(en1,en2,clr,clk : in std_logic; rco : out std_logic;

q1,q2 : out std_logic_vector(3 downto 0));

end count_60;

architecture behav of count_60 is

signal iq1,iq2 : std_logic_vector(3 downto 0); begin

process(en1,en2,clr,clk) begin

if(clr='1')then iq1<="0000"; iq2<="0000";

elsif(clk='1' and clk'event)then

if(en1 or en2)='1'then

if(iq2>=5)then

if(iq1>=9)then

iq1<="0000";

iq2<="0000";

else

iq1<=iq1+1;

end if;

else

iq2<=iq2+1;

end if;

end if;

end if;

if(iq2=5 and iq1=9 and en1='1')then

rco<='1';

else rco<='0';

end if;

q1<=iq1;

q2<=iq2;

end process;

end behav;

library ieee;

use ieee.std_logic_1164.all;

entity count_24 is

port(en1,en2,clr,clk : in std_logic;

q1,q2 : out std_logic_vector(3 downto 0)); end count_24;

architecture behav of count_24 is

signal iq1,iq2 : std_logic_vector(3 downto 0);

begin

process(en1,en2,clr,clk)

begin

if(clr='1')then

iq1<="0000";

iq2<="0000";

elsif(clk='1' and clk'event)then

if(en1 or en2)='1'then

if(iq2>=2)then

if(iq1>=3)then

iq1<="0000";

iq2<="0000";

else

iq1<=iq1+1;

end if;

else

iq2<=iq2+1;

end if;

end if;

end if;

q1<=iq1;

q2<=iq2;

end process;

end behav;

然后将各模块进行组合,形成计数模块和定时模块,其组合方式如图所示:

d[3..0]

p[6..0]

display

inst4

生成的计数模块与定时模块的元件符号分别如下图:

4.2显示模块为六个时、分、秒的十位与个位的显示模块组成的,即六个七段译码器。将输入的4位BCD 码进行译码,输出7位,p0~p6分别外接数码管a~g 段,如下为七段译码器代码: library ieee;

use ieee.std_logic_1164.all; entity display is

port(d : in std_logic_vector(3 downto 0);

p : out std_logic_vector(6 downto 0));

end display;

architecture behav of display is

begin

with d select

p<="0111111"when"0000",

"0000110"when"0001",

"1011011"when"0010",

"1001111"when"0011",

"1100110"when"0100",

"1101101"when"0101",

"1111101"when"0110",

"0000111"when"0111",

"1111111"when"1000",

"1101111"when"1001",

"0000000"when others;

end behav;

再用六个七段译码器组合成同时能够显示时、分、秒的十位与个位的模块,其组合方式和生成元件符号如图所示:

相关文档
最新文档