eda课程设计数字时钟.docx

上传人:b****1 文档编号:3507497 上传时间:2023-05-06 格式:DOCX 页数:14 大小:166.98KB
下载 相关 举报
eda课程设计数字时钟.docx_第1页
第1页 / 共14页
eda课程设计数字时钟.docx_第2页
第2页 / 共14页
eda课程设计数字时钟.docx_第3页
第3页 / 共14页
eda课程设计数字时钟.docx_第4页
第4页 / 共14页
eda课程设计数字时钟.docx_第5页
第5页 / 共14页
eda课程设计数字时钟.docx_第6页
第6页 / 共14页
eda课程设计数字时钟.docx_第7页
第7页 / 共14页
eda课程设计数字时钟.docx_第8页
第8页 / 共14页
eda课程设计数字时钟.docx_第9页
第9页 / 共14页
eda课程设计数字时钟.docx_第10页
第10页 / 共14页
eda课程设计数字时钟.docx_第11页
第11页 / 共14页
eda课程设计数字时钟.docx_第12页
第12页 / 共14页
eda课程设计数字时钟.docx_第13页
第13页 / 共14页
eda课程设计数字时钟.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

eda课程设计数字时钟.docx

《eda课程设计数字时钟.docx》由会员分享,可在线阅读,更多相关《eda课程设计数字时钟.docx(14页珍藏版)》请在冰点文库上搜索。

eda课程设计数字时钟.docx

eda课程设计数字时钟

 

EDA课程设计数字时钟(闹钟)(总17页)

课程设计说明书

 

题目:

闹钟

 

学院(系):

年级专业:

学号:

学生姓名:

指导教师:

教师职称:

 

第1章摘要…………………………………………………………………………………1

第2章设计方案……………………………………………………………………………

VHDL简介……………………………………………………………………………

设计思路……………………………………………………………………………

第3章模块介绍……………………………………………………………………………

第4章VerilogHDL设计源程序…………………………………………………………

第5章波形仿真图…………………………………………………………………………

第6章管脚锁定及硬件连线………………………………………………………………

心得体会……………………………………………………………………………………17

参考文献……………………………………………………………………………………18

 

第一章摘要

在当今社会,数字电路产品的应用在我们的实际生活中显得越来越重要,与我们的生活联系愈加紧密,例如计算机、仪表、电子钟等等,使我们的生活工作较以前的方式更加方便、完善,带来了很多的益处。

在此次EDA课程,我的设计课题是闹钟,使用VHDL语言进行编程完成。

报告书主要由设计方案、模块介绍、设计源程序、仿真波形图和管脚锁定及硬件连线四部分组成。

设计方案主要介绍了我对于设计课题的大致设计思路,之后各个部分将会详细介绍设计组成及程序。

 

第二章设计方案

§VHDL简介

数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。

EDA技术,就是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。

利用EDA技术进行电子系统的设计,具有以下几个特点:

①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。

因此,EDA技术是现代电子设计的发展趋势。

EDA技术伴随着计算机、集成电路、电子系统设计的发展,经历了计算机辅助设计(ComputerAssistDesign,简称CAD)、计算机辅助工程设计(ComputerAssistEngineeringDesign,简称CAE)和电子设计自动化(ElectronicDesignAutomation,简称EDA)三个发展阶段。

常用的硬件描述语言有VHDL、Verilog、ABEL。

EDA技术是随着集成电路和计算机技术的飞速发展应运而生的一种高级、快速、有效的电子设计自动化工具。

它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。

前两个阶段的EDA产品都只是个别或部分的解决了电子产品设计中的工程问题;第三代EDA工具根据工程设计中的瓶颈和矛盾对设计数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。

EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有系统级仿真和综合能力。

目前应用比较广泛的硬件描述语言就是VerilogHDL。

2VerilogHDL简介

VerilogHDL是目前大规模集成电路设计中最具代表性、使用最广泛的硬件描述语言之一。

具有如下特点:

(1)能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系统进行精确而简练的描述。

(2)能够在每个抽象层次的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。

