EDA设计.docx

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

EDA设计.docx

《EDA设计.docx》由会员分享,可在线阅读,更多相关《EDA设计.docx(19页珍藏版)》请在冰点文库上搜索。

EDA设计.docx

EDA设计

 

EDA课程设计报告

 

课程名称电子电路设计

任课教师

设计题目数字时钟设计

姓名

学号

日期

 

一、总述

1)课程设计的性质、目的和任务

2)课程设计基本要求

3)课程设计指导教材

二、题目分析

1)设计要求

2)总体方框图

3)技术指标及功能要求

三、选择方案

四、编写应用程序并仿真

1)秒计数器

2)分钟计数器

3)小时计数器

4)整点报时报警模块

5)七段译码

五、硬件测试及说明

六、结论

七、总结

 

一、总述

(1)课程设计的性质、目的和任务

创新精神和实践能力二者之中,实践能力是基础和根本。

这是由于创新基于实践、源于实践,实践出真知,实践检验真理。

实践活动是创新的源泉,也是人才成长的必由之路。

通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。

(2)课程设计基本要求

掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。

(3)课程设计指导教材

《基础电子电路设计与实践》国防工业出版社

二、题目分析

(1)设计要求:

1)构造一个24小时制的数字钟。

要求能显示时、分、秒。

2)要求时、分、秒能各自独立的进行调整。

3)能利用喇叭作整点报时。

从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。

整点报时声的频率应与其它的报时声频有明显区别。

 

(2)总体方框图

(3)技术指标及功能要求

1)时钟计数:

完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制BCD码计数,即从0到59循环计数,时钟——24进制BCD码计数,即从0到23循环计数,并且在数码管上显示数值。

2)时间设置:

手动调节分钟、小时,可以对所设计的时钟任意调时间,秒、分计数器都有进位信号,通过调节进位信号实现对数字钟的调分和调时功能,即当setmin为高电平时,秒钟信号作为进位信号使分计数器计数,其计数加快实现调分功能。

小时的调时原理与其相同。

3)可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。

当电子钟显示XX:

59:

50时,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:

00:

00时报“DI",持续一秒后停止。

最后输出至喇叭。

应调用元件库中的逻辑门建一个控制报时的模块。

4)建一个七段译码的模块

因在系统可编程器件实验箱上的数码管没有经过译码,故要用AHDL语言写一个七段译码的模块,且应考虑数码管为共阳极。

数码管上的点(D2、D4、D6)应置Vcc。

三、选择方案

1、方案选择及设计规划

根据总体方框图及各部分分配的功能可知,本系统可以由四个子模块(即秒计数器、分钟计数器、小时计数器、整点报时)和一个顶层文件构成。

采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。

2、系统顶层图的设计

系统顶层设计图如上所示,由图知:

1)对外端口引脚名称:

输入:

clk,reset,setmin,sethour;

输出:

D6[6..0],D5[6..0],D4[6..0],D3[6..0],D2[6..0],D1[6..0],speaker;

2)底层文件名称:

秒计时器(second)是由一个60进制的计数器构成的,具有清0、置数和计数功能。

其中reset为清0信号,当reset为0时,秒计时器清0;clk为系统时钟信号;setmin是分钟的设置信号;enmin为秒计时器的进位信号,作为下一级的输入信号;SEC0是秒计数值的个位,SEC1是秒计数值的十位。

分计时器(minute)是由一个60进制的计数器构成的,具有清0、置数和计数功能。

其中reset为清0信号,当reset为0时,分计时器清0;clk为系统时钟信号;clk1为设置时钟信号;sethour时设置信号;enhour为分计时器的进位信号,作为下一级的输入信号。

MIN0是分计数值的个位,MIN1是分计数值的十位。

时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。

其中reset为清0信号,当reset为0时,时计时器清0;clk为时计数时钟信号;H0为时计数值的个位,H1为时计数值的十位。

报时模块(alarm)的功能是整点报时,当电子钟显示XX:

59:

50时,给予蜂鸣器1KHZ脉冲,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:

00:

00时给予蜂鸣器2KHZ脉冲,数字钟报“DI",持续一秒后停止。

3)实验连线:

reset、setmin、hour连接拨动开关;计数时钟信号clk接4KHZ时钟信号;speak与扬声器驱动speaker相连;D6[6..0],D5[6..0],D4[6..0],D3[6..0],D2[6..0],D1[6..0]分别与七段LED数码管相连。

结构框图如下:

四、编写应用程序并仿真

1、秒计数器(文件名:

second.vhd)

1)VHDL语言描述程序

LIBRARYIEEE;

useIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYsecondIS

