基于vhdl智能抢答器2设计说明书_第1页
基于vhdl智能抢答器2设计说明书_第2页
基于vhdl智能抢答器2设计说明书_第3页
基于vhdl智能抢答器2设计说明书_第4页
基于vhdl智能抢答器2设计说明书_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、智能抢答器的设计毕业论文专业 :电子测量技术与仪器班级 :09251姓名 :肖开通指导老师:柏淑红老师摘要伴随着集成电路(IC)技术的发展,EDA技术已经成为现代电子设计的发展趋势,并在各大公司、企事业单位和科研教学部门广泛使用。VHDL是一种全方位的硬件描述语言,几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。本文阐述了EDA的概念和发展、VHDL语言的优点和语法结构并分析讲解了智能抢答器的各模块的功能要求、基本原理以及实现方法。本系统的设计就是采用VHDL硬件描述语言编程,基于Quartus II平台进行编译和仿真来实现的,其采用的模块化、

2、逐步细化的设计方法有利于系统的分工合作,并且能够及早发现各子模块及系统中的错误,提高系统设计的效率。本设计主要的功能是:1.对第一抢答信号的鉴别和锁存功能; 2.限时功能3.记分功能4.数码显示。关键词电子设计自动化(EDA);VHDL;抢答器;自顶向下的设计方法智能抢答器的设计III1 绪论11.1 EDA技术的发展11.2 智能抢答器的市场现状和EDA技术的应用11.3 EDA技术的设计优势21.4 论文结构22 系统设计的辅助工具32.1 传统的数字系统设计方法和现代的数字系统设计方法比较32.2 VHDL硬件描述语言概述42.3硬件平台QuartusII概述52.3.1 Quartus

3、 II介绍52.3.2 Quartus II设计流程及注意事项52.3.3 Quartus II的设计优势应用举例63 智能抢答器系统的设计与实现83.1 抢答器系统设计要求83.2系统总体设计思想83.3子模块的设计思想和实现93.3.1 鉴别模块的设计与实现103.3.2 计时模块的设计与实现113.3.3 计分模块的设计与实现134 智能抢答器模块的仿真验证184.1鉴别模块的仿真验证184.2计时模块的仿真验证194.3计分模块的仿真验证204.4数显模块的仿真验证224.5综合仿真验证23结束语25参考文献26附录27附录1 抢答鉴别模块VHDL程序(QDJB.VHD)27附录2 抢

4、答计时模块VHDL程序(JSQ.VHD)28附录3 抢答计分模块VHDL程序(JFQ.VHD)30附录4 译码器VHDL程序(YMQ.VHD)351 绪 论1.1 EDA技术的发展 人类社会已进入到高度发达的信息化社会,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管;后者的核心就是EDA技术。【1】EDA是指以计算机为工作平台,融合了应用电子技术、计算机技

5、术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计以及PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,但是面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集体化设计黄精,改变传统的设计思路,将精力集中到设计构想、方案比较和寻找优化设计等方面,需要以最快的速度,开发出性能优良、质量一流的电子产品,对EDA技术提出了更高的要求。未来的EDA技术将在仿真、时序分析、集成电路自动测试、高速印刷版设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的方向

6、发展。1.2 智能抢答器的市场现状和EDA技术的应用 智力竞赛是“快乐学习”这一教育模式的典范,它采用在规定的一段时间内抢答和必答等方式,在给人们的生活带来乐趣的同时,也使参与者和观众在愉悦的氛围中学到一些科学知识和生活知识,因此很受大家的喜欢。智力抢答器在智力竞赛中起到很重要的角色,能够准确、公正、直观地判断出首轮抢答者,并且通过抢答器的数码显示和警示蜂鸣等方式指示出首轮抢答者。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、

7、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。 所以从目前的市场情况来看,这个课题的研究很有发展前景。1.3 EDA技术的设计优势传统的设计方法采用自底向上的设计方法,一般先按电子系统的具体功能要求进行功能划分,然后对每

8、个子模块画出真值表,用卡诺图进行手工逻辑简化,写出布尔表达式,画出相应的逻辑线路图,再据此选择元器件,设计电路板,最后进行实测与调试,由于无法进行硬件系统功能仿真,如果某一过程存在错误,查找和修改十分不便,所以这是一种费时、费力的设计方法,而现代电子设计技术(EDA)是自顶向下且先进高效的。在电子产品的设计理念、设计方式、系统硬件构成、设计的重用性、知识产权、设计周期等方面,EDA技术具有一定的优势。所以本次设计的抢答器抛弃了传统的设计方法,选择了采用主流的EDA技术进行设计。1.4 论文结构第一章 绪论部分,介绍了该课题的发展前景、现状以及EDA技术的设计优势等;第二章 概述整个系统设计的设