(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。

如国有C语言的编程基础经验,只需很短的时间就能学会和掌握VerilogHDL,因此,VerilogHDL可以作为学习HDL设计方法的入门和基础。

§设计思路

一、设计要求

1、设计简易的一分钟闹钟;

2、可手动输入定时时间(0~59s),如30s;

3、两个动态数码管上跟踪显示时间的变化:

如30,29,28……到了指定时间蜂鸣器发出5s的提示音;

4、采用2个动态数码管显示时间;

5、用蜂鸣器发出提示音;

6、拨码开关设置定时时间。

二、设计思路

根据上述的设计要求,整个系统大致包括如下几个组成部分:

它包括以下几个组成部分:

1)显示屏,由2个七段动态数码管组成,用于显示当前设置的闹钟时间并进行跟踪显示;2)6个拨码开关,用于输入闹钟时间;3)复位键,确定新的闹钟时间设置,或显示已设置的闹钟时间;4)蜂鸣器,在当前时钟时间与闹钟时间相同时,发出报警声。

 

第三章模块介绍

一、计时模块

此模块共有6个拨码开关作为输入信号,当开关无输入时,都处于低电平状态,D5、D4、D3、D2、D1和D0是并行数据输入端,CRN是异步复位输入端,LDN是预置控制输入端。

当开关有输入时,会产生一个六位的二进制输出信号num,此信号表示动作的开关序号,它是作为动态显示模块的输入信号。

二、数码显示模块

这个模块有两个输入信号和两个输出信号。

其中一个是信号输入模块的输出num作为输入,另外一个是时钟输入端,作为扫描数码管的频率信号,采用1024HZ的中高频信号。

输出信号为SS0、SS1、SS2,是动态数码管的片选段。

三、报警模块

报警模块共有两个输入信号ET和CLK1,一个输出信号COUT。

当从信号输入模块检测到有开关输入时,ET信号已置1,CLK上升沿到来时,程序将COUT置1,蜂鸣器发出时间为10s的报警信号,时间到达后,跳出循环,蜂鸣器停止报警。

四、顶层模块

顶层模块的作用是将各个模块组合到一起,从而实现最终的功能。

其输入即为各个模块的输入,一个时钟信号,还有6个拨码开关的输入,其输出为数码管显示和报警器。

 

第四章VerilogHDL设计源程序

一、计时模块

modulecounter(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,Q,OC);

inputLDN,D5,D4,D3,D2,D1,D0,CLK,CRN;

output[5:

0]Q;

outputOC;

regOC;

reg[5:

0]Q;

reg[5:

0]Q_TEMP;

reg[3:

0]NUM;

always@(posedgeCLKornegedgeCRN)

begin

if(~CRN)Q_TEMP=6'b000000;

elseif(~LDN)

begin

Q_TEMP={D5,D4,D3,D2,D1,D0};

NUM=4'b0000;

end

elseif(Q_TEMP<6'b111100&&Q_TEMP>6'b000000)

begin

if(NUM<4'b1000&&NUM>=4'b0000)

NUM=NUM+1;

elseNUM=4'b0001;

