1、EDA课程设计智能竞赛抢答器唐 山 学 院EDA技术 课 程 设 计题 目 系 (部)班 级姓 名学 号指导教师15 年 7 月 5 日至 7 月 10 日 共 1 周2015年 7 月 9 日EDA技术 课程设计任务书一、设计题目、内容及要求设计题目:智力竞赛抢答器设计设计内容:(1)设计一个四组(人)参加的智力竞赛抢答计时器,它具有四路抢答输入,主持人按下复位键后,系统复位进入抢答状态,计时显示初始值; (2)某组首先按下抢答键,该路抢答信号,竞赛抢答器能够设别最先抢答的信号,锁定该信号,同时扬声器响起,参赛小组的序号在数码管上显示;(3)主持人对抢答结果进行确认,给出倒计时计数允许信号,
2、开始回答问题,计时显示器从初始值开始以秒为单位倒计时,计数至0时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;(4)参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号,以免扬声器鸣叫,按下复位键,又可开始新一轮的抢答;设计要求:(1)根据任务要求确定电路各功能模块; (2)写出设计程序;(3)给出时序仿真结果; (4)实现硬件调试;二、设计原始资料Quartus软件;EDA实验箱;计算机一台;三、要求的设计成果(课程设计说明书、设计实物、图纸等)课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。四、进程安排周1-周4: 查
3、阅资料,上机编写并调试程序周5: 课程设计答辩并交设计说明书五、主要参考资料1.Voknei A.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.52.潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.23.焦素敏.EDA应用技术.清华大学出版社,2002.4指导教师(签名):教研室主任(签名):1 引言EDA技术又称电子设计自动化,它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD),计算机辅助工程(CAE),电子系统设计自动化(ESDA)3个阶段。在当今时代,现代电子产品几乎渗透了社会的各个领域,EDA技术是电子设计的发展趋势,E
4、DA工具从数字系统设计的单一领域开始,应用范围已涉及模拟、微波等多个领域,可实现各个领域电子系统设计的测试、设计仿真和布局布线等。设计者只要完成对电子系统的功能描述,就可利用计算机和EDA工具,进行设计处理,最终得到设计结果。随着大规模集成电路技术和计算机技术的不断发展,即便是在普通的电子产品的开发方面,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性价比大幅度提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大的一种技术。在信息通信领域,要优先发展高速宽
5、带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。我们当代大学生必须能够熟练的掌握这门技术,并把它运用到实际当中,才能把我们所学的知识转化为对社会有贡献有帮助的能力,同时提升自身的实际发现问题和处理问题的能力。2 VHDL介绍VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述,基于这种描述,结合相关的软件工具,可以得到所期望的实际电路与系统。VHDL(VERY HIGH SPEED INTEGRATEDCIRCUIT HARDWARE DESC
6、RIPTION LANGUAGE)语言最早是有美国国防部提出的,它支持行为领域和结构领域的硬件描述,并且可以从最抽象的系统级一直到最精确的逻辑级,在描述数字系统时,可以使用前后一致的语义和语法跨越多个层次,并且使用跨越多个级别的混合描述模拟该系统。因此,它可以由高层次行为描述子系统及低层次详细实现子系统所组成的系统模拟。它有两个版本IEEEStd1076-1987LRM87和IEEEStd1076-1993LRM93,他们并不完全兼容,但做一些修改就可以兼容了。VHDL被广泛使用的基本原因在于它是一种标准语言,是与工具和工艺无关的语言,从而可以方便的进行移植和重用。使用VHDL语言描述的电路,
7、可以进行综合与仿真。然而,值得注意的事,尽管所有VHDL代码都可以仿真的,但并不是所有代码都是可综合的。VHDL语言与常规的顺序执行的计算机程序不同,VHDL从根本上讲是并发执行的。因此,我们通常称之为代码,而不是程序。在VHDL中,只有在进程、函数和过程内部的语句才是顺序执行的。VHDL语言的两个最直接的应用领域是可编程逻辑器件和专用集成电路。3 应用软件Quartus II我们设计运用QuartusII,是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整
8、PLD设计流程。QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设
9、计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。 4智力竞赛抢答器设计4.1设计的目的本次设计的目的就是在掌握EDA实验开发系统的初步使用基础上,了解EDA技术,了解并掌握VHDL硬件描述语言的设计方法和思想,通过学习的VHDL语言结合电子电路的设计知识理论联系实际,掌握所学的课程知识,学习VHDL基本单元电路的综
10、合设计应用。通过对智力竞赛抢答器的设计,巩固和综合运用所学课程,理论联系实际,提高设计能力,提高分析、解决计算机技术实际问题的独立工作能力。本文以现场可编程逻辑器件( FPGA ) 为设计载体,以硬件描述语言VHDL为主要表达方式,以Quartus开发软件设计的电子抢答器,具有抢答鉴别与锁存功能以及29秒答题限时功能,应用二极管和数码显示管为主要部件来设计扫描显示器。通过课程设计深入理解VHDL语言的精髓和掌握运用所学的知识,达到课程设计的目标。4.2设计的基本内容(1) 设计一个四组(人 ) 参加的智力竞赛抢答计时器,它具有四路抢答输入,主持人按下复位键后,系统复位进入抢答状态,计时显示初始
11、值; (2) 某组首先按下抢答键,该路抢答信号,竞赛抢答器能够设别最先抢答的信号,锁定该信号,同时扬声器响起,参赛小组的序号在数码管上显示;(3) 主持人对抢答结果进行确认,给出倒计时计数允许信号,开始回答问题,计时显示器从初始值开始以秒为单位倒计时,计数至0时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;(4) 当主持人给出倒计时计数禁止信号时,扬声器停止鸣叫;(6) 参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号,以免扬声器鸣叫,按下复位键,又可开始新一轮的抢答;5总体设计思路及分析5.1功能分析抢答信号判别电路在系统复位后,对A、B、C、D四路抢答信号进行判别,输出
12、端ALIGHT一DLIGHT与AD一 一对应,优胜者对应的XLIGHT为“1”( X为A,B,C,D ),其余的为“0”,且将结果锁存。完成抢答判别的同时,输出端stap输出有效信号,对扬声器进行选通。分频电路用于产生倒计时电路所需的周期为l s的时钟脉冲,分频系数视输入时钟cLK的频率而定。本次选用64HZ的clk,故进行拉64 分频。台号显示控制电路将输入信号D一A转换为二进制码,以驱动数码管,显示台号。倒计时及时间显示控制电路由stop信号控制;由复位信号RESET将答题时间作为初值赋给倒计时计数器;由计数允许信号jishi启动计数。输出信号为count1,count2,music与mu
13、sic1,其中music与music1为扬声器选通控制信号。扬声器控制电路使系统只在两种情况下输出驱动扬声器的脉冲信号:一种是倒计时计数器处于禁止计数状态( jishi无效 ),并且完成初始化,开始对抢答信号进行判别,当某参赛组抢先按下按键,系统在输出该组台号信息的同时,输出脉冲信号;一种是确认优先抢答的参赛组后,启动倒计时计数器计数( 使jishi有效 ),当计数到“0”时,输出脉冲信号。5.2 整体设计思想对于一个四人抢答器,四个选手在电路中的起始控制作用是一样的,当主持人宣布开始抢答时,谁先按下他前面的控制开关,他的灯就会亮,同时会有警报声响起并将抢答的组别号用数码管显示出来,而且这时其
14、他人再怎么按,也就不会亮了,说明每个人对其他人都有一个先发制人的作用,及每个人都在时间控制下,能锁存住其他选手的功能。当有一个指示灯亮了等待主持人确定,主持人确定以后计数器就开始从29开始倒计时,到0时还要警告声,直到主持人按下复位键为止。在选手答题过程中,如果在规定时间内答完,主持人按下暂停键,倒计时停止显示当前时间,待主持人按下复位键以后开始下一轮抢答,这样计数器开始工作就是在选手抢答以后在主持人的控制下工作。可以设四个人分别为输入端A,B,C,D;因为四个输入端在VHDL中,要求四个输入端应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个反馈,使得他们的输入无效,及他们
15、对应的指示灯不亮;所以我们可以也并行语句,让它们分为四个进程( process ),同时也要求每个进程中都有反馈信号传给其他进程语句中,这样就可以完成抢答器基础部分了。其次就是计数器部分,当有人开始进入回答部分,指示灯亮,同时警报器开始工作,当主持人确定以后计时开始并要求是倒计时方式用七段显示出,通过这些消息我们可知,主持人确认键即是计数器开始倒计时的信号,本设计中采用了元件例化( component ) 语句,在抢答器中给个选手已经开始回答了的信号插口,给计数器中的置零输入端,这样就基本上完成了设计,计数器采用倒计时方式,实现方式也很简单,只要给他们最初赋值为29,而后在每个上升沿来到减一,
16、具体设计情况还是看看程序设计部分吧。本设计由于蜂鸣器是在脉冲控制下才会发出明显声响,故我们在此加了一个分频器,具体请看程序。5.3 分频模块设计此程序实现了64hz的脉冲信号64分频,得到1hz脉冲信号,给倒计时提供脉冲信号。if(RISING_EDGE(CLK)then temp:=temp+1; if(temp=64 and ena = 1)then temp:=0;其仿真图如下图所示图5-1 分频仿真图如上图图3-1所示,程序进行了64 分频,即当计64个上升沿以后计数器减1.5.4 复位模块设计此程序将所有信号初始化,通过ean使数码管也初始化为初值29。if(RESET=1)then
17、 -fuweiLIGHT=0000;ALIGHT=0;BLIGHT=0;CLIGHT=0;DLIGHT=0; SET=0;A0=0;B0=0;C0=0;D0=0;ean=1;其仿真图如下图所示图5-2 复位仿真图由图3-2可以看出信号LIGHT初值为0,而倒计时初值为29.当A,B,C,D抢答时,A先抢答故A的灯ALIGHT为1( 即点亮 ) 同时数码管LIGHT显示为1,在有人抢答以后同时蜂鸣器(music0) 响起,当主持人按下确认键(即jishi键) 蜂鸣器停止再响,同时计时开始,复位(RESET) 以后所有数据初始化5.5 抢答模块设计抢答模块的程序设计如下begin A2=not A
18、1 ; B2=not B1 ; C2=not C1 ; D2=not D1 ;L1:process(A0) -qiang dabegin A1=(A0 and B2 and C2 and D2) ; end process L1;L2:process(B0)beginB1=(B0 and A2 and C2 and D2);end process L2;L3:process(C0)beginC1=(C0 and A2 and B2 and D2);end process L3;L4:process(D0)beginD1=(D0 and A2 and C2 and B2);end process
19、 L4;抢答模块符号图如下图所示图5-3 抢答器符号图此符号为抢答器抢答符号图,实现抢答优先及在抢答以后对他人的锁定功能。抢答模块仿真图如下所示图5-4 抢答模块仿真图此程序实现了对A, B, C, D四个人抢答信号处理,只要有一人抢答以后其他人均不能再次抢答实现对他人信号的屏蔽,经过A0,B0,C0,D0将A, B, C, D信号锁存,其对应的等分别为ALIGHT, BLIGHT, CLIGHT, DLIGHT,其对应的组别分别为1,2,3,4当有人抢答以后相应的等亮同时在数码管上显示其对应的组别号。按下reset后,数码管显示0,其对应的等也熄灭,所有值均被初始化。5.6 倒计时模块设计b
20、eginC1:process(SET,CLK,MUSIC1,ena)variable temp:integer range 0 to 255;beginif (SET=0) thenMUSIC1 = 0;HIGH = 0010;LOW = 1001;elsif(RISING_EDGE(CLK)thentemp:=temp+1; if(temp=64 and ena = 1)thentemp:=0; if(LOW=0000) then -daojishi shejiLOW=1001;if(HIGH=0000) thenHIGH=0010;else HIGH=HIGH-1;end if;else
21、LOW=LOW-1; end if; end if; end if;if(HIGH=0000 and LOW=0000)thenMUSIC1=CLK;end if; end process C1;倒计时模块符号图如下图:图5-5 倒计时符号图此器件主要实现倒计时功能,同时带有暂停控制位stop。倒计时仿真图如下:图5-6 倒计时暂停仿真图 由图5.6可以看出当选手在规定时间内答完题即倒计时没有减到0,主次人按下暂停键(即stop) 以后倒计时停止显示当前时间,同时蜂鸣器也不会响 图5-7 倒计时复位仿真图由图5.7可以看出,当选手答题时间超过规定时间时,蜂鸣器( music )响起,倒计时数码
22、管显示00,直到主持人按下复位键( RESET ) 以后,恢复初值,LIGHT显示0,倒计时数码管显示29,ALIGHT变为0( 即熄灭 ),进入下一轮的抢答。此程序主要功能是实现倒计时功能,当有人抢答以后蜂鸣器响起,在主持人确认以后开始倒计时29秒,如果在规定时间内回答完毕主此人则按下暂停键,停止计数显示当前时间如图5.6,如果超出规定时间则蜂鸣器响起,直到主此人按下复位键为止如图5.7,所有信号初始化,数码管显示29等待下一轮抢答。总结:由以上仿真图可知,该设计基本实现了原先的设计要求,并在此基础上添加了选手相关位置的显示灯等功能。5.7 硬件下载驱动其硬件连接图如下:图5-8 硬件连接图
23、此图为硬件连接以后,当D抢答成功,LIGHT显示为4,数码管从29倒计时开始,同时LED第4个等亮如图5.8所示。硬件大的引脚锁定如下图:图5-9 引脚锁定图此图为硬件连接时的引脚锁定图。6心得体会 通过这次EDA课程设计,我学到了很多的东西,不仅巩固以前所学过的知识,而且学到了很多在书本上所没有的知识。从而进一步加深了对EDA的了解,让我对它产生了浓厚的兴趣。这次课程设计让我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,还要把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到的问题,可以说是困难重重,这毕竟第一次做,
24、难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。这次出抢答器设计让我体会最深的一点就是,一定要保持一种严谨的态度,尤其是在引脚锁定的时候一定要仔细认真,否则会严重影响实验结果。而且我还意识到一点做事绝不能眼高手低,凡事想当然,只有自己亲自动手一遍一遍地查错改错才能使自己不断进步,并且从中会体会到成功的喜悦。总得来说这次只能抢答器的设计比较成功的。在设计中遇到了很多问题,尤其在下载到实验箱时,最后在老师的辛勤的指导下,终于下载调试成功。参考文献1 Voknei A.Pedroni.VHDL数字电路设计教程M.电子工业出版社,2
25、008.52 潘松,黄继业.EDA技术实用教程(第二版) M.科学出版社,2005.23 焦素敏.EDA应用技术M.清华大学出版社,2002.44 曹昕燕, 周凤臣, 聂春燕.EDA技术实验与课程设计M.清华大学出版社5 谭会生, 张昌凡.EDA技术及应用(第二版)M.西安电子科技大学出版社附录一-顶层头文件library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity xxx isport(A,B,C,D,RESET,jishi,stop:in std_logic;CLK:in std_logi
26、c;MUSIC:out std_logic;MUSIC0:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0);LIGHT:out std_logic_vector(6 downto 0);ALIGHT,BLIGHT,CLIGHT,DLIGHT:out std_logic);end xxx;architecture aaa of xxx iscomponent COUNTER29 is port(ean,jishi,SET,CLK,stop:in std_logic
27、;MUSIC,MUSIC0:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0);end component COUNTER29;component qiangda isport(A,B,C,D,RESET,jishi:in std_logic;CLK:in std_logic;ean,SET: out std_logic;LIGHT:out std_logic_vector(6 downto 0);ALIGHT,BLIGHT,CLIGHT,DLIGHT:out s
28、td_logic);end component qiangda; signal ean,SET:std_logic; beginU0:COUNTER29Port map(ean,jishi,SET,CLK,stop,MUSIC,MUSIC0,COUT1,COUT2); U1:qiangdaPort map(A,B,C,D,RESET,jishi,CLK,ean,SET,LIGHT,ALIGHT, BLIGHT,CLIGHT,DLIGHT); end aaa;-抢答模块程序library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UN
29、SIGNED.ALL; entity qiangda is port(A,B,C,D,RESET,jishi:in std_logic; CLK:in std_logic; ean,SET: out std_logic; LIGHT:out std_logic_vector(6 downto 0); ALIGHT,BLIGHT,CLIGHT,DLIGHT:out std_logic );end qiangda;architecture qiangda of qiangda issignal A0,B0,C0,D0:std_logic;signal A1,B1,C1,D1:std_logic;s
30、ignal A2,B2,C2,D2:std_logic;begin A2=not A1 ; B2=not B1 ; C2=not C1 ; D2=not D1 ;L1:process(A0) -qiang da begin A1=(A0 and B2 and C2 and D2) ; end process L1;L2:process(B0)beginB1=(B0 and A2 and C2 and D2);end process L2;L3:process(C0)beginC1=(C0 and A2 and B2 and D2);end process L3;L4:process(D0)beginD1=(D0 and A2 and C2 and B2);end process L4; L5:process(A1,B1,C1,D1,A,B,C,D,RESET) beginif(RESET=1)then -fuwei LIGHT=0000;ALIGHT=0;BLIGHT=0;CLIGHT=0;DLIGHT=0; SET=0;A0=0;B0=0;C0=0;D0=0;ean=1; else ean=0;if (A=1) thenA0=1;end if;if(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1