PORT(clk,reset,setmin:

INSTD_LOGIC;

enmin:

OUTSTD_LOGIC;

sec0,sec1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDsecond;

ARCHITECTUREmian_arcOFsecondIS

begin

process(clk,reset,setmin)

variablecount0,count1:

std_logic_vector(3downto0);

begin

IF(reset='0')THEN

count1:

="0000";count0:

="0000";

elsif(clk'eventandclk='1')then

if(count1="0101"andcount0="1000")then

enmin<='1';

count0:

="1001";

elsif(count0<"1001")then

count0:

=count0+1;

else

count0:

="0000";

if(count1<"0101")then

count1:

=count1+1;

else

count1:

="0000";

enmin<='0';

endif;

endif;

endif;

sec1<=count1;

sec0<=count0;

endprocess;

endmian_arc;

2)秒计数器的仿真波形图

3)波形分析

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

4)生成模块样式

2、分钟计数器(文件名:

minute.vhd)

1)VHDL语言描述程序

LIBRARYIEEE;

useIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYminuteIS

PORT(clk,reset,sethour:

INSTD_LOGIC;

enhour:

OUTSTD_LOGIC;

min0,min1:

OUTSTD_LOGIC_VECTOR(3DOWNTO0));

ENDminute;

ARCHITECTUREmian_arcOFminuteIS

begin

process(clk,reset,sethour)

variablecount0,count1:

std_logic_vector(3downto0);

begin

IF(reset='0')THEN

count1:

="0000";count0:

="0000";

elsif(clk'eventandclk='1')then

if(count1="0101"andcount0="1000")then

enhour<='1';

count0:

="1001";

elsif(count0<"1001")then

count0:

=count0+1;

else

count0:

="0000";

if(count1<"0101")then

count1:

=count1+1;

else

count1:

="0000";

enhour<='0';

endif;

endif;

endif;

min1<=count1;

min0<=count0;

endprocess;

endmian_arc;

2)分钟计数器的仿真波形图

3)波形分析

由波形图可知该模块实现了分钟计数的功能,利用60进制计数器完成00到59的循环计数功能,当秒计数至59时,再来一个时钟脉冲则产生进位输出,即enhour=1;reset作为复位信号低电平有效,即高电平时正常循环计数,低电平清零。

4)生成模块样式

3、小时计数器(文件名:

hour.vhd)

1)VHDL语言描述程序

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhouris

port(reset,clk:

instd_logic;

h1,h0:

outstd_logic_vector(3downto0));

endhour;

architecturehour_arcofhouris

begin

process(clk,reset)

variablecnt1,cnt0:

std_logic_vector(3downto0);

begin

ifclk'eventandclk='1'then

IF(reset='0')THEN

ifcnt1="0010"andcnt0="0011"then

cnt0:

="0000";

cnt1:

="0000";

elsifcnt0<"1001"then

cnt0:

=cnt0+1;

else

cnt0:

="0000";

cnt1:

=cnt1+1;

endif;

endif;

endif;

h1<=cnt1;

h0<=cnt0;

endprocess;

endhour_arc;

2)小时计数器的仿真波形图

3)波形分析

小时计数模块利用24进制计数器,通过分钟的进位信号的输入可实现从00到23的循环计数。

4)生成模块样式

4、整点报时报警模块(文件名:

alert.vhd)

1)VHDL语言描述程序

libraryieee;

useieee.std_logic_1164.all;

entityalertis

port(m1,m0,s1,s0:

instd_logic_vector(3downto0);

clk:

instd_logic;

qlk,qlk2:

outstd_logic);

endalert;

architecturesst_arcofalertis

begin

process(clk)

begin

ifclk'eventandclk='1'then

ifm1="0101"andm0="1001"ands1="0101"then

ifs0="0000"ors0="0001"ors0="0010"ors0="0011"ors0="0100"ors0="0101"ors0="0110"ors0="0111"ors0="1000"ors0="1001"then

qlk<='1';

else

qlk<='0';

endif;

endif;

ifm1="0000"andm0="0000"ands1="0000"ands0="0000"then

qlk2<='1';

else

qlk2<='0';

endif;

endif;

endprocess;

endsst_arc;

2)生成模块样式

3)功能分析

当电子钟显示XX:

59:

50时,给予蜂鸣器1KHZ脉冲,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:

00:

00时给予蜂鸣器2KHZ脉冲,数字钟报“DI",持续一秒后停止。

5、七段译码(以小时十位为例)

libraryieee;

useieee.std_logic_1164.all;

entityD01is

port(H1:

instd_logic_vector(3downto0);

D1:

outstd_logic_vector(6downto0));

endD01;

architecturedisp_arcofD01is

begin

process(H1)

begin

caseH1is

when"0000"=>D1<="1111110";

when"0001"=>D1<="0110000";

when"0010"=>D1<="1101101";

whenothers=>D1<="0000000";

endcase;

endprocess;

enddisp_arc;

五、全系统联调

五、硬件测试及说明

1、数字时钟系统采用模式7进行硬件测试

2、引脚锁定情况

信号名

引脚号

按键及显示

clk

PIN2

内部时钟信号

D10

PIN18

数码管D1

D11

PIN15

D12

PIN16

D13

PIN17

D14