if(NUM==4'b1000)

Q_TEMP=Q_TEMP-1;

end

elseQ_TEMP=6'b000000;

end

always

begin

if(Q_TEMP==6'b000000&&LDN)OC=1'b1;

elseOC=1'b0;

Q=Q_TEMP;

end

endmodule

二、数码显示模块

moduleshowtime(A,Q,CLKM,SS0,SS1,SS2);

input[5:

0]A;

inputCLKM;

output[6:

0]Q;

outputSS0,SS1,SS2;

reg[6:

0]Q;

regSS0,SS1,SS2;

regM;

reg[5:

0]B;

reg[5:

0]C;

always@(posedgeCLKM)

begin

M=M+1;

end

always

begin

if(A<='b001001)

begin

B=A;

C=0;

end

elseif(A>'b001001&&A<='b10011)

begin

B=A-10;

C=1;

end

elseif(A>'b10011&&A<='b11101)

begin

B=A-20;

C=2;

end

elseif(A>'b11101&&A<='b100111)

begin

B=A-30;

C=3;

end

elseif(A>'b100111&&A<='b110001)

begin

B=A-40;

C=4;

end

elseif(A>'b110001&&A<='b111011)

begin

B=A-50;

C=5;

end

elseif(A=='b111100)

begin

B=0;

C=6;

end

if(M=='b1)

begin

SS0=1;SS1=0;SS2=0;

case(B)

'b000000:

Q='b0111111;

'b000001:

Q='b0000110;

'b000010:

Q='b1011011;

'b000011:

Q='b1001111;

'b000100:

Q='b1100110;

'b000101:

Q='b1101101;

'b000110:

Q='b1111101;

'b000111:

Q='b0000111;

'b001000:

Q='b1111111;

'b001001:

Q='b1101111;

default:

Q='b0111111;

endcase

end

elseif(M=='b0)

begin

SS0=0;SS1=0;SS2=0;

case(C)

'b000000:

Q='b0111111;

'b000001:

Q='b0000110;

'b000010:

Q='b1011011;

'b000011:

Q='b1001111;

'b000100:

Q='b1100110;

'b000101:

Q='b1101101;

'b000110:

Q='b1111101;

default:

Q='b0111111;

endcase

end

end

endmodule

三、报警模块

modulespeaker(CLK1,ET,COUT);

inputCLK1,ET;

outputCOUT;

regCOUT;

reg[5:

0]TEMP;

always@(posedgeCLK1)

begin

if(~ET)TEMP=6'b000000;

elseif(TEMP<6'b101001&&TEMP>=6'b000000)TEMP=TEMP+1;

elseTEMP=6'b101001;

end

always

begin

if(TEMP<6'b101001&&TEMP!

=6'b000000)COUT=1'b1;

elseCOUT=1'b0;

end

endmodule

四、顶层模块

moduletimer(LDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CLK1,COUT,LED,SS0,SS1,SS2,CLKM);

inputLDN,D5,D4,D3,D2,D1,D0,CLK,CRN,CLK1,CLKM;

output[6:

0]LED;

outputCOUT,SS0,SS1,SS2;

wireX6;

wire[5:

0]X;

counteru1(.LDN(LDN),.D5(D5),.D4(D4),.D3(D3),.D2(D2),.D1(D1),.D0(D0),.CLK(CLK),.CRN(CRN),.Q(X[5:

0]),.OC(X6));

showtimeu2(.A(X[5:

0]),.Q(LED[6:

0]),.CLKM(CLKM),.SS0(SS0),.SS1(SS1),.SS2(SS2));

speakeru3(.CLK1(CLK1),.ET(X6),.COUT(COUT));

endmodule

 

第五章波形仿真图

一、计时模块波形仿真图

二、报警模块波形仿真图

三、顶层模块波形仿真图

 

第六章管脚锁定及硬件连线

一、管脚锁定

CLK>chip=timer;InputPin=75

CLKM>chip=timer:

InputPin=83

CLK1>chip=timer;InputPin=85

COUT>chip=timer;OutputPin=38

CRN>chip=timer;InputPin=39

DO>chip=timer;InputPin=53

D1>chip=timer;InputPin=47

D2>chip=timer;InputPin=46

D3>chip=timer;InputPin=45

D4>chip=timer;InputPin=44

D5>chip=timer;InputPin=41

LDN>chip=timer;InputPin=40

LED0>chip=timer;OutputPin=173

LED1>chip=timer;OutputPin=174

LED2>chip=timer;OutputPin=175

LED3>chip=timer;OutputPin=176

LED4>chip=timer;OutputPin=177

LED5>chip=timer;OutputPin=179

LED6>chip=timer;OutputPin=187

SSO>chip=timer;OutputPin=191

SS1>chip=timer;OutputPin=192

SS2>chip=timer;OutputPin=193

引线说明:

拨码开关使用数字开关组A,需外接引线。

心得体会

通过这次设计,初步对EDA有一个了解。

出于没有学习过这门课程,所以再课程设计开始时对于EDA就是一无所知。

课程设计之初是做了一个简单的培训,关于软件和硬件的设计,算是入门训练吧。

通过前两天的课程讲解,我对其有了初步的了解。

之后就开始按照指导书中的例题就行练习,仿真,有进一步的掌握后就开始了自己的课程设计。

由于我C++程序设计知识不扎实,所以导致这次软件设计困难重重,也让我明白了在这个领域知识的串联是非常普遍的,学好学扎实是我们必须要做到的要求。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力。

在设计的过程中,可以说得是困难重重,但这毕竟第一次做,同时在设计的过程中发现了自己的不足之处。

在此还需要感谢郑兆兆老师和吕宏诗老师耐心的指导与帮助,使课设能够更加顺利的完成。

 

参考文献

1、阎石主编.《数字电子技术基础》(第五版).高等教等育出版社.,168-175页;

2、李国丽、朱维勇、何剑春主编《EDA与数字系统设计》(第2版).机械工业出版社.,105-146页

 

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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