9、计元素;第三章 详细介绍用VHDL语言对智能抢答器的设计和实现;第四章 各功能模块的仿真。2 系统设计的辅助工具 此次设计是按照"自顶向下"的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。这样的设计方法被称为高层次的电子设计方法。具体介绍如下:2.1 传统的数字系统设计方法和现代的数字系统设计方法比较传统的数字系统设计方法:基于电路板的设计方法采用固定功能的器件(通用型器件),通过设计电路板来实现系统功能,在系统硬件设计的后期进

10、行仿真和调试现代的数字系统设计方法:基于芯片采用PLD,利用EDA开发工具,通过芯片设计来实现系统功能,在系统硬件设计的早期进行仿真。此系统的设计就是采用的现代的数字系统设计方法EDA的设计方法。两种设计方法的具体步骤如下:图2-1两种设计方法的具体步骤其与传统的设计方法的具体优劣比较如下表:表2-1 传统设计方法 vs EDA设计方法 由以上两对比图、表可知,智能抢答器的设计采用自顶向下的设计方法较优。而传统的电子设计的基本思路还是选择标准集成电路"自底向上"(Bottom-Up)地构造出一个新的系统,这样的设计方法就如同一砖一瓦地建造金字塔,不仅效率低、成本高而且还容易

11、出错。2.2 VHDL硬件描述语言概述硬件描述语言(HDL-Hardware Description Language)是一种用于设计硬件电子系统的计算机语言,早期的硬件描述语言,如ABEL-HDL、AHDL,是由不同的EDA厂商开发的,互相不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上缺陷,1985年美国国防部正式推出VHDL(Very High Speed IC Hardware Description Language)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE STD-1076)。【2】VHDL用软件编程的方式来描述电子系统的逻辑功能、电路

12、结构和连接形式,即可以利用软件工具将VHDL源码自动地转化为文本方式表达的基本逻辑元件连接图,即网表文件。与传统的门级描述方式相比,它更适合大规模系统的设计,而且VHDL语言可读性强,易于发现和修改错误。例如在智能抢答器的设计中,我们可以用简单的几个语句完成对整个系统的结构组成以及功能的描述及设计,同时,设计采用自顶向下的设计方法,这种模块化、逐步细化的方法有利于系统的分工合作。【3】用VHDL对系统进行设计,可以在电子设计的各个阶段、各个层次对于编辑好的程序,在Altera公司提供的QuartusII平台上进行编译、仿真,然后通过时序图可以看出了此编程是否符合预想的设计功能,如果不符合,在硬

13、件测试前就可以及早发现各子模块及系统中的错误,这样的设计特点无疑将提高系统设计的效率。除此之外,用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。2.3硬件平台QuartusII概述2.3.1 Quartus II介绍Quartus II是Altera 公司单芯片可编程系统(SOPC) 设计的综合性环境,也是适合SOPC的最全面的设计环境。它拥有现场可编程门阵列(FPGA) 和复杂可编程逻辑器件(CPLD) 设计的所有阶段的解决方案。Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延

14、迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。同时,Altera的Quartus II可编程逻辑软件还属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具。Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块进行调用,从而解决了原理图与HDL混合输入设计的问题,并且在设计输入之后,Quartus II的编译器将给出设计输入的错误

15、报告。2.3.2 Quartus II设计流程及注意事项基于Quartus II的VHDL文本输入设计流程如下图所示:图2-2基于Quartus II的VHDL文本输入设计流程 由上图可以看出,这样的设计方法对于电子设计的各个阶段、各个层次的操作都在Altera公司提供的QuartusII平台上进行编译、仿真测试,然后通过仿真时序图可以看出了此编程是否符合预想的设计功能,如果不符合,在硬件测试前就可以及早发现各子模块及系统中的错误,这样的设计特点无疑将提高系统设计的效率。 在设计实验过程中有以下几点需要注意: 1.在编程时要注意信号与变量的区别,并能正确定义和应用。 2.在创建工程时,要注意工

