EDA课程设计抢答器.docx
《EDA课程设计抢答器.docx》由会员分享,可在线阅读,更多相关《EDA课程设计抢答器.docx(16页珍藏版)》请在冰豆网上搜索。
![EDA课程设计抢答器.docx](https://file1.bdocx.com/fileroot1/2022-12/7/511ab667-50a0-4ff4-b82c-17bcce162f7e/511ab667-50a0-4ff4-b82c-17bcce162f7e1.gif)
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日
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)