EDA课程设计抢答器.docx

上传人:b****5 文档编号:4718649 上传时间:2022-12-07 格式:DOCX 页数:16 大小:119.75KB
下载 相关 举报
EDA课程设计抢答器.docx_第1页
第1页 / 共16页
EDA课程设计抢答器.docx_第2页
第2页 / 共16页
EDA课程设计抢答器.docx_第3页
第3页 / 共16页
EDA课程设计抢答器.docx_第4页
第4页 / 共16页
EDA课程设计抢答器.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

EDA课程设计抢答器.docx

《EDA课程设计抢答器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计抢答器.docx(16页珍藏版)》请在冰豆网上搜索。

EDA课程设计抢答器.docx

EDA课程设计抢答器

燕山大学

课程设计说明书

 

题目:

抢答器

 

学院(系):

电气工程学院

年级专业:

10级应用电子技术4班

学号:

学生姓名:

指导教师:

教师职称:

实验师实验师

燕山大学课程设计(论文)任务书

院(系):

电气工程学院基层教学单位:

电子实验中心

学号

学生姓名

专业(班级)

10级应电4班

设计题目

抢答器

●五人参赛每人一个按钮,主持人一个按钮,按下开始,具有复位功能;

●抢中者对应的指示灯亮;用点阵显示抢中者序号;

●有人抢答时,蜂鸣2s。

●答题时限为10秒钟,从有人抢答开始,用数码管倒计时间10、9、8。

1、0;

倒计时到0时,蜂鸣2秒。

●用拨码开关设定主持人及参赛者按钮;

●用红色信号指示灯组L1-L5表示对应参赛者指示灯;

●用点阵显示抢中者序号。

●学会使用Max+PlusII软件、VerilogHDL语言和实验箱;

●独立完成电路设计,编程下载、连接电路和调试;

●参加答辩并书写任务书。

1.了解EDA的基本知识,学习使用软件Max+PlusII,下发任务书,开始电路设计;

2.学习VerilogHDL语言,用VerilogHDL进行程序设计

3.学习使用实验箱,继续电路设计;

4.完成电路设计;

5.编程下载、连接电路、调试和验收;

6.答辩并书写任务书。

《数字电子技术基础》.阎石主编.高等教育出版社.

《EDA课程设计A指导书》.

 

指导教师签字

张强吕宏诗

基层教学单位主任签字

金海龙

说明:

此表一式四份,学生、指导教师、基层教学单位、系部各一份。

2012年12月24日

 

第一章引言…………………………………………………………………………………3

第二章设计说明……………………………………………………………………………3

第三章verilogHDL设计源程序…………………………………………………………5

第四章波形仿真图………………………………………………………………………13

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

第六章总结………………………………………………………………………………17

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

 

第一章引言

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,是20世纪90年代初以计算机硬件和软件为基本工作平台,及数据库、图形学、图论、与拓扑逻辑、计算数学、优化理论等多学科最新成果研制的计算机辅助设计通用软件包,用于电子产品的自动设计。

现在对EDA的概念或范畴用的很宽,电子、机械、通信、航空航天、化工、矿产、生物、医学、军事等各个领域都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如,在飞机制造过程中,从设计、性能测试及特性分析到飞行模拟,都可能涉及EDA技术。

这里所指的EDA技术主要针对数字逻辑电路设计。

EDA技术研究的对象是电子设计的全过程,包括系统级、电路级、和物理级各个层次的设计。

从可编程逻辑器件和专用集成电路开发与应用角度,EDA系统包含一下子模块:

设计输入子模块、设计数据库子模块、分析验证子模块、综合仿真子模块、布局布线子模块。

第二章设计说明

1.1设计思路

本次EDA课程设计的题目是抢答器。

要求实现5人抢答功能:

有人抢答时蜂鸣2秒,用L1-L5表示对应参赛者指示灯;用点阵显示抢中者序号;答题时限为10秒,从有人抢答开始用数码管倒计时10秒,倒计时结束后再蜂鸣两秒;主持人控制复位键,复位后进入下一轮抢答。

根据任务书的要求,当有第一个抢答信号时,将对应的端口置为高电平,同时产生锁定信号将其余抢答者的信号屏蔽,端口连接红色信号指示灯组L1-L5。

同时作为蜂鸣器、点阵和数码管的输入信号。

当主持人复位按钮按下时,将所有端口置0,即可开始下一轮抢答。