16、程名和文件名和实体名要保持一致; 3.设计结束时间时最好是时间周期的15倍,否则可能会出现时序图图像重叠不好识别的现象;4.仿真中,适当进制的转换有时候可以更使观察者更明显地看出来时序图的功能。2.3.3 Quartus II的设计优势应用举例随着逻辑设计复杂性的不断增加,仅依赖于软件方式的仿真测试来了解设计系统的硬件功能已经远远不够了,而需要重复进行硬件系统测试的测试也变得更为困难。嵌入式逻辑分析仪SignalTapII的使用就解决了这一问题。它可以随设计文件一并下载于目标芯片中,用以捕捉目标芯片内部系统信号节点处的信息或总线上的数据流,而又不影响原硬件系统的正常工作。【4】嵌入式逻辑分析仪

17、SignalTapII有很多的优点:(1)允许对设计层次的模块的信号节点进行测试,可以使用多时钟驱动;(2)利用Signal Tap II成功的采集了FPGA内部信号的波形,不占用额外的I/O引脚;(3)Signal Tap II为硬件板级调试工具,它采集的波形是工程下载后的实时波形,方便设计者查找引起设计缺陷的原因;(4)节约成本。Signal Tap II集成在Quartus II软件中,无需另外付费;(5)能通过设置以确定前后触发捕捉信号信息的比例.除此之外,应用Signal Tap II还能解决各种各样的问题,如外部存储器的双向数据口的实时波形检测、驱动模块的并串转换波形等。3 智能抢

18、答器系统的设计与实现3.1 抢答器系统设计要求 一般来说,设计一台智能抢答器,必须能够准确判断出第一位抢答者,并且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定的回答限制时间,让抢答者在规定时间内答题,主持人根据答题结果实行增减分的操作,并将分数显示在屏幕上,评出最终赢家。所以我们在设计智能抢答器的模块需要满足鉴别、计时、计分、数显等功能,具体设计要求如下: (1)抢答器可容纳八组选手,并为每组选手设置一个按钮供抢答者使用;为主持人设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢答开始; (2)电路具有对第一抢答信号的锁存、鉴别和显示等功能。在主持人将系统复位并

19、发出抢答指令后,计时显示器显示初始时间并开始倒计时,若参赛选手按下抢答按钮,则该组别的信号立即被锁存,并在组别显示器上显示该组别,同时扬声器也给出音响提示,此时,电路具备自锁功能,使其他抢答按钮不起作用。 (3)如果无人抢答,计时器倒计时到零,蜂鸣器有抢答失败提示,主持人可以按复位键,开始新一轮的抢答。 (4)抢答器具有限时抢答的功能,且一次抢答的时间由主持人设定。当主持人启动开始键后,要求计时器采用倒计时; (5)参赛选手在设定的时间内抢答,则抢答有效,定时器停止工作,主持人根据抢答结果给出分数,并由数码管显示选手的组别、抢答分数,并一直保持到主持人将系统清零为止。【6】3.2系统总体设计思

20、想 本设计为八路智能抢答器,所以这种抢答器要求有八路不同组别的抢答输入信号,并能识别最先抢答的信号,直观地通过数显和蜂鸣等方式显示出组别;对回答问题所用的时间进行计时、显示、超时报警、预置答题时间,同时该系统还应有复位、倒计时启动功能。抢答过程:主持人按下系统复位键(RST),系统进入抢答状态,计时模块和计分模块输出初始信号给数码显示模块并显示出初始值。当某参赛组抢先将抢答键按下时,系统将其余七路抢答信号封锁,同时扬声器发出声音提示,组别显示模块送出信号给数码显示模块,从而显示出该抢答成功组台号,并一直保持到下一轮主持人将系统清零为止。主持人对抢答结果进行确认,随后,计时模块送出倒计时计数允许

21、信号,开始回答问题,计时显示器则从初始值开始以计时,在规定的时间内根据答题的正误来确定加分或减分,并通过数码显示模块将成绩显示出来。计时至0时,停止计时,扬声器发出超时报警信号,以中止未回答完问题。当主持人给出倒计时停止信号时,扬声器停止鸣叫。若参赛者在规定时间内回答完为题,主持人可给出倒计时计数停止信号,以免扬声器鸣叫。主持人按下复位键,即RST为高电平有效状态,清除前一次的抢答组别,又可开始新的一轮的抢答。此抢答器的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。【7】系统的总体框图如下:图3-1系统的

