1、EDA技术课设资料 EDA技术课程设计报告题 目 智力抢答器的设计 学 院 信息科学与工程学院 专 业 电子信息工程 学生姓名 白奉强 学 号 201310312216 年级 2013 级指导教师 程 皓 职称 副 研 究员 2016 年 12 月 21 日课程设计题目: 智力抢答器的设计 学生姓名: 白奉强 设计报告成绩 (按照优、良、中、及格、不及格评定)指导教师评语:指导教师(签名) 年 月 日说明:指导教师评分后,设计报告交院实验室保存。智力抢答器的设计摘要:以四路抢答为基本概念。从实际应用出发,利用电子设计自动化( EDA)技术,用可编程逻辑器件设计具有扩充功能的抢答器。它以Veri
2、log HDL硬件描述语言作为平台,结合动手实验而完成的。它的特点是电路简单、制作方便、操作简单、方便、性能可靠,实用于多种智力竞赛活动。本抢答器的电路主要有四部分组成:鉴别锁存电路、FPGA主芯片EP1C3T144C8电路、计分电路以及扫描显示模块的电路,并利用Quartus II工具软件完成了Verilog HDL源程序编写和硬件下载。这个抢答器设计基本上满足了实际比赛应用中的各种需要。在实际中有很大的用途关键词:有限状态机(FSM);Verilog;智力抢答器目 录绪论 11. 课程背景 12. 选题的目的和意义 13. 主要的研究内容 1第1章 设计方案 21.1 有限状态机 21.2
3、 系统功能要求分析 21.3 系统整体设计 3第2章 抢答器的逻辑设计与仿真 42.1 模块描述 42.2 抢答器的源程序 4第3章 系统仿真结果 6第4章 绪论 6参考文献 8附录 8绪论课程背景 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的,EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至
4、对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成,现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术
5、。选题的目的和意义目的:1、熟悉verilog语言 2、学习智力抢答器的设计,调试,仿真以及对仿真波形的调试意义:理论联系实际,巩固和运用所学课程,提高分析、解决计算机技术实际问题的独立工作能力,通过对一个智力抢答器的设计,进一步加深对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉数字电路系统设计、制作与调试的方法和步骤。巩固所学课堂知识,理论联系实际,提高分析、解决计算机技术实际问题的独立工作能力。主要的研究内容1、熟悉verilog语言2、学习智力抢答器的设计,调试,仿真以及对仿真波形的调试(1) 设计制作一个可容纳四组参赛者的数字智力抢答器,每组设置一个抢答按钮供抢答者使用。
6、(2) 电路具有第一抢答信号的鉴别和锁存功能。在主持人将系统复位并发出抢答指令后,若参加者按抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别。此时,电路具备自锁功能,使别组的抢答开关不起作用。(3) 设置计分电路。每组在开始时预置成100分,抢答后主持人计分,答对一次加10分。(4) 设置犯规电路。对提前和超时抢答的组别鸣喇叭示警,并由显示电路显示出犯规组别。设计方案有限状态机 有限状态机是一类很重要的时序电路, 是许多数字系统的核心部件,也是一种抽象的机制,它在任意时刻都处于有限状态集合中的某一个状态。它可以应用于从系统分析到设计的所有阶段。有限状态机的优点在于简单易用,状态间的关系
7、清晰直观。有限状态机设计因其程序结构简单, 是VHDL 语言中一种较常用的描述方法。在一些实用逻辑系统中,有许多是利用有限状态机的设计方案来描述和实现的。状态机的工作方式是根据控制信号按照预先设定的状态进行顺序运行的,状态机是纯硬度数字系统中的顺序控制电路,因此状态机在其运行方式上类似于控制灵活和方便的CPU,而在运行速度和工作可靠性方面都优于CPU。在智力竞赛中用VHDL 状态机设置的抢答器, 可使比赛更加准确、公正、直观。同时还可以设置计分、犯规以奖励记录等多种功能。利用VHDL 状态机对系统进行整体的设计,使整个系统简洁直观、排错容易、高效稳定。系统功能要求分析根据系统设计要求可知,系统
8、的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统始终信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制断LDN,计时使能端EN,计时预置数据调整按钮TA、TB;系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LEDA、LEDB、LEDC、LEDD,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能;图 1 抢答器系统框图系统整体设计整个系统分为四个主要模块:抢答鉴别锁存模块QDJB;抢答计时模块JSQ;抢答计
9、分模块JFQ;译码模块YMQ。这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。系统的工作原理如下:当主持人按下使能端EN 时,抢答器开始工作。A、B、C、D 四位抢答者谁最先抢答成功则此选手的台号灯(LEDALEDD)将点亮,并且主持人前的组别号显示数码管将显示出抢答成功着的台号; 接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块JFQ 将给对应的组加分, 并将该组的总分显示在对应的选手计分数码管JF2_AJF0_A、JF2_BJF0_B、JF2_CJF0_C、JF2_DJF0_D 上。在此过程中,主持人可以采用计时手段(JSQ),打开计时器使计时预
10、置控制端LDN 有效,输入限制时间,使计时使能端EN 有效,开始计时。完成第一轮抢答后, 主持人清零接着重新开始,步骤如上。图2 所示为智力抢答器的组成框图。图2 智力抢答器的组成框图抢答器的逻辑设计与仿真模块描述抢答鉴别模块描述的是当系统清零信号CLR 为零时,A、B、C、D 四位抢答者开始抢答, 谁最先抢答成功,谁的台灯号将亮起来。这时其余选手的台灯将不起作用。原理是用verilog语言ifelsif 的并行运算关系,系统模块接受输入信号, 用if 语句判断最先输入的是那个组,一旦鉴别出第一个抢答者,系统将自动锁存结果,并在数码管上显示台灯号。抢答器的部分源程序module QiangDa
11、Qi(clk,inputEn,inputL1,inputL2,inputL3,inputL4,Sig1,Sig2,Sig3,Sig4,Led,Buzzer); / 一开始时声明有哪些端口input clk,inputEn,inputL1,inputL2,inputL3,inputL4;/输入口output Sig1,Sig2,Sig3,Sig4;output 0:7Led; output Buzzer;/输出口reg Sig1=1b1,Sig2=1b1,Sig3=1b1,Sig4=1b1;reg 0:7Led;reg Buzzer;/在输出口配置个寄存器,以便运算reg EnFlat=1b0;
12、/配置寄存器,EnFlat是表明开始抢答的标志位reg BuClk=1b0;/BuClk是蜂鸣器的标志位reg 0:7BuL=8d0;/BuL是做蜂鸣器的延时用always (posedge clk)/捕捉时钟begin if(inputEn=1b0)/初始化各按键并开始抢答 begin EnFlat=1b1;/初始化各个标志位和参数 Sig1=1b1; Sig2=1b1; Sig3=1b1; Sig4=1b1;/各个按键对应的LED控制端 Led=8b11111111;/静态数码管的控制端,有8位 BuClk=1b0; Buzzer=1b1;/蜂鸣器的控制管脚,低电平为发声音 end if(
13、EnFlat=1b1)/开始抢答 begin if(inputL1=1b0)/如果按键1按下 begin EnFlat=1b0;/禁止其他选手抢答 Sig1=1b0;/静态数码管显示序号1 Led=8b01101111;/对应的LED点亮 BuClk=1b1;/指示蜂鸣器发声 end else if(inputL2=1b0)/如果按键2按下 begin EnFlat=1b0;/禁止其他选手抢答 Sig2=1b0; Led=8b00011010; BuClk=1b1; end else if(inputL3=1b0) /如果按键3按下 begin EnFlat=1b0;/禁止其他选手抢答 Sig
14、3=1b0; Led=8b01001010; BuClk=1b1; end else if(inputL4=1b0)/如果按键4按下 begin EnFlat=1b0;/禁止其他选手抢答 Sig4=1b0; Led=8b01101001; BuClk=1b1; endend if(BuClk=1b1)/当蜂鸣器标志位置1时/进入此蜂鸣器处理程序 begin Buzzer=1b0;/蜂鸣器发声 BuL = BuL + 8d1;/延时变量加1if(BuL=8d255)/当到达延时的时间时关掉蜂鸣器 begin BuL=8d0;/延时变量复位 BuClk=1b0;/蜂鸣器标志位复位 Buzzer=1
15、b1;/蜂鸣器停掉 end endendEndmodule3仿真综合根据以上设计原理,我们进行仿真综合,分别得到如下的结果 图3抢答仿真波形图图4加减分模块仿真图图5重置模块图6 I/O引脚的选取第4章 结论以FPGA为控制核心设计的抢答器,开发周期短,功能升级方便,整个控制系统所需元件少,集成度较高,具有良好的稳定性和可靠性。经过仿真以及下载到FPGA开发板上测试,此次设计可以公正、准确、直观的判断第一抢答者,并对抢答进行计时,加减操作的计时,并通过LED显示并提示时间,以及复位抢答等功能,同时3个BCD数码管可以正确的显示第一抢答者的组号以及积分信息。同时通过测试验证了软件的按键消抖处理适
16、当,不会产生按键误判断的情况,以及状态机的程序设计方式结构清晰,易于查找程序的错误和进行改进。 参考文献1.阎石,数字电子技术基础(第四版).高等教育出版社,1998.112.康华光,电子技术基础(数字部分)第四版.高等教育出版社 ,20003.王道宪,CPLD/FPGA可编程逻辑器件应用与开发,北京,国防工业出版社,20044.郑崇勋,数字系统故障对策与可靠性技术,北京,国防工业出版社,19955.欧阳星明,数字逻辑,武汉 ,华中科技大学出版社 20006.张昌凡等,可编程逻辑器件及VHDL设计技术,广州,华南理工大学出版社,2001 7.李景华等,可编程逻辑器件与 EDA 技术,沈阳,东北
17、大学出版社,2000 8. 卢毅、赖杰,VHDL与数字电路设计,科学出版社9. 谭会生、张昌凡,EDA技术及应用,西安电子科技大学出版社10. 辛春艳,VHDL硬件描述语言,国防工业出版社 11李中发,数字电子技术,北京,中国水利水电出版社,2001.712夏路易、石宗义, 电路原理图与电路板设计教程 Protel 99 SE,北京,2002.6附录抢答模块begin if(EnFlat=1b1) begin if(inputL1=1b0) begin EnFlat=1b0; answer=3d1; Led2=8hf9; BuClk=1b1; end else if(inputL2=1b0)
18、begin EnFlat=1b0; answer=3d2; Led2=8ha4; BuClk=1b1; end else if(inputL3=1b0) begin EnFlat=1b0; answer=3d3; Led2=8hb0; BuClk=1b1; end else if(inputL4=1b0) begin EnFlat=1b0; answer=3d4; Led2=8h99; BuClk=1b1; end end End加减分数模块 if(answer =3d1)/第一组加减分 beginbegin if(add) score1=score1+1;/当主持人判定选手的回答正确时,按下
19、add键进行加分操作 else if(stu) score1=score1-1;/当主持人判定选手的回答错误时,按下stu键进行减分操作 end score=score1;/把第一组的分数赋值给分数寄存器 endif(answer =3d2)/第二组加减分 begin begin if(add) score2=score2+1;/当主持人判定选手的回答正确时,按下add键进行加分操作else if(stu) score2=score2-1;/当主持人判定选手的回答错误时,按下stu键进行减分操作 end score=score2; endif(answer =3d3)/第三组加减分 begin
20、 begin if(add) score3=score3+1;/当主持人判定选手的回答正确时,按下add键进行加分操作 else if(stu) score3=score3-1;/当主持人判定选手的回答错误时,按下stu键进行减分操作 end score=score3;endif(answer =3d4)/第四组加减分 beginbegin if(add) score4=score4+1;/当主持人判定选手的回答正确时,按下add键进行加分操作 else if(stu) score4=score4-1;/当主持人判定选手的回答错误时,按下stu键进行减分操作 end score=score4;
21、End倒计时模块begin if(EnFlat=1b1) begin if(cnt!=32d48000000)/计时实现1HZ分频 cnt=cnt+32d1; else begin cnt=32d0; Led1=8b111111111b1;/Led1左移一个单位,实现一秒的倒计时 end end if(Led1=8b0)/倒计时结束还没有按键按下,则抢答停止且蜂鸣器响 EnFlat=1b0; BuClk=1b1;End蜂鸣器模块begin if(BuClk=1b1)/当蜂鸣器标志位置1时 begin /进入此蜂鸣器处理程序 Buzzer=1b0;/蜂鸣器发声 BuL = BuL + 8d1;
22、/延时变量加1 end if(BuL=8d255)/当到达延时的时间时关掉蜂鸣器 begin BuL=8d0; /延时变量复位 BuClk=1b0;/蜂鸣器标志位复位 Buzzer=1b1;/蜂鸣器停掉 endEnd重置模块if(clr)/按下clr键以后各组参数重置,整个比赛重新开始beginEnFlat=1b1;/重置各个标志位和参数 Led1=8b11111111;/重置时8个Led灯全亮Led2=8b11111111; /选手号静态数码管(数码管为共阳极)的控制端,有8位Led3=8b11111111/选手分数显示数码管重置;BuClk=1b0; /蜂鸣器标志位重置 Buzzer=1b
23、1;/蜂鸣器的控制管脚重置,低电平为发声音score1=4d5;score2=4d5;score3=4d5;score4=4d5;/各组分数重置answer=8hff;/分数显示寄存器重置 End数码显示模块begin case(score) 4h0: Led3 = 8hc0; /显示0 4h1: Led3 = 8hf9; /显示1 4h2: Led3 = 8ha4; /显示2 4h3: Led3 = 8hb0; /显示3 4h4: Led3 = 8h99; /显示4 4h5: Led3 = 8h92; /显示5 4h6: Led3 = 8h82; /显示6 4h7: Led3 = 8hf8; /显示7 4h8: Led3 = 8h80; /显示8 4h9: Led3 = 8h90; /显示9 4ha: Led3 = 8hbf; /显示- default:Led3 = 8hff; /不显示 endcaseendendmodule
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1