四人抢答器设计.docx
- 文档编号:9643608
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:13
- 大小:121.70KB
四人抢答器设计.docx
《四人抢答器设计.docx》由会员分享,可在线阅读,更多相关《四人抢答器设计.docx(13页珍藏版)》请在冰豆网上搜索。
四人抢答器设计
河南科技大学
课程设计说明书
课程名称EDA课程设计
题目四人抢答器设计
学院电信学院
班级电信科074班
学生姓名聂云峰
指导教师宋潇
日期2010年9月22日
课程设计任务书
课程设计名称EDA课程设计学生姓名聂云峰专业班级电信科074班
设计题目四人抢答器设计
一、课程设计目的:
1、综合运用EDA技术,独立完成一个课题设计,考察所学知识,解决实际问题的能力;
2、结合理论知识,考察阅读参考资料、文献、手册的能力;
3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;
4、锻炼撰写研究报告、研究论文的能力;
5、通过本实践环节,培养科学和严谨的工作作风。
二、设计内容、技术条件和要求:
l、设计用于竞赛的四人抢答器,功能如下:
(1)有多路抢答器,台数为四;
(2)具有抢答开始后20秒倒计时,20秒倒计时后无人抢答显示超时,并报警;
(3)能显示超前抢答台号并显示犯规警报;
(4)能显示各路得分,并具有加、减分功能;
2、系统复位后进入抢答状态,当有一路抢答键按下时,该路抢答信号将其余各路抢答封锁,同时铃声响,直至该路按键松开,显示牌显示该路抢答台号。
3、用VHDL语言设计符合上述功能要求的四人抢答器,并用层次设计方法设计该电路。
三、时间进度安排:
1周:
(1)完成设计准备,确定实施方案;
(2)完成电路文件的输入编辑;(3)完成输入文件的编译;(4)完成功能仿真。
2周:
(1)完成文件至器件的下载,并进行硬件验证;
(2)撰写设计说明书。
四、主要参考文献:
(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004
(2)高有堂,《EDA技术及应用实践》,清华大学出版社,2006
(3)亿特科技,CPLD/FPGA应用系统设计与产品开发》,人民邮电出版社,2005
指导教师签字:
2010年9月5日
摘要
随着现代生活的日益提高,数字电子产品与我们的日常生活接触越来越密切,越来越平凡。
这里面有我们熟知的包括计算机、电子表、智能仪器表、计数器、抢答器等等。
他给我们带来的不仅仅是工作上的方便而且在我们的日常生活和娱乐中也起到了很大的作用,在这次的课程设计中我做的是一个关于四人抢答器的设计,这次的报告主要采用了分块剖析的模式,对各个功能模块进行详细的说明,并且付以相应的VHDL语言源程序。
运用由Altera公司推出的的第三代PLD开发系统QuartusII进行仿真和下载,生成各个模块的原理图。
最后在报告的结尾处附加以原理图和相应的波形图。
关键字:
置位、复位、锁存、计数器、译码器、七段显示器、QuartusII、报警
Abstract
Withtheincreasingofmodernlife,digitalelectronicsandourdailylivesinclosecontactwithmoreandmoreandmoreordinary.Andtherearewellknowntous,includingcomputers,electronicwatches,intelligentinstrumenttables,counters,Responderandmore.HebroughtusnotonlytofacilitateworkandinourdailylifeandentertainmentalsoplayedasignificantroleinthedesignofthecourseIdidafour-Responderonthedesign,Thisreportmainlyusestheblockmodeofanalysis,eachfunctionalmoduleofthedetailedinstructions,andpaythecorrespondingVHDLlanguagesource.AlteraCorporationintroducedbytheuseofthird-generationsimulationQuartusIIPLDdevelopmentsystemanddownloadeachmoduleschematicgeneration.Finally,thereportaddedtotheendofschematicandcorrespondingwaveforms.
Keywords:
set,reset,latch,counter,decoder,sevensegmentdisplays,QuartusII,alarm
一、设计原理
根据设计的要求,系统的输入信号clk1、计数器的输入信号clk2、复位清零信号clr、计时开始信号start、警报脉冲信号clk3、选手抢答信号Xs、系统的输出信号有:
报警信号ring、显示抢答结果信号result、计数器输出显示高电平high、计数器输出显示低电平low等等。
该系统有三个输入脉冲信号clk1、clk2、clk3,clk1是系统的输入信号,clk2是计时电路的输入信号,clk3是报警脉冲的输入信号,该系统有两个控制输入开关clr和start。
控制过程为:
系统开始之前先进行复位,然后输入系统的控制脉冲信号clk1,然后倒计时电路开始由20开始倒计时,在这个过程中又分为了好几个不同的情况:
1、提前抢答,也就是说复位信号开始但是clk1还没开始,这时候报警信号就会出现超前犯规报警,2、超时报警,也就是说复位信号开始而且clk1也开始,这样倒计时电路的clk2就被启动,经过20秒倒计时后仍无人抢答就出现超时报警,3正常报警,也就是说各项都正常的情况下,在倒计时电路还没到0时就有选手开始抢答,那么其余各路抢答封锁,同时报警信号输出。
正常抢答的情况下显示台显示该路抢答台号。
二、设计思路分析与比较
仔细的的看过这次四人抢答器的设计之后发现有两种设计思路,其实说是两种其实只不过是在显示电路那一部分产生了分歧,这两个设计方案各有各的好处,与此同时也各有各的弊端,这两种设计方案都运用了大致相同的源程序,以下就介绍一下各自的优缺点:
四人抢答器元件生成图
第一种设计方案就是分块设计,各功能模块都用相应的VHDL语言编写出来源程序,然后运用由Altera公司推出的的第三代PLD开发系统QuartusII进行元器件编译,然后再由一些与门电路和或门电路进行相应的功能连接,这样做的优点是省去了很多程序的编写工作,各个功能模块之间的联系在生成的元器件之间进行简单的连接就能完成一系列的功能,而且出错时容易检查,因为是分块的所以那个模块出现问题也能够快速找出,缺点是在QuartusII软件里面应用不太方便,没有直接写源程序简单。
第二种设计方案就是整体设计,运用元件例化语句COMPONENT,这个设计过程要求比较高一点,但是只需要编写相应的程序即可以,这个设计思路的优点是简单明了,没有多余的成分,缺点是出错时不易查找。
在这次的设计中由于我对第二种法案不太自信,所以选折了运用第一种设计方案,这个设计方案的元件模块图及相应关系的连线图如上所示。
三、模块设计
(一)抢答模块
抢答模块是整个设计的中心模块,在这个模块里面分为了正常抢答、提前抢答和超时抢答主要是由输入信号clk和复位信号clr控制,根据不同的情况可以有不同的结果,根据不同的结果输出正常信号nopre和违例信号pre。
原理图如下所示:
源程序如下:
LIBRARY.IEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED;
ENTITYCOREIS
PORT
(clk,clr,start:
instd_logic;
xuanshou:
instd_logic_vector(3downto0);
nopre,pre:
outstd_logic;
result:
bufferstd_logic_vector(3downto0);
qd:
outstd_logic);
ENDCORE;
ARCHITECTUREcoreaOFCOREIS
signaltemp:
std_logic;
begin
process(clk,xuanshou)
variablelockedself:
std_logic;
begin
ifclr='0'thenresult<="0000";lockedself:
='0';temp<='0';
elsifclk'eventandclk='1'then
iflockedself='0'then
CASExuanshouIS
WHEN"0001"=>result<="0001";
WHEN"0010"=>result<="0010";
WHEN"0100"=>result<="0011";
WHEN"1000"=>result<="0100";
whenothers=>null;
endcase;
lockedself:
=xuanshou(0)orxuanshou
(1)orxuanshou
(2)orxuanshou(3);
elsenull;
endif;
endif;
temp<=result(0)orresult
(1)orresult
(2)orresult(3);
qd<=xuanshou(0)orxuanshou
(1)orxuanshou
(2)orxuanshou(3);
endprocess;
process(temp,start)
begin
ifclr='0'thenpre<='0';nopre<='0';
elsiftemp'eventandtemp='1'then
ifstart='0'then
pre<='1';nopre<='0';
elsepre<='0';nopre<='1';
endif;
endif;
endprocess;
ENDCOREA;
该模块的仿真波形图为:
在这个功能模块中主要包含了抢答信号和程序的顶层文件,是整个设计的基础,在这个原程序中我们可以看到主要有三种情况要分析,第一个就是提前抢答,再者就是超市抢答,最后是正常抢答。
如上图的波形就是正常抢答时的波形,正常抢答:
clr=1且clk=1这个时候报警信号显示正常抢答,超时抢答:
clr=1这个时候由于没有选手抢答所以报警信号显示超时报警,提前抢答:
clr=1且clk=0这个时候由于复位已经完成但是主持人的clk还没摁下,所以此时当选手摁下抢答键时,报警信号就会显示提前报警。
(二)倒计时模块
该模块主要是在抢答正常时候用的,但是在抢答超时的时候也会有用,倒计时模块具有抢答开始后20秒倒计时,20秒后无人抢答显示超时报警,正常抢答时该路抢答信号将其余各路抢答封锁,同时显示抢答时间。
原理图如下所示:
源程序如下所示:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYDJSIS
PORT(CLK,CLEAR,STOP:
INSTD_LOGIC;
WARN:
OUTSTD_LOGIC;
CHAOSHI:
OUTSTD_LOGIC;
HIGH,LOW:
OUTSTD_LOGIC_VECTOR(3DOWNTO0));
ENDDJS;
ARCHITECTURETHREEOFDJSIS
SIGNALHS:
STD_LOGIC_VECTOR(3DOWNTO0);
SIGNALLS:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK,LS,HS)
BEGIN
IFCLEAR='0'THEN
HS<="0010";LS<="0000";WARN<='0';CHAOSHI<='0';
ELSIFSTOP='0'THEN
IFRISING_EDGE(CLK)THEN
LS<=LS-1;WARN<='0';
IFLS="0000"THEN
LS<="1001";HS<=HS-1;
IFHS="0000"ANDLS="0000"THEN
HS<="0000";LS<="0000";WARN<='1';CHAOSHI<='1';
ENDIF;
ENDIF;
ENDIF;
ELSIFSTOP='1'THEN
HS<=HS;LS<=LS;WARN<='1';
ENDIF;
ENDPROCESS;
HIGH<=HS;LOW<=LS;
ENDARCHITECTURETHREE;
仿真波形如下所示:
该模块主要是又上一个功能模块决定其运行模式,该倒计时自身也有一个输入脉冲但是这个脉冲的启动是由上一个抢答模块决定的,当选手提前抢答时就没有倒计时的作用了,只有当正常抢答和超时抢答时倒计时的输入脉冲信号才会被激活,当有选手抢答时计数器要停止,这时候的抢答信号就相当于STOP,倒计时电路根据情况的不同会把不同的报警信号输出。
(三)与门模块
该模块其实就是起到一个连接输入输出的功能的一个原器件,这里用到的时二输入与门电路,只有当两个输入端都为一时输出才有效,否则就无效。
原理图如下所示:
源程序如下所示:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYYUMENIS
PORT(A,B:
INSTD_LOGIC;
COUT:
OUTSTD_LOGIC);
END;
ARCHITECTUREAOFYUMENIS
BEGIN
COUT<=AANDB;
END;
(四)或门模块
和与门模块一样或门模块也只是起到一个连接各功能模块的作用,这里用的为二输入或门电路,只要两个输入端有一个为一输出就为一。
原理图如下所示:
源程序如下所示:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYHUOMENIS
PORT(A,B:
INSTD_LOGIC;
COUT:
OUTSTD_LOGIC);
ENDHUOMEN;
ARCHITECTURETWOOFHUOMENIS
BEGIN
COUT<=AORB;
ENDTWO;
(五)总程序
本次设计是用程序和模块图一起来完成的设计,源程序就是上面各个程序的综合,然后结合“设计思路与比较”中的四人抢答器原理图完成功能的测试,其波形图如下所示:
图一:
正常抢答波形图
图二:
提前抢答波形图
图三:
超时抢答信号
四、下载与调试,
经过软件的编译和正确完成功能仿真,这一步要在硬件上具体来实现设计所要求的功能,本次选择的是cyclone系列中的EP1C6Q240C8。
调试过程中遇到了一些问题,比如说最让我为难的就是倒计时哪一个模块,在这个模块设计中当stop=1时,计时电路不停止,经过仔细的检查和修改最后终于把问题解决了,还有就是在连线时由于自己的不细心连错了几条线,还好最后改了过来。
下载时的管脚锁定情况如下所示:
五、总结
经过这次课程设计让我对上学期学过的EDA和VHDl两本书有了更深一步的了解,让我自己又复习了一遍VHDL语言的基本设计方法,本次设计主要解决的问题是抢答信号何时发出,根据不同的情况分为提前报警,超时报警和正常报警三种情况。
这三种情况主要是由系统的输入信号clk1和clr决定,根偶很大的据两个输入信号的不同会出现三种不同的情况。
另一个需要解决的问题是各个功能模块之间的连线问题,运用了一些关联模块实现设计要求的功能,在这个环节中要求高度的集中精神和细心的态度,这在以后的就业中也有一定的要求,这次课程设计相当于我自己工作就业前的一次练兵,感觉对我自己有很大的帮助。
六、参考文献
[1]侯伯亨,顾新。
VHDL硬件描述语言与数字逻辑电路设计[M].西安:
西安电子科技大学出版社,1999:
1-165。
[2]潘松,黄继业。
EDA技术实用教程[M].北京:
科学出版社,2006:
292-296。
[3]王勇,电子设计自动化实验指导书,电工电子实验教学中心,2009年2月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抢答 设计