22、总体框图3.3子模块的设计思想和实现 根据对抢答器的功能要求,把要设计的系统划分为五个功能模块:抢答信号鉴别模块、计时模块、计分模块、数码显示模块和扬声器控制电路,具体的说,显示模块又包含最先抢答的组别显示电路、计时值显示电路和计分显示电路。计时模块、计分模块、数码显示模块和扬声器控制电路,具体的说,显示模块又包含最先抢答的组别显示电路、计时值显示电路和计分显示电路。【8】3.3.1 鉴别模块的设计与实现抢答鉴别模块用来准确直观地判断A、B、C、D、E、F、G、H八组抢答者谁最先按下按钮,并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,是整个系统的核心部分。同时组

23、别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进行加减分的操作。 抢答鉴别模块的元件图如下图所示: 图3-2 鉴别模块元件框图 引脚作用:输入信号:各组的抢答按钮A、B、C、D、E、F、G、H系统清零信号CLR。输出信号:各组的抢答按钮显示端A1、B1、C1、D1,E1、F1、G1、H1组别显示端G7.0。原理:第一个按下键的小组,抢答信号判定电路QDJB通过缓冲输出信号的反馈将本参赛组抢先按下按键的信号锁存,并且以异步清零的方式将其他参赛组的锁存器清零,组别显示、计时和计分会保存到主持人对系统进行清零操作时为止。当CLR=1时系统复位,使组别显示信号G=00000000,各组的指示

24、灯信号A1=0,B1=0,C1=0,D1=0,E1=0,F1=0,G1=0,H1=0;当CLR=0,即低电平有效,使其进入抢答鉴别状态,到CLK的上升沿到来时,以A组抢答成功为例,当输入信号为A=1,B=0,C=0,D=0,E=0,F=0,G=0,H=0输出信号G=00000001,A1=1,即为鉴别出A组抢答成功,同时屏蔽其他组的输入信号,以免发生错误。同理其他组别抢答成功也是这样的鉴别过程。【9】备注:理论上来说,A、B、C、D、E、F、G、H八组抢答,应该有从0000000011111111等28种可能情况,但是由于时钟信号的频率很高而且是在时钟信号上升沿的状况下才做出的鉴别,所以在这里

25、两组以上同时抢答成功的可能性非常小,因此可以只设计八种情况,即A、B、C、D、E、F、G、H分别为00000001、00000010、00000100、00001000、00010000、00100000、01000000、10000000这大大简化了电路的设计复杂性。 其用VHDL语言进行编程的流程图如下图所示: 图3-3 抢答鉴别模块的流程图3.3.2 计时模块的设计与实现当抢答鉴别模块成功判别出最先按下抢答按钮的参赛组后,在成功鉴别出哪组最先抢答后,主持人按下计时信号,则进入计时状态。计时模块可分作两部分:(1)预置数;(2)预置时间倒计时。60秒时间用两个数码管QA,QB显示,其中QA

26、表示预置时间的个位,QB表示预置时间的十位。计时模块开始工作从预置初始值开始以秒计时,计时至0秒时停止,时间耗尽时,以中止答题。图3-4 计时模块的元件图该系统输入信号有:系统清零信号CLR,计时预置控制端LDN,计时使能端EN,系统时钟信号CLK,计时预置数据调整按钮TA、TB。系统输出信号有:倒计时输出端QA3.0、QB3.0。当清零信号CLR=1时,模块输出信号QA=0000 ,QB=0000。当预置数控制信号LDN=1可通过TA来调整QA,TA来一次高电平,则QA的数值就加1;用TB来调整QB,通过这两个调整信号可调整参赛者答题所需要的时间。在CLR=0,LDN=0,EN=1时,通过时

27、钟信号CLK的上升沿来进行我们用TA、TB所设计的时间来倒计时。【10】其用VHDL语言进行编程的流程图如下:开始LDN=0CLR=0LDN=1CLK上升沿EN=1TA=1TB=1QA<=QA+1QB<=QB+1图3-5 抢答计时模块的流程图3.3.3 计分模块的设计与实现计分模块的运行方式是按照十进制进行加减,即当时钟出现上升沿时就进行加一或者减一的操作。 记分模块为哪组进行记分取决于鉴别模块的输入信号G,当G=00000001时表示A组最先抢答,则在此模块中为A组记分,当G=00000010时表示B组最先抢答,则在此模块中为B组记分,当G=00000100时表示C组最先抢答,则