PIN20

D15

PIN21

D16

PIN22

D20

PIN8

数码管D2

D21

PIN81

D22

PIN4

D23

PIN6

D24

PIN10

D25

PIN9

D26

PIN11

D30

PIN73

数码管D3

D31

PIN70

D32

PIN75

D33

PIN76

D34

PIN80

D35

PIN77

D36

PIN79

D40

PIN63

数码管D4

D41

PIN61

D42

PIN65

D43

PIN64

D44

PIN69

D45

PIN67

D46

PIN68

D50

PIN52

数码管D5

D51

PIN50

D52

PIN54

D53

PIN55

D54

PIN57

D55

PIN56

D56

PIN58

D60

PIN41

数码管D6

D61

PIN40

D62

PIN44

D63

PIN45

D64

PIN48

D65

PIN46

D66

PIN49

sethour

PIN34

键K2

setmin

PIN35

键K3

speaker

PIN25

蜂鸣器SPEAKER

reset

PIN33

键K1

3、硬件测试过程与结果分析

1)硬件测试:

实验硬件系统EPM7128SLC84-15

键K1控制reset,键K2控制sethour,键K3控制setminute

数码管D1,D2用作小时显示,D1高位是小时的十位,D2低位是小时的个位;

数码管D3、D4用作分钟显示,D3高位是分钟的十位,D4低位是分钟的个位;

数码管D5,D6用作秒钟显示,D5高位是秒钟的十位,D6低位是秒钟的个位;

测试过程

reset低电平清零复位,按键K1使灯亮则时钟开始从00-00-00计时,秒钟计时到59时向分钟进1,分钟计时到59时向小时进1;

键K2用做调小时每来一个脉冲调一次调节范围00-——23;

键K3用做调分钟每来一个脉冲调一次调节范围00—59;

当电子钟显示XX:

59:

50时,给予蜂鸣器1KHZ脉冲,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:

00:

00时给予蜂鸣器2KHZ脉冲,数字钟报“DI",持续一秒后停止。

2)结果分析:

由测试过程及结果可知所设计的数字时钟系统完成了预定的实验设计要求。

六、结论

1、实验总结

由上可知,该数字钟系统实现了计时、时间重置、整点报时的功能。

在给数字钟重置时间后,数字钟便开始从所置的时间计时,计数到59秒时,秒计时器回到00秒,并且给分钟加1;当分钟计数到59分时,分计时器回到00分钟,小时显示加1,与此同时报时装置输出高电平,并且持续1分钟。

当小时计数到23小时时,当分钟及秒钟都达到59时,下一脉冲来时时钟回到00小时。

当分钟到达59分,分计时器回到00时。

通过这次设计实验,使得我对层次化结构化设计有了更深的了解。

在设计中将设计任务分成了几个子模块,完成各子模块的设计功能,然后再将各模块合起来联试,加深了层次化设计概念。

通过实验加深了对软件的元件管理的含义的理解,学会将不同目录下的设计题目融合在同一个文件夹中进行总体集成。

通过仿真和硬件测试,让我认识到调试和硬件测试手段的多样化,对于同一功能的电路可以采用多种模式进行硬件测试,但要选择一个最佳方案,从而进行信号引脚的锁定并与相应功能块的硬件电路接口相连。

2、实验设计不足及改进

1)整点报时模块可以在此模块中用存储器存储一段音乐,在整点报时时音乐提示。

2)可以利用宏模块的设计方法存储一个时间设计一个闹钟模块。

3)在实验设计中关于顶层文件的vhdl语言描述还有一些欠缺,因此在设计时采用了原理图输入的设计方法。

4)总线设置太多,妨碍了软件的运行,致使最后硬件演示时出现情况。

七、课程总结

这次课程设计主要分为理论学习和实验实践两个部分。

通过对其理论知识的学习,我对硬件描述语言有了初步的认识,学会利用硬件描述语言完成相应功能系统的设计。

在VHDL的语言学习上,类比于C语言的学习,通过对以往例子的学习,加深了自己对这门语言的认识,

在实验中,通过自己的实际操作,找出问题,改正错误,提出改进之法,大胆创新,使自己的能力在实践中成长起来。

经过这几天的设计,我基本了解了EDA设计过程。

从简单的实例开始,了解EDA设计的大概流程。

经过实践设计之后,我对于VHDL语言的理解更加深刻了,本来有些不理解的理论知识,都能通过实践得到一定解答。

在实践的过程中,有时遇到难题的时候,我们上网或去图书馆查找资料,或者向老师和同学们讨论,在这个过程中我学习到了一些我们在课堂上学不到的知识。

通过这次课程设计使我更加深刻的懂得了理论与实际相结合的重要性!

只有理论知识无法实现相关的设计和实际操作,当把所学的理论知识与实践相结合起来,从理论中得出结论,这样才能把所学的理论知识更加巩固至掌握住,才能提高自己的实际动手能力和独立思考能力。

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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