基于VHDL的多路抢答器的设计.doc_第1页
基于VHDL的多路抢答器的设计.doc_第2页
基于VHDL的多路抢答器的设计.doc_第3页
基于VHDL的多路抢答器的设计.doc_第4页
基于VHDL的多路抢答器的设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆三峡学院重庆三峡学院 毕业设计(论文)毕业设计(论文) 题目题目 基于基于 vhdlvhdl 的多路抢答器的设计的多路抢答器的设计 院院 系系 应应 用用 技技 术术 学学 院院 专专 业业 电子信息工程(应电应本)电子信息工程(应电应本) 年年 级级 20092009 级级 学生姓名学生姓名 文文 超超 学生学号学生学号 200915254124200915254124 指导教师指导教师 赵威威赵威威 职称职称 副副 教教 授授 完成毕业设计(论文)时间完成毕业设计(论文)时间 20132013 年年 1 1 月月 文超:基于 vhdl 的多路抢答器的设计 基于vhdl的多路抢答器的设计 文超 重庆三峡学院应用技术系电子信息工程(应用电子技术方向)专业 2009 级 重庆万州 404000 摘要 抢答器作为一种电子产品,早已广泛应用于各种智力竞赛和知识竞赛场合,是竞赛问 答中一种常用的必备装置电路结构形式多种多样。 本设计使用 vhdl 语言设计一个四路数字竞赛抢答器系统。vhdl 是一种全方位的硬 件描述语言,几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设 计过程都可以用 vhdl 来完成。本文阐述了 eda 的概念和发展、vhdl 语言的优点和语法 结构并分析讲解了四路数字竞赛的各模块的功能要求、基本原理以及实现方法。本系统的设 计就是采用 vhdl 硬件描述语言编程,基于 quatusii6.0 平台进行编译和仿真来实现的,其 采用的模块化、逐步细化的设计方法有利于系统的分工合作,并且能够及早发现各子模块及 系统中的错误,提高系统设计的效率。抢答器的主要功能模块是是:1、对第一抢答信号的鉴 别和锁存功能;2、计分功能。3、数码显示 ;4、答题限时功能。在本设计主要讲述抢答、计分 和警告的功能。 关键词: 抢答器 eda vhdl based on the design of the multi-way responder vhdl wen chao chongqing three gorges college of applied technology department of electronic and information engineering (applied electronics technology direction) professional 2009 chongqing wanzhou 404000 abstract:responder is a kind of electronic products, has been widely used in all kinds of intelligence competition and knowledge contests occasions, is contest answers must have a common device circuit structure forms. the design of the use of vhdl language design a four way race responder digital system.vhdl is a full range of hardware description language, covering almost the past various hardware description language function, the top-down or bottom-up circuit design process can use vhdl to complete.this paper expounds the concept and the development of eda, vhdl language advantages and grammatical structure and analysis on the four digital competition each module functional requirements, principle and implementation method.the design of this system is the use of vhdl hardware description language, based on quatusii6.0 platform compilation and simulation to achieve, the modular, stepwise refinement design method is helpful for system of division of labour, and early identification of each module and the system error, improve the efficiency of system design.vies to answer first the main function module is: 1, the first vies to answer first the differential signal and latch function; 2, score function.in 3, a digital display; 4, the answer time limit function.in this design is mainly about answering, scoring and warning function. key words: responder eda vhdl 目录 文超:基于 vhdl 的多路抢答器的设计 1 绪论1 2 整体设计方案1 2.1 系统设计要求1 2.2 系统设计方案 2 3 子模块的设计思想 3 3.1 抢答器模块 3 3.2 计时模块 5 3.3 计分模块 6 3.4 译码显示模块 8 3.5 抢答器的系统实现 9 4 多路抢答器子模块的仿真验证 11 4.1 鉴别模块的仿真验证 11 4.2 计时模块的仿真验证 12 4.3 计分模块的仿真验证 12 4.4 数显模块的仿真验证 14 4.5 系统整体的仿真验证 15 5 总结 16 5.1 多路抢答器设计结果16 5.2 对设计的建议16 致谢17 参考文献17 附录 1 抢答器鉴别模块源代码18 2 报警模块源代码 19 3 计分模块源代码 20 2009 届电子信息工程(应用电子技术方向)专业毕业设计(论文) 1 1 绪论 随着集成技术的发展,尤其是中、大规模和超大规模集成电路的发展,数字电子技术 的应用越来越多地渗透到国民经济的各个部门,目前数字电子技术已经广泛应用于计算机、 自动控制、电子测量仪表、电视、雷达、通信等各个领域。其中,抢答器就是典型的一种 运用数字集成的设备。 在日常生活中,各种智力竞赛越来越多,而抢答器是必不可少的设备之一,答题时一 般分为必答和抢答两种。必答有时间限制,到时要告警。而抢答则要求参赛者做好充分准 备,由主持人宣读完题目后,参赛者开始抢答,谁先按下按钮,就由谁答题,但竞赛过程 中很难准确判断出谁先按下按键,因此使用抢答器来完成这一功能是很有必要的。它能够 准确、公正、直观地判断出首轮抢答者,并且通过抢答器的数码显示和警示蜂鸣等方式指 示出首轮抢答者。 以下几章主要介绍抢答器的抢答鉴别、计分和报警功能的实现,vhdl 语言的特点及发 展趋势,quatusii6.0 开发平台的仿真等。 2 整体方案设计 2.1 系统设计要求 一般来说,设计一台智能抢答器,必须能够准确判断出第一位抢答者,并且通过数显、 蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定的回答限制时间,让抢答 者在规定时间内答题,主持人根据答题结果实行增减分的操作,并将分数显示在屏幕上, 评出最终赢家。所以我们在设计智能抢答器的模块需要满足鉴别、计时、计分、数显等功 能,具体设计要求如下: (1)抢答器可容纳四组选手,并为每组选手设置一个按钮供抢答者使用;为主持人 设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢答开始; (2)电路具有对第一抢答信号的锁存、鉴别和显示等功能。在主持人将系统复位并 发出抢答指令后,蜂鸣器提示抢答开始,计时显示器显示初始时间并开始倒计时,若参赛 选手按下抢答按钮,则该组别的信号立即被锁存,并在组别显示器上显示该组别,同时扬 声器也给出音响提示,此时,电路具备自锁功能,使其他抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复 位键,开始新一轮的抢答。 (4)抢答器具有限时抢答的功能,且一次抢答的时间由主持人设定,本抢答时间设 定为 60 秒。当主持人启动开始键后,要求计时器采用倒计时,同时最后十秒扬声器会发出 声响提示; (5)参赛选手在设定的时间内抢答,则抢答有效,定时器停止工作,主持人根据抢 答结果给出分数,并由数码管显示选手的组别抢答分数,并一直保持到主持人将系统清零 文超:基于 vhdl 的多路抢答器的设计 2 为止。 2.2 系统设计方案 本设计为四路智能抢答器,所以这种抢答器要求有四路不同组别的抢答输入信号,并 能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别;对回答问题所用的时 间进行计时、显示、超时报警、预置答题时间,同时该系统还应有复位、倒计时启动功能。 抢答过程:主持人按下系统复位键(rst) ,系统进入抢答状态,计时模块和计分模块 输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将 其余三路抢答信号封锁,同时扬声器发出声音提示,组别显示模块送出信号给数码显示模 块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人 对抢答结果进行确认,随后,计时模块送出倒计时计数允许信号,开始回答问题,计时显 示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过 数码显示模块将成绩显示出来。计时至 0 时,停止计时,扬声器发出超时报警信号,以中 止未回答完问题。当主持人给出倒计时停止信号时,扬声器停止鸣叫。若参赛者在规定时 间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。主持人按下复位 键,即 rst 为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。 此抢答器的设计中采用自顶向下的设计思路,运用 vhdl 硬件描述语言对各个模块进行 层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。 【3】系统的总 体框图如下: 图 2-1 系统的总体框图 2009 届电子信息工程(应用电子技术方向)专业毕业设计(论文) 3 2.3 子模块的设计思想和实现 根据对抢答器的功能要求,把要设计的系统划分为五个功能模块:抢答信号鉴别模块、 计时模块、计分模块、数码显示模块和扬声器控制电路,具体的说,显示模块又包含最先 抢答的组别显示电路、计时值显示电路和计分显示电路。计时模块、计分模块、数码显示 模块和扬声器控制电路, 3.1 抢答鉴别模块 抢答鉴别模块用来准确直观地判断 a、b、c、d 四组抢答者谁最先按下按钮,并为显示 端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,是整个系 统的核心部分。同时组别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进 行加减分的操作。 抢答鉴别模块的元件图如下图所示: 图 3-1 鉴别模块元件框图 引脚作用: 输入信号:各组的抢答按钮 a、b、c、d,系统清零信号 ini。 输出信号: 各组的抢答按钮显示端 a1、b1、c1、d1,组别显示端 g30。 原理:第一个按下键的小组,抢答信号判定电路 lock 通过缓冲输出信号的反馈将本参 赛组抢先按下按键的信号锁存,并且以异步清零的方式将其他参赛组的锁存器清零,组别 显示、计时和计分会保存到主持人对系统进行清零操作时为止。当 ini=1 时系统复位,使 组别显示信号 g=0000,各组的指示灯信号 a1=0,b1=0,c1=0,d1=0;当 ini=0,即低电平 有效,使其进入抢答鉴别状态,到 clk 的上升沿到来时,以 a 组抢答成功为例,当输入信 号为 a=1,b=0,c=0,d=0,输出信号 g=1000,a1=1,即为鉴别出 a 组抢答成功,同时屏蔽 其他组的输入信号,以免发生错误。同理其他组别抢答成功也是这样的鉴别过程。 【3】 备注:理论上来说,a、b、c、d 四组抢答,应该有从 00001111 等 16 种可能情况, 但是由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出的鉴别,所以在这 里两组以上同时抢答成功的可能性非常小,因此可以只设计四种情况,即 a、b、c、d 分别 为 1000、0100、0010、0001,这大大简化了电路的设计复杂性。 其用 vhdl 语言进行编程的流程图如下图所示: 文超:基于 vhdl 的多路抢答器的设计 4 图 3-2 抢答鉴别模块的流程图 3.2 计时模块 当抢答鉴别模块成功判别出最先按下抢答按钮的参赛组后,在成功鉴别出哪组最先抢 答后,主持人按下计时信号,则进入计时状态。计时模块可分作两部分:(1)预置数; (2)60 秒倒计时。60 秒时间用两个数码管 qa,qb 显示,其中 qa 表示 60 秒的个位,qb 表示 60 秒的十位。计时模块开始工作从预置初始值开始以秒计时,计时至 0 秒时停止,时 间耗尽时,扬声器会发出超时报警信号,以中止答题。 图 3-3 计时模块的元件图 该系统输入信号有:系统清零信号 clr,计时预置控制端 ldn,计时使能端 en,系统 时钟信号 clk,计时预置数据调整按钮 ta、tb。系统输出信号有:倒计时输出端 qa30、 qb30。 当清零信号 clr=1 时,模块输出信号 qa=0000 ,qb=0000。当预置数控制信号 ldn=1 可通过 ta 来调整 qa,ta 来一次高电平,则 qa 的数值就加 1;用 tb 来调整 qb,通过这两 2009 届电子信息工程(应用电子技术方向)专业毕业设计(论文) 5 个调整信号可调整参赛者答题所需要的时间。在 clr=0,ldn=0,en=1 时,通过时钟信号 clk 的上升沿来进行 60 秒到计时。 【1】其用 vhdl 语言进行编程的流程图如下: 开始 ldn=0 clr= 0 ldn=1 clk 上 升沿 en=1 ta=1 ta=0 qalede lede lede lede lede =“0000“; warns=1; end case ; else lede=“0000“;warns=0; end if; end process; end one; 3、计分模块源代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity score is port(clk,sub,add,clr:in std_logic; choose: in std_logic_vector(3 downto 0); aa0,aa1,bb0,bb1,cc0,cc1,dd0,dd1: buffer std_logic_vector(3 downto 0); 2009 届电子信息工程(应用电子技术方向)专业毕业设计(论文) 19 end score; architecture rtl of score is begin process( choose , clk ,sub , add ,clr) begin if(clr=1) then aa1=“0001“;aa0=“0000“; bb1=“0001“;bb0=“0000“; cc1=“0001“;cc0=“0000“; dd1=“0001“;dd0=“0000“; elsif(clkevent and clk=1) then if(add=1) then if(choose=“0001“) then if(aa0=“1001“) then aa0=“0000“; if(aa1=“1001“) then aa1=“0000“; else aa1=aa1+1; end if; else aa0=aa0+1; end if; elsif (choose=“0010“) then if(bb0=“1001“) then bb0=“0000“; if(bb1=“1001“) then bb1=“0000“; else bb1=bb1+1; end if; else bb0 = bb0+1; end if; elsif( choose=“0100“) then if(cc0=“1001“) then cc0=“0000“; if(cc1=“1001“) then 文超:基于 vhdl 的多路抢答器的设计 20 cc1=“0000“; else cc1=cc1+1; end if; else end if; elsif (choose=“1000“) then if(dd0=“1001“) then dd0=“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论