28、在此模块中为C组记分,当G=00001000时表示D组最先抢答,则在此模块中为D组记分。以此类推,当G的信号分别为00010000,00100000,01000000,10000000时,则分别表示E、F、G、H最先抢答。 以A组为例来说明此模块的设计,当复位信号RST=1时,系统复位且A组的分值显示初始值,为100分。当RST=0时,如果该组选手答题正确,则主持人按下加分键,即ADD=1,此时对该组进行加分操作。计分模块的元件图如下图所示:图3-计分模块的元件图系统的输入信号有:计分复位端RST,加分按钮端ADD,组别号输入端CHOS7.0。系统的输出信号有:A组分数输出端AA23.0、AA

29、13.0、AA03.0,B组分数输出端BB23.0、BB13.0、BB03.0,C组分数输出端CC23.0、CC13.0、CC03.0,D组分数输出端DD23.0、DD13.0、DD03.0,E组分数输出端 EE23.0、EE13.0、EE03.0,F组分数输出端FF23.0、FF13.0、FF03.0,G组分数输出端GG23.0、GG13.0、GG03.0,H组分数输出端HH23.0、HH13.0、HH03.0。由于设计是通过输出每个抢答选手的分数,就用了三个输出端,分别显示分数的个位十位百位的数。计分模块用VHDL语言进行编程的流程图如下:图3-7计分模块的设计状态图3.3.4 译码显示模

30、块的设计与实现该模块实际上是一个译码器,作用是用来显示组别,时间和成绩,其主要原理是四位二进制BCD编码转换成七段二进制数字,以阿拉伯数字的形式输出在数码管上,使观众能够更直观的看到结果。译码器的译码对照表3-1如下所示:显示的数字/字母BCD编码七段数码管2进制000000111111100010000110200101011011300111001111401001100110501011101101601101111101701110000111810001111111910011101111XXXXX0000000表3-1 译码器的译码对照表备注 :在程序中只考虑0000-1001(即

31、0-9)的情况,将其转化为相应的七段显示器的码子,其他情况不予考虑。3.3.5 抢答器的系统实现单独模块只有彼此联系起来构成一个完整的系统,才能实现其功能,这个过程有两种实现方法:元件例化。也是用编程的方式将它们各个程序、信号、输入输出之间的关系用VHDL语言来叙述清楚,还关系到程序的调用问题,需要设计者思路清晰,设计合理;元器件图示连线。这种连线方法思路清晰可见,而且用的时候很简单方便,出现错误也很好检查。在设计中选择的是这种方法。通过总的顶层元件图可以很清晰的看到模块连接的原理。图3-8 顶层元件图附表:输入/输出引脚的作用:RST积分环节初始复位ADD计分环节加分CLR初始清零CLK时钟

32、信号ABCDEFGH八组抢答信号LDN计时复位EN计时暂停TA,TB计时置数LED7.0八组选手的抢答灯GAO DIN倒计时高低位显示AA2、AA1、AA0HH2、HH1、HH0各组分数显示 表3-2 输入/输出引脚的作用注:本设计中,抢答器组别信号A、B、C、D,E、F、G、H为高电平时,其功能为有效状态。同样,系统清零信号CLR、预置及倒计时控制信号LDN,亦为高电平有效。当CLR有效时,抢答信号判别电路清零,为判别优先抢答信号做出准备。当计时使能端EN为低电平,预置时间设置信号LDN=1时,通过计时预置数据调整按钮TA、TB进行预置数。当计时使能端EN为高电平,有系统时钟信号CLK时,进

33、行设置的时间倒计时。输入时钟CLK作为抢答信号判别电路中锁存器时钟,抢答判别电路有较高的准确度(对信号判别的最大误差是一个时钟周期),CLK信号频率高低应适中,可取500Hz-1KHz;同时CLK信号经过分频后向倒计时电路提供信号。4 智能抢答器模块的仿真验证4.1鉴别模块的仿真验证 利用QuartusII进行编译,综合,仿真,时序图如下:图4-1鉴别模块的仿真时序图引脚作用: 系统输入信号:各组的抢答按钮A、B、C、D、E、F、G、H,系统清零信号CLR,CLK时钟信号。 系统的输出信号: 各组的抢答按钮显示端A1、B1、C1、D1、E1、F1、G1、H1,组别显示端控制信号G7.0。仿真分