当端口x1、x2、x3、x4、x5有信号或bit有信号时,即有人抢答或倒计时到零时,给蜂鸣器高电平使其发声,同时利用对CLK信号的分频控制延时,延时结束给蜂鸣器低电平。

点阵模块根据输入的x1、x2、x3、x4、x5信号,依次产生对应的点阵控制信号GA和ROW。

数码管模块根据输入的x1、x2、x3、x4、x5信号,即当有人抢答时,通过对CLK信号的分频产生10秒倒计时,并将倒计时数值送往动态数码管显示。

本次设计包括A、B、C、D、E、M、CLK六个输入和L1、L2、L3、L4、L5、GA、ROW、WX、DX、bee十个输出。

其中GA、ROW为八位,7为高位,0为低位;WX为三位,2为高位,0为低位;DX为七位,6为高位,0为低位。

L1、L2、L3、L4、L5与红色信号指示灯组相连;RA、ROW与点阵的控制端RA、ROW相连;WX与动态数码管的位选信号SS0、SS1、SS2相连;DX与动态数码管的段选信号A、B、C、D、E、F、G相连;bee与蜂鸣器SREAKER相连。

1.2模块介绍

本次课程设计的模块包括抢答部分、点阵显示部分、数码管倒计时部分和蜂鸣器部分。

抢答部分利用always块对每个CLK的上升沿敏感,利用外层的if语句判断主持人按钮M是否按下,若没有按下进入内层if语句,对5个抢答者的信号依次进行判定并产生输出信号x1至x5及锁定信号lock。

理论上可分辨时间相差0.001秒的抢答信号,对于实际应用来说已经够用了,提高CLK频率可以进一步提高分辨率。

点阵显示部分采用if循环,控制在每个CLK的上升沿计数值加1,构成八进制计数器,得到点阵的扫描信号;if语句嵌套case语句将抢答者情况罗列出来,对ROW、GA依次进行赋值。

数码管倒计时部分首先利用if语句对CLK信号进行1024分频,产生1Hz的信号,从而产生倒计时Se,并通过判断Se是否大于10而将其分为十位数字和个位数字Se_shi和Se_ge,然后通过动态扫描数码管,分别将Se_shi和Se_ge送往8号数码管和7号数码管,在两个数码管上显示倒计时的十位与个位。

蜂鸣器部分在每个CLK的上升沿判断是否有人抢答或者倒计时是否结束,若有信号转入循环延时,同时蜂鸣器开始响,对CLK进行分频,延时结束后,蜂鸣器无声。

第三章VerilogHDL设计源程序

moduleqiangdaqi(A,B,C,D,E,M,CLK,L1,L2,L3,L4,L5,ROW,GA,bee,WX,DX);

inputA,B,C,D,E,M,CLK;

outputL1,L2,L3,L4,L5,ROW,GA,bee;

output[2:

0]WX;

output[6:

0]DX;

regx1,x2,x3,x4,x5,L1,L2,L3,L4,L5,lock,bee;

reg[7:

0]ROW,GA,count1;

reg[10:

0]aa;

reg[3:

0]bb;//second

reg[12:

0]count2,count4;

reg[2:

0]count3;

reg[2:

0]WX;

reg[6:

0]DX;

reg[3:

0]Se;

reg[3:

0]shu;

reg[3:

0]Se_shi;

reg[3:

0]Se_ge;

regbit;

always@(posedgeCLKorposedgeM)//抢答部分

begin

if(M==1)

begin

lock=0;

x1=0;x2=0;x3=0;x4=0;x5=0;

end

else

begin

if(A==1&&lock==0)

begin

x1=1;lock=1;

L1=x1;

end

elseif(B==1&&lock==0)

begin

x2=1;lock=1;

L2=x2;

end

elseif(C==1&&lock==0)

begin

x3=1;lock=1;

L3=x3;

end

elseif(D==1&&lock==0)

begin

x4=1;lock=1;

L4=x4;

end

elseif(E==1&&lock==0)

begin

x5=1;lock=1;

L5=x5;

end

end

end

 

always@(posedgeCLK)//点阵显示部分

begin

count1=count1+1;

if(count1==9)

count1=1;

if(x1)

begin

case(count1)

1:

beginROW=8'hfe;GA=8'h10;end

2:

beginROW=8'hfd;GA=8'h18;end

3:

beginROW=8'hfb;GA=8'h14;end

4:

beginROW=8'hf7;GA=8'h10;end

5:

beginROW=8'hef;GA=8'h10;end

6:

beginROW=8'hdf;GA=8'h10;end

7:

beginROW=8'hbf;GA=8'h10;end

8:

beginROW=8'h7f;GA=8'h00;end

endcase

end

if(x2)

begin

case(count1)

1:

beginROW=8'hfe;GA=8'h3c;end

2:

beginROW=8'hfd;GA=8'h20;end

3:

beginROW=8'hfb;GA=8'h20;end

4:

beginROW=8'hf7;GA=8'h3c;end

5:

beginROW=8'hef;GA=8'h04;end

6:

beginROW=8'hdf;GA=8'h04;end

7:

beginROW=8'hbf;GA=8'h3c;end

8:

beginROW=8'h7f;GA=8'h00;end

endcase

end

if(x3)

begin

case(count1)

1:

beginROW=8'hfe;GA=8'h3c;end

2:

beginROW=8'hfd;GA=8'h20;end

3:

beginROW=8'hfb;GA=8'h20;end

4:

beginROW=8'hf7;GA=8'h3c;end

5:

beginROW=8'hef;GA=8'h20;end

6:

beginROW=8'hdf;GA=8'h20;end

7:

beginROW=8'hbf;GA=8'h3c;end

8:

beginROW=8'h7f;GA=8'h00;end

endcase

end

if(x4)

begin

case(count1)

1:

beginROW=8'hfe;GA=8'h10;end

2:

beginROW=8'hfd;GA=8'h18;end

3:

beginROW=8'hfb;GA=8'h14;end

4:

beginROW=8'hf7;GA=8'h3e;end

5:

beginROW=8'hef;GA=8'h10;end

6:

beginROW=8'hdf;GA=8'h10;end

7:

beginROW=8'hbf;GA=8'h10;end

8:

beginROW=8'h7f;GA=8'h00;end

endcase

end

if(x5)

begin

case(count1)

1:

beginROW=8'hfe;GA=8'h3c;end

2:

beginROW=8'hfd;GA=8'h04;end

3:

beginROW=8'hfb;GA=8'h04;end

4:

beginROW=8'hf7;GA=8'h3c;end

5:

beginROW=8'hef;GA=8'h20;end

6:

beginROW=8'hdf;GA=8'h20;end

7:

beginROW=8'hbf;GA=8'h3c;end

8:

beginROW=8'h7f;GA=8'h00;end

endcase

end

end

 

always@(posedgeCLK)//倒计时部分

begin

if(x1||x2||x3||x4||x5)

begin

aa=aa+1;

if(aa==1024)//1024

begin

aa=0;

bb=bb+1;

if(bb>=10)

bb=10;

end

Se=10-bb;

if(Se==0)

bit=1;

end

end

 

always@(posedgeCLK)//数码管显示部分

begin

count3=count3+1;

if(Se>=10)

begin

Se_shi=1;Se_ge=Se-10;

end

else

begin

Se_shi=0;Se_ge=Se;

end

case(count3)

1:

begin

WX='b001;shu=Se_shi;

end

2:

begin

WX='b010;shu=Se_ge;

end

endcase

if(count3==2)count3=0;

end

always@(shu)

begin

case(shu)

0:

DX='b0111111;

1:

DX='b0000110;

2:

DX='b1011011;

3:

DX='b1001111;

4:

DX='b1100110;

5:

DX='b1101101;

6:

DX='b1111101;

7:

DX='b0000111;

8:

DX='b1111111;

9:

DX='b1101111;

endcase

end

 

always@(posedgeCLK)//蜂鸣器部分

begin

if(x1||x2||x3||x4||x5)//2049

begin

count2=count2+1;

bee=1;

if(count2>2049)

bee=0;

end

if(bit==1)

begin

count4=count4+1;

bee=1;

if(count4>2049)

bee=0;

end

end

endmodule

 

第四章波形仿真图

此波形图对应先抢答者为1号选手。

 

此波形图对应先抢答者为2号选手。

 

此波形图对应先抢答者为3号选手。

此波形图对应先抢答者为4号选手。

 

此波形图对应先抢答者为5号选手。

 

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

管脚锁定情况如下:

INPUT/OUTPUT

端口名称

管脚号

INPUT/OUTPUT

端口名称

管脚号

