课程名称eda技术。
设计项目多功能数字钟。
系(部)班级姓名学号#$@%指导老师日期2010-06-09
电子系电子仪器仪表与维修仪表z082王叁少安老师。
1、数字钟的设计要求。
多功能数字钟具有计时功能和时钟的校时基本功能。计时功能采用24小时计时,显示时,分,秒。采用时校时,对于分钟和秒模块采用60进制实现;小时设计了24进制的计数器。
校时部分,分为时校时,分校时,通过控制计数脉冲和校时控制使能的方法实现。
扩展了整点报时与闹铃功。整点报时部分,从59’50”开始报时,每隔两秒报时一次,前四声驱动脉冲为500hz,最后一声驱动脉冲为1khz,然后关闭。闹铃部分,将闹铃时间预置时,分,当计时时,分与预置时,分相同,计时秒为00时,开始闹铃,时间为10秒。
2、设计目的。
1、掌握多位计数器相连的设计方法。
2、掌握十进制、六进制、二十**制的计数器的设计方法3、掌握扬声器驱动宝石的设计方法4、led灯的花样显示。
5、掌握clpd技术的层次化设计方法。
3、硬件要求。
1、主芯片altter epf10klc个led灯,一个扬声器位数码显示器。
个按键(清零、调时、调分)
4、数字钟模块设计。
4.160进制计时器(cntm60)library ieee;
use cntm60 is
port(ci:in std_logic;
nreset:in std_logic;load: in std_logic;
d: in std_logic_vector(7 downto 0);clk: in std_logic;co: out std_logic;
qh: buffer std_logic_vector(3 downto 0);ql: buffer std_logic_vector(3 downto 0));end cntm60;
architecture beh**e of cntm60 isbegin
co<='1'when (qh="0101" and ql="1001" and ci='1') else'0';process (clk,nreset)begin
if(nreset='0') thenqh<="0000";
ql<="0000";
elsif (clk'event and clk='1') thenif (load='1') then
qh<=d(7 downto 4);ql<=d(3 downto 0);elsif(ci='1') thenif(ql=9) thenql<="0000";if(qh=5) thenqh<="0000";else
qh<=qh+1;end if;else
ql<=ql+1;end if;end if;end if;end process;end beh**e;**图:
4.224进制计数器(cntm24)library ieee;
use cntm24 is
port(ci:in std_logic;
nreset:in std_logic;load1: in std_logic;
d1: in std_logic_vector(7 downto 0);clk: in std_logic;ch: out std_logic;
q1: buffer std_logic_vector(3 downto 0);q2: buffer std_logic_vector(3 downto 0));end cntm24;
architecture beh**e of cntm24 isbegin
ch<='1'when (q1="0010" and q2="0011" and ci='1') else'0';process (clk,nreset)begin
if(nreset='0') thenq1<="0000";q2<="0000";
elsif (clk'event and clk='1') thenif (load1='1') then
q1<=d1(7 downto 4);q2<=d1(3 downto 0);elsif(ci='1') thenif(q1=2) thenif(q2=3) thenq2<="0000";q1<="0000";else q2<=q2+1;end if;
elsif (q2=9) thenq2<="0000";q1<=q1+1;else q2<=q2+1;end if;
end if;end if;end process;end beh**e;
**图如下:
4.3整点报时(alarm1)library ieee;
use alarm1 is
port(reset:in std_logic;qh,ql:in std_logic_vector(3 downto 0);
alarm:out std_logic );end;
architecture a of alarm1 is
process(clk1,c)--整点报时begin
if (rising_edge(clk))thenif c='1' then
if (min1="0101"and min0="1001" and sec1="0101")then
if(sec0="0000"or sec0="0010" or sec0="0100"or sec0="0110"or sec0="1000")thend1<='1'and clk2;--前四声相同else d1<='0';endif;
elsif (min1="0000"and min0="0000" and sec0="0000" and sec1="0000") thend1<='1';-最后一声高elsed1<='0';endif ;endif ;endif ;
endprocess;
end a;
5、数字钟系统设计。
5.1顶层原理图如下:
5.2编译结果如下:
5.3**波形图如下:
5.4时域分析:
6调试记录与实验小结一调试记录。
1)我们写程序之前,经过思考,分析,以及修正,将整个框架及模块分割,但是程序写好后,在软件上验证的时候,出现很多错误。比如时钟太复杂,或时钟无法响应等等,原因是我们对vhdl语言了解不够,及在使用时钟应该注意事项等等。
3)在调试过程中,我们程序里出现了在多个错误,我们三个人一同分析,查找,在翻阅了些资料书后才找到了原因试着修改,最后终于修改正确。
4)在调试过程中,程序**现了一个脉冲信号前用了多个if语句,我们试着修改,但是没改正确。最后在老师帮助下修改正确了。二实验小结。
为期一周的eda课程设计,使我们对eda的认识又提高了一个层次,现在能够较为熟练使用max+plusii,能够利用vhdl语言编写简单实用的程序。这次eda课程设计重点学习了数字钟部分程序的编写、调试、对max+plusii软件的进一步熟练。在整个课程设计过程中,我们查阅了一些的关于eda的资料。
在为期一周的eda课程设计过程中,虽然我们在设计方案,编写程序中存在一些不足,但经过不断的努力,检查与修改,使得程序得到了不断完善;同时老师给了我们很大的帮助,在他的精心的指导,让我们顺利完成了eda课程设计。
EDA课程设计报告
eda 课程设计报告。时间 2014年12月21日 学院自动化。专业班级自1204 姓名。学号。指导教师王丽君老师 成绩。2014年 12月。目录。卷烟机烟支漏气跟踪自检装置设计 1 一 设计背景及设计目的 3 1.1设计背景 3 1.2设计目的 3 二 设计原理 3 三 设计步骤 5 3.1模块分...
EDA课程设计报告
设计一个出租车自动计费器,计费包括起步价 行车里程计费 等待时间计费三部分,用四位数码管显示金额,最大值为999.9元,最小计价单元为 0.1元,行程 3公里内,且等待累计时间3分钟内,起步费为8元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1元。用两位数码管显示总里程,最大为99公里。...
EDA课程设计报告
课程设计报告。课程。题目。院系。年级专业。班级学号。学生姓名。指导教师。设计时间。摘要。交通灯信号控制器通常要实现自动控制和手动控制其红绿灯的变化,基于fpga设计的交通灯信号控制器电路简单 可靠性好。本设计可控制2个路口的红 黄 绿三盏灯 让其按特定的规律进行变化。利用quartus 对设计结果进...