34、析: 当鉴别模块的清零信号CLR为高电平时,无论A、B、C、D、E、F、G、H八组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端G输出信号也显示为零;当清零信号CLR为低电平时,A、B、C、D、E、F、G、H组参赛者谁先按下抢答按钮,组别显示端就显示该组别的号码。假如A组按下抢答按钮时,组别输出为00000001,同时A组的显示灯被点亮。仿真图上显示的为A先抢答,因为在抢答过程中,虽然都有抢答,但是A先抢下,但CLR为有效状态,所以在此时间段内的抢答无效。4.2计时模块的仿真验证利用QuartusII进行编译,综合,仿真,时序图如下:图4-2 计时模块的仿真时序图引脚作用: 系统输入信号

35、:系统清零信号CLR,计时预置控制端LDN,计时使能端EN,系统时钟信号CLK,计时预置数据调整按钮TA、TB。系统输出信号:倒计时输出端QA3.0、QB3.0。仿真分析:当系统清零信号CLR=1时,计时器的时钟信号回到计时预置倒计时起始状态,此时倒计时输出端QA=0000,QB=0000.当计时使能端EN=0,计时预置控制端LDN=1时,通过计时预置数据调整按钮TA、TB进行预制数,并且通过TA,TB来调整QA,QB即当TA=1时,则QA的数值加1,当TB=1时,则QB的数值也加1,本仿真图上是有TA,TB分别两次高电平,就是说初始值设定的时间就为22秒。当计时使能端EN=1,系统清零信号C

36、LR=0,并且计时预置控制端LDN=0时,通过时钟信号上升沿CLK来进行预置数22秒倒计时。4.3计分模块的仿真验证利用QuartusII进行编译,综合,仿真,时序图如下: 图4-3 计分模块的仿真时序图引脚作用: 系统的输入信号有:计分复位端RST,加分按钮端ADD,组别号输入端CHOS7.0。 系统的输出信号有:A组分数输出端AA23.0、AA13.0、AA03.0,B组分数输出端BB23.0、BB13.0、BB03.0,C组分数输出端CC23.0、CC13.0、CC03.0,D组分数输出端DD23.0、DD13.0、DD03.0、E组分数输出端 EE23.0、EE13.0、EE03.0,

37、F组分数输出端FF23.0、FF13.0、FF03.0,G组分数输出端GG23.0、GG13.0、GG03.0,H组分数输出端HH23.0、HH13.0、HH03.0。仿真分析:首先应该清楚,在计分器电路的设计中,按十进制进行加分操作的,当出现时钟信号上升沿CLK就可以完成对参赛者加分操作。智能抢答器记分模块的仿真时以加分操作为例。由仿真图43可知以下情况:(1)系统设计过程中,当计分复位端RST=1时,并且组别输入信号CHOS=00000000,其中的组别输入信号是抢答鉴别模块的输出信号,计分器复位,此时以上八组都不会产生加分操作。(2)然而当计分复位端RST=0时,此时计分器可以计分。当C

38、HOS=00000001时,组别显示为A组,此时主持人利用计分器对A组进行加减分操作;当CHOS=00000010时,组别显示为B组,此时主持人则利用计分器对B组进行加分操作;当CHOS=00000100时,组别显示为C组,此时系统对C组进行加分操作;当CHOS=00001000时,组别显示为D组,此时对D组进行加分操作;当CHOS=00010000时,组别显示为E组,此时对E组进行加分操作;当CHOS=00100000时,组别显示为F组,此时对F组进行加分操作;当CHOS=01000000时,组别显示为G组,此时对G组进行加分操作;当CHOS=10000000时,组别显示为H组,此时对H组进

39、行加分操作。由仿真图可知,当主持人按下系统复位键RST键时,使分数复位,每位设置的初始分数为100分。当CHOS=00001000时,即D抢答成功时,如果加分键ADD输入四个脉冲,DD1加到4,说明加分成功,成绩变为140分。其他抢答者抢答成功后的加分操作与此相同4.4数显模块的仿真验证 利用QuartusII进行编译,综合,仿真,时序图如下: 图4-4数显模块的仿真时序图引脚作用: 输入信号:YM1,YM2; 输出信号:DM1,DM2。仿真分析: 当YM1,YM2= "0000" , DM1,DM2输出"1111110",此时数码管显示0; 当YM1,