INPUT

CLK

Pin73

OUTPUT

bee

Pin38

INPUT

A

Pin39

OUTPUT

L1

Pin12

INPUT

B

Pin40

OUTPUT

L2

Pin13

INPUT

C

Pin41

OUTPUT

L3

Pin14

INPUT

D

Pin44

OUTPUT

L4

Pin15

INPUT

E

Pin45

OUTPUT

L5

Pin17

INPUT

M

Pin53

OUTPUT

GA0

Pin93

OUTPUT

ROW0

Pin198

OUTPUT

GA1

Pin90

OUTPUT

ROW1

Pin196

OUTPUT

GA2

Pin88

OUTPUT

ROW2

Pin193

OUTPUT

AG3

Pin86

OUTPUT

ROW3

Pin191

OUTPUT

GA4

Pin83

OUTPUT

ROW4

Pin189

OUTPUT

GA5

Pin197

OUTPUT

ROW5

Pin179

OUTPUT

GA6

Pin195

OUTPUT

ROW6

Pin176

OUTPUT

AG7

Pin192

OUTPUT

ROW7

Pin174

OUTPUT

WX0

Pin190

OUTPUT

DX2

Pin92

OUTPUT

WX1

Pin187

OUTPUT

DX3

Pin89

OUTPUT

WX2

Pin177

OUTPUT

DX4

Pin87

OUTPUT

DX0

Pin175

OUTPUT

DX5

Pin85

OUTPUT

DX1

Pin173

OUTPUT

DX6

Pin75

 

硬件连线情况如下:

Pin83连接至箱上中频组11号端作为CLK;Pin93、90、88、86、83、197、195、192分别作为GA0—GA7连接至箱上点阵显示信号接线组“COL1_8G(T)”;Pin198、196、193、191、189、179、176、174分别作为ROW0—7连接至箱上点阵显示信号接线组“ROW1_8(T)”。

Pin190、187、177分别作为SS0、SS1、SS2连接至数码管位选信号;Pin175、173、92、89、87、85、75分别作为A、B、C、D、E、F、G连接至数码管段选信号。

其余输入/输出芯片内部都有定义,无须连线。

 

第六章总结

可以说,是这次EDA课程设计把我领进了EDA的大门。

以前自己对EDA的理解仅限于利用Protel等软件做出PCB版的传统方法;通过这次课程设计,我接触了一种全新的EDA方法,让我受益匪浅。

我在这次课程设计里学会了使用Max+PlusⅡ软件,初步掌握了VerilogHDL语言。

刚领到题目时发现抢答器的功能比较分散,于是采用了分模块的设计方法,在编程的时候也发现了不少问题,可能是由于芯片的原因,编程时有些C常用的语句不能被编译(比如for循环,while语句)让我不得不用别的语句代替,VerilogHDL关键词区分大小写等和C语言不同的部分也让我不太适应。

经过多次调试程序编译通过的时候我非常兴奋。

之后管脚锁定和下箱出现了两个问题,点阵的显示与正常相反,蜂鸣器的延时长于2S。

第一个问题经过检查后发现是自己粗心把GA管脚接反了,第二个问题可能是因为控制蜂鸣器的时钟分频信号运算有延迟,经改动后解决。

上箱调试让我明白了理论与实际的差异,理论需要经过实践才能发现它的不足并进行修改完善。

经过几天的努力,在老师的辛勤指导下,我顺利的完成了任务。

最后,对帮助指导过我的张强和吕宏诗老师表示衷心的感谢!

 

参考文献

1郑兆兆.EDA课程设计A指导书.燕山大学出版社,2010年

2阎石.数字电子技术基础.高等教育出版社.2010年

 

 

燕山大学课程设计评审意见表

指导教师评语:

①该生学习态度(认真较认真不认真)

②该生迟到、早退现象(有无)

③该生依赖他人进行设计情况(有无)

 

平时成绩:

指导教师签字:

2013年1月4日

图面及其它成绩:

答辩小组评语:

①设计巧妙,实现设计要求,并有所创新。

②设计合理,实现设计要求。

③实现了大部分设计要求。

④没有完成设计要求,或者只实现了一小部分的设计要求。

答辩成绩:

组长签字:

2013年1月4日

课程设计综合成绩:

答辩小组成员签字:

2013年1月4日

(注:

可编辑下载,若有不当之处,请指正,谢谢!

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

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1