EDA大作业电信.docx

上传人:b****1 文档编号:2889494 上传时间:2023-05-04 格式:DOCX 页数:9 大小:423.80KB
下载 相关 举报
EDA大作业电信.docx_第1页
第1页 / 共9页
EDA大作业电信.docx_第2页
第2页 / 共9页
EDA大作业电信.docx_第3页
第3页 / 共9页
EDA大作业电信.docx_第4页
第4页 / 共9页
EDA大作业电信.docx_第5页
第5页 / 共9页
EDA大作业电信.docx_第6页
第6页 / 共9页
EDA大作业电信.docx_第7页
第7页 / 共9页
EDA大作业电信.docx_第8页
第8页 / 共9页
EDA大作业电信.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

EDA大作业电信.docx

《EDA大作业电信.docx》由会员分享,可在线阅读,更多相关《EDA大作业电信.docx(9页珍藏版)》请在冰点文库上搜索。

EDA大作业电信.docx

EDA大作业电信

 

《电子设计自动化》大作业

 

班级:

姓名:

 

2014年10月

目录

1设计要求1

2系统分析2

3模块设计2

4系统仿真2

5设计小结及课程体会2

1设计要求

设计综合数字计时器,时钟基准频率为1MHZ,要求实现00分00秒到23分59秒的时间计数。

基本设计要求:

1.设置使能控制信号en,当en=0正常工作,en=1计时停止;

2.设置系统的清零开关clr,当clr=0正常工作,clr=1计数全部清零;

3.利用MAX+PLUSⅡ软件模拟各计数器的工作情况。

提高部分要求:

1.将计数器的计数范围由分、秒计时扩展到时、分、秒计时;

2.提供整点提示功能,当时计数到达每个整点,系统可自动提示;

3.在计数范围内任意预置时间,实现时钟定时提醒的功能;

 

2系统分析

系统可以由计时器,整点报时构成。

子模块利用VHDL语言设计。

显示:

小时采用24进制,而分钟和秒均60进制。

根据题目设计要求:

系统的整体组装设计原理图如图所示,整个系统设计划分成大模块:

计时模块;整点报警模块。

3模块设计

(1)秒计数器模块VHDL程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYsecondIS

PORT(CLK,RD:

INSTD_LOGIC;

SEC1,SEC0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

CO:

OUTSTD_LOGIC);

ENDsecond;

ARCHITECTUREstuOFsecondIS

BEGIN

PROCESS(CLK,RD)

VARIABLEcnt1:

STD_LOGIC_VECTOR(3DOWNTO0);

VARIABLEcnt0:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFRD='1'THEN

cnt1:

="0000";

cnt0:

="0000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFcnt1="0101"ANDcnt0="1000"THEN

CO<='1';

cnt0:

="1001";

ELSIFcnt0<"1001"THEN

cnt0:

=cnt0+1;

ELSE

cnt0:

="0000";

IFcnt1<"0101"THEN

cnt1:

=cnt1+1;

ELSE

cnt1:

="0000";

CO<='0';

ENDIF;

ENDIF;

ENDIF;

SEC1<=cnt1;

SEC0<=cnt0;

ENDPROCESS;

ENDstu;

(2)分计数器模块VHDL程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYminuteIS

PORT(CLK,RD:

INSTD_LOGIC;

min1,min0:

OUTSTD_LOGIC_VECTOR(3DOWNTO0);

CO:

OUTSTD_LOGIC);

ENDminute;

ARCHITECTUREmOFminuteIS

BEGIN

PROCESS(CLK,RD)

VARIABLEcnt1:

STD_LOGIC_VECTOR(3DOWNTO0);

VARIABLEcnt0:

STD_LOGIC_VECTOR(3DOWNTO0);

BEGIN

IFRD='1'THEN

cnt1:

="0000";

cnt0:

="0000";

ELSIFCLK'EVENTANDCLK='1'THEN

IFcnt1="0101"ANDcnt0="1000"THEN

CO<='1';

cnt0:

="1001";

ELSIFcnt0<"1001"THEN

cnt0:

=cnt0+1;

ELSE

cnt0:

="0000";

IFcnt1<"0101"THEN

cnt1:

=cnt1+1;

ELSE

cnt1:

="0000";

CO<='0';

ENDIF;

ENDIF;

ENDIF;

min1<=cnt1;

min0<=cnt0;

ENDPROCESS;

ENDm;

(3)时计数器模块VHDL程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhouris

port(rst,hclk:

instd_logic;

hour0,hour1:

bufferstd_logic_vector(3downto0));

endhour;

architecturebbbofhouris

begin

process(rst,hclk,hour0,hour1)

begin

ifrst='0'then

hour0<="0000";

hour1<="0000";

elsifhclk'eventandhclk='1'then

ifhour0="0011"andhour1="0010"then

hour0<="0000";

hour1<="0000";

elsifhour0="1001"then

hour0<="0000";

hour1<=hour1+1;

else

hour0<=hour0+1;

endif;

endif;

endprocess;

endbbb;

(4)整点报警模块VHDL程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYalertIS

PORT(m1,m0,s1,s0:

INSTD_LOGIC_VECTOR(3DOWNTO0);

CLK:

INSTD_LOGIC;

Q:

OUTSTD_LOGIC);

ENDalert;

ARCHITECTUReaaaOFbaojingIS

BEGIN

PROCESS(CLK)

BEGIN

IFCLK'EVENTANDCLK='1'THEN

IFm1="0000"ANDm0="0000"ANDs1="0000"ANDs0="0000"THEN

Q<='1';

ELSE

Q<='0';

ENDIF;

ENDIF;

ENDPROCESS;

ENDaaa;

4系统仿真

(1)秒计时模块仿真

利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即CO=1;RD作为复位信号高电平有效,即低电平时正常循环计数,高电平清零。

(2)分计时模块仿真

此仿真用的程序就是秒仿真的程序

(3)时计时模块仿真

利用24进制计数器完成00到23的循环计数功能,当秒计数至23时,再来一个时钟脉冲则产生进位输出,即CO=1;rd作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。

(4)报警模块仿真

当分、秒均为0时,说明一个整点到来产生一个高电平信号,整点报警。

5设计小结及课程体会

虽然作业早已布置下来,但由于自己惰性,学习过后的好几周之后才进行的本次作业,MUS+PLUS2软件的操作已经忘记的七七八八了,不得不研究和向同学请教它的使用方法,终于完成了本次作业,过程艰辛,但效果还行。

本次作业让我们对所学的知识能有一个更高层次的理解,加强我们综合分析问题和解决问题的能力,进一步培养我们的编程和动手能力,让知识掌握的更加牢固,总之,本次作业收获颇丰。

感谢老师提供的这次机会,感谢在本次作业中帮助过我的同学!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2