EDA数字时钟设计作业

发布 2022-09-02 21:03:28 阅读 5949

安阳工学院电子信息与电气工程学院。

eda技术》课程大作业。

题目: 数字时钟的设计。

班级: 13级电气自动化技术一班。

评分标准:1、 设计和结论正确,分析清晰合理40%

2、 大作业报告阐述清晰,格式规范30%

3、 陈述清晰,回答问题正确30%

大作业成绩。

总成绩=t+j*40%+(j+j*(x-1/n))*30%

t为回答问题成绩,j为教师成绩,x为学生自评分值,n为小组人数。

数字时钟的设计。

1. 设计任务。

设计一款数字电子时钟,具体要求如下:

1:输入条件:50mhz时钟,2个输入按键;

2:功能实现:具有显示时、分、秒功能;采用led数码管显示;具有对时功能,对时精确到分,对时采用按键作为输入信号。

2. 设计方案。

要实现一个数字时钟小系统,整个系统由主要模块电路模块和外部输入输出以及显示模块组成。首先分别实现单个模块的功能,然后再通过级联组合的方式实现对整个系统的设计。

其中,主要模块有六个。它包括脉冲信号产生模块、时间计数模块(计数模块又分为分计数模块、秒计数模块、时计数模块)、译码显示模块、复位模块、调节模块。各个模块先用eda技术中的vhdl语言编程**,再生成各个小模块的模拟元件,再元件例化,根据设计连接电路实现数字电子钟小系统。

通过分频,产生1hz的时钟信号;分别设计秒计时,分计时,时计时,秒计时用上面的时钟信号1hz产生,分计时也是60一清零,分计时的时钟用的是秒计时的进位信号,时计时用的是24一清零,clk是分的进位,显示模块用的是7段共阳数码管,用来显示数字。

具体的思想如下图1所示。

3. 方案实施。

1分频器模块。

1:模块说明:输入一个频率为50mhz的clk,利用计数器分出。

1khz的q1khz,500hz的q500hz,2hz的q2hz和1hz的q1hz。

2:源程序:

library ieee;

use use

entity fdiv is

port (clk: in std_logic

q1khz: buffer std_logic;

q500hz: buffer std_logic;

q2hz: buffer std_logic;

q1hz: out std_logic);

end fdiv ;

architecture bhv of fdiv is

begin

p1khz:process(clk)

variable cout:integer:=0;

begin

if clk'event and clk='1' then

cout:=cout+1

if cout<=25000 then q1khz<='0';

elsif cout<50000 then q1khz<='1';

else cout:=0

end if;

end process;

p500hz:process(q1khz

variable cout:integer:=0;

beginif q1khz'event and q1khz='1' then

cout:=cout+1;

if cout=1 then q500hz<='0

elsif cout=2 then cout:=0;q500hz<='1';

end if;

end if;

end process;

p2hz:process(q500hz)

variable cout:integer:=0;

beginif q500hz'event and q500hz='1' then

cout:=cout+1;

if cout<=125 then q2hz<='0';

elsif cout<250 then q2hz<='1';

else cout:=0;

end if;

end if;

end process;

p1hz:process(q2hz)

variable cout:integer:=0;

beginif q2hz'event and q2hz='1' then

cout:=cout+1;

if cout=1 then q1hz<='0';

elsif cout=2 then cout:=0;q1hz<='1';

end if;

end if;

end process;

end bhv;

2秒计时模块。

1:模块说明:通过分频获得的时钟信号,便是1s,秒的低位到达9是向高位进1,高位到达6是向上进1,并清零。

2:源程序。

library ieee;

use use

entity second is

port(clk,reset:in std_logic;

sec1,sec2:out std_logic_vector(3 downto 0);

carry:out std_logic);

end second;

architecture rt1 of second is

signal sec1_t,sec2_t:std_logic_vector(3 downto 0);

beginprocess(clk,reset)

beginif reset='1'then

sec1_t<="0000";

sec2_t<="0000";

elsif clk'event and clk='1'then

if sec1_t="1001"then

sec1_t<="0000";

if sec2_t="0101"then

sec2_t<="0000";

elsesec2_t<=sec2_t+1;

end if;

elsesec1_t<=sec1_t+1;

end if;

if sec1_t="1001" and sec2_t="0101"then

carry<='1';

elsecarry<='0';

end if;

end if;

end process;

sec1<=sec1_t;

sec2<=sec2_t;

end rt1;

3分计时模块。

1:模块说明:这里用的时钟信号的来自秒的进位,即进一位就是1min,分的低位到达9是向高位进1并清零,高位到达6时向上进1,到达5时等待进位后清零。.

2:源程序。

library ieee;

use use

entity minute is

port(clk,reset:in std_logic;

min1,min2:out std_logic_vector(3 downto 0);

carry:out std_logic);

end second;

architecture rt1 of minute is

signal min1_t,min2_t:std_logic_vector(3 downto 0);

beginprocess(clk,reset)

beginif reset='1'then

min1_t<="0000";

min2_t<="0000";

elsif clk'event and clk='1'then

if min1_t="1001"then

min1_t<="0000";

if min2_t="0101"then

min2_t<="0000";

elsemin2_t<=min2_t+1;

end if;

elsemin1_t<=min1_t+1;

end if;

if min1_t="1001" and min2_t="0101"then

carry<='1';

elsecarry<='0';

end if;

end if;

end process;

min1<=min1_t;

min2<=min2_t;

end rt1;

4时计时模块。

1:模块说明:这里的时钟信号时来自上面的分的进位,上面进一位便表示1h,时的低位到达9是向高位进1并清零,高位到达2等待进位后清零,这里当高位到达2时,低位为3即将到4时开始进位。

2:源程序。

library ieee;

use use

entity hour is

port (clk,reset:in std_logic;

hour1,hour2:out std_logic_vector(3 downto 0));

end hour;

architecture rt1 of hour is

signal hour1_t,hour2_t:std_logic_vector(3 downto 0);

EDA数字时钟课程设计

一 课程设计的背景与目的。全面熟悉 掌握vhdl语言基本知识,掌握利用vhdl语言对常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用设计综合电路的能力,养成提供文档资料的习惯和规范编程的思想。1 ed...

EDA课程设计 数字时钟

hefei university eda课程综述。题目 eda课程综述 专业 09通信 2 班 姓名唐吉祥。学号 0905072035 指导老师查长军。前言。随着基于pld的eda技术的发展和应用领域的扩大和深入,eda技术在电子信息 通信 自动控制及计算机应用领域的重要性日益提高。作为现在的大学生...

EDA课程设计数字时钟

数字时钟的设计。一实验目的。1 掌握vhdl语言的基本运用。2 掌握max plusii的简单操作并会使用eda实验箱。3 掌握一个基本eda实验的操作。二功能设计。1 有时 分 秒计数显示功能,小时为24进制,分钟和秒为60进制。2 设置复位 清零等功能。3 有校时功能,可以分别对时及分进行单独校...