40、YM2= "0001" , DM1,DM2输出"0110000",此时数码管显示1; 当YM1,YM2= "0010" , DM1,DM2输出"1101101",此时数码管显示2; 当YM1,YM2= "0011" , DM1,DM2输出"1111001",此时数码管显示3; 当YM1,YM2= "0100" , DM1,DM2输出"0110011",此时数码管显示4; 当YM1,YM2= "0101" , DM1,

41、DM2输出"1011011",此时数码管显示5; 当YM1,YM2= "0110" , DM1,DM2输出"1011111",此时数码管显示6; 当YM1,YM2= "0111" , DM1,DM2输出"1110000",此时数码管显示7; 当YM1,YM2= "1000" , DM1,DM2输出"1111111",此时数码管显示8; 当YM1,YM2= "1001" , DM1,DM2输出"1111011",此时数

42、码管显示9;4.5综合仿真验证利用QuartusII进行编译,综合,仿真,时序图如下:引脚作用:系统输入信号:各组的抢答按钮A、B、C、D、E、F、G、H,系统清零信号CLR,时钟信号CLK,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB,计分复位端RST,加分按钮端ADD。系统输出信号:倒计时输出端GA6.0、DI6.0,各组分数输出端AA06.0、AA16.0、AA26.0HH06.0、HH16.0、HH26.0,组别灯显示端LED7.0。仿真分析:上图是以B组抢答成功为例,在时钟信号CLK上升沿来了,清零信号CLR为低电平,计时预置控制端LDN低电平,计时使能端EN

43、高电平,开始抢答,B组抢答成功,在抢答成功后,加分按钮端ADD两次上升沿,相当于给B组加十分,这样就达到了要求。TA,TB是时间控制端,在抢答开始前,分别三个上升沿,相当于时间使从33秒开始倒计时,时间输出端就是输出的以七段码形式的倒计时波形。结束语本文主要介绍了利用VHDL语言设计智能抢答器的详细流程,并横向介绍了一些关于此设计的背景知识,比如EDA的应用、Quartus设计流程等等。在设计的过程中,文章通过对比传统的自底向上的设计方法和和现代EDA的自顶向下的设计方法,突出了EDA设计方法的优越性。在这次设计中,我们也遇到了一些问题,比如设置输入信号不合适时,时序图也会出现一些毛刺现象。同

44、时,我也发现了自己的许多不足。首先,最初开发时,对系统没有一个完整的思路,考虑不是很全面,所以系统功能设计时,碰到不少困难,也耽搁了不少时间。其次,我发现自己对于书本上的很多知识还不够熟悉,对开发工具的掌握还不算很全面,有很多我们需要掌握的知识还没掌握,所以在设计编程、编译以及仿真过程中走了不少弯路。还有本次设计只是软件上的仿真,如果将其运用于实际,那将还需继续完善。再次,在论文的整理过程中,我对word文档的操作技能不是很娴熟,所以在以后的学习生活中,我会努力并尽量弥补我所缺少的一些相关知识,不断提高自己的操作能力参考文献1 汉泽西.EDA技术与应用【M】.北京:北京航空航天大学出版社,20

45、042 侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计.西安:西安电子科技大学出版社,19973黄任.编著VHDL入门、解惑、经典实例、经验总结.北京:北京航空航天大学出版社,20054 罗朝霞,高书莉.CPLD/FPGA设计及应用.北京:人民邮电出版社, 2007.7.5 陈云恰,保延翔.CPLD应用技术与数字系统统计.电子工业出版社, 2006.6 李伟英,谢完成.基于EDA技术的抢答器的设计与实现【J】.科学技术与实现, 2008.8(11).7谭会生,瞿遂存.EDA技术综合应用实例与分析【M】.西安:西安电子科技大学出版社, 2004.8姜雪松,吴钰淳.VHDL设计实例与仿真.

46、机械工业出版社, 2007.附 录附录1 抢答鉴别模块VHDL程序(QDJB.VHD)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY QDJB IS PORT (CLR: IN STD_LOGIC; CLK: IN STD_LOGIC; A, B, C, D, E, F, G, H: IN STD_LOGIC; A1, B1, C1, D1, E1, F1, G1, H1: OUT STD_LOGIC; X: OUT STD_LOGIC_VECTOR (7 DOWNTO 0); END QDJB; ARCHITECTURE ART OF QD

47、JB IS CONSTANT W1: STD_LOGIC_VECTOR:="00000001" CONSTANT W2: STD_LOGIC_VECTOR:="00000010" CONSTANT W3: STD_LOGIC_VECTOR:="00000100" CONSTANT W4: STD_LOGIC_VECTOR:="00001000" CONSTANT W5: STD_LOGIC_VECTOR:="00010000" CONSTANT W6: STD_LOGIC_VECTOR:=&qu

48、ot;00100000" CONSTANT W7: STD_LOGIC_VECTOR:="01000000" CONSTANT W8: STD_LOGIC_VECTOR:="10000000" BEGIN PROCESS (CLR, A, B, C, D, E, F, G) BEGINIF CLR='1' THEN X<="00000000" ELSIF (A='1'AND B='0'AND C='0'AND D='0'AND E='

49、;0'AND F='0'AND G='0'AND H='0') THEN A1<='1' B1<='0' C1<='0' D1<='0'E1<='0' F1<='0' G1<='0' H1<='0' X<=W1; ELSIF (A='0'AND B='1'AND C='0'AND D='0'AND

50、 E='0'AND F='0'AND G='0'AND H='0') THEN A1<='0' B1<='1' C1<='0' D1<='0'E1<='0' F1<='0' G1<='0' H1<='0' X<=W2; ELSIF (A='0'AND B='0'AND C='1'AND D='0&

51、#39;AND E='0'AND F='0'AND G='0'AND H='0') THEN A1<='0' B1<='0' C1<='1' D1<='0'E1<='0' F1<='0' G1<='0' H1<='0' X<=W3; ELSIF (A='0'AND B='0'AND C='0'AND D=

52、'1'AND E='0'AND F='0'AND G='0'AND H='0') THEN A1<='0' B1<='0' C1<='0' D1<='1'E1<='0' F1<='0' G1<='0' H1<='0' X<=W4; ELSIF (A='0'AND B='0'AND C='0'

53、;AND D='0'AND E='1'AND F='0'AND G='0'AND H='0') THEN A1<='0' B1<='0' C1<='0' D1<='0'E1<='1' F1<='0' G1<='0' H1<='0' X<=W5; ELSIF (A='0'AND B='0'AND C=

54、9;0'AND D='0'AND E='0'AND F='1'AND G='0'AND H='0') THEN A1<='0' B1<='0' C1<='0' D1<='0'E1<='0' F1<='1' G1<='0' H1<='0' X<=W6; ELSIF (A='0'AND B='0'AN

55、D C='0'AND D='0'AND E='0'AND F='0'AND G='1'AND H='0') THEN A1<='0' B1<='0' C1<='0' D1<='0'E1<='0' F1<='0' G1<='1' H1<='0' X<=W7; ELSIF (A='0'AND B='0

56、'AND C='0'AND D='0'AND E='0'AND F='0'AND G='0'AND H='1') THEN A1<='0' B1<='0' C1<='0' D1<='0'E1<='0' F1<='0' G1<='0' H1<='1' X<=W8; END IF; END PROCESS; END

57、ART;附录2 抢答计时模块VHDL程序(JSQ.VHD)LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY JSQ IS PORT (CLR, LDN, EN, CLK: IN STD_LOGIC; TA,TB: IN STD_LOGIC; QA: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); QB: OUT STD_LOGIC_VECTOR (3 DOWNTO 0); END JSQ; ARCHIT

58、ECTURE ART OF JSQ IS SIGNAL DA: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL DB: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL TMPA: STD_LOGIC_VECTOR (3 DOWNTO 0); SIGNAL TMPB: STD_LOGIC_VECTOR (3 DOWNTO 0); BEGINPROCESS (CLR,TB)BEGIN IF CLR='1' THENDB<="0000" ELSIF TB'EVENT AND TB='1&

59、#39;THEN DB<=DB+"0001" END IF; END PROCESS; PROCESS (CLR,TA)BEGIN IF CLR='1' THEN DA<="0000" ELSIF TA'EVENT AND TA='1'THEN DA<=DA+"0001" END IF; END PROCESS; PROCESS (CLK)BEGIN IF CLK'EVENT AND CLK='1' THEN IF CLR='1' THEN TMPA<="0000" TMPB<="0000" END IF; IF LDN='1' THEN TMPA<=DA;TMPB<=DB;

温馨提示

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

评论

0/150

提交评论