六人抢答器设计-EDA设计任务书_第1页
六人抢答器设计-EDA设计任务书_第2页
六人抢答器设计-EDA设计任务书_第3页
六人抢答器设计-EDA设计任务书_第4页
六人抢答器设计-EDA设计任务书_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

武汉理工大学EDA课程设计说明书课程设计任务书学生姓名: 专业班级:电子科学与技术1203班指导教师: 工作单位: 信息工程学院 题 目: 六人抢答器设计 初始条件: 可用仪器: PC机(Quartus II软件) 硬件:EDA-IV型实验箱。要求完成的主要任务: 设计任务抢答台数为6,具有抢答开始后20秒倒计时,20秒倒计时后六人抢答显示超时,并报警。能显示超前抢答台号并显示犯规报警。系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁,同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号。时间安排:1.14课程设计任务布置、选题、查阅资料1.151.16设计,软件编程、仿真和调试 1.17撰写课程设计报告1.18设计的硬件调试1.19实验室检查设计成果,现场演示硬件实物、提交设计说明书及 答辩指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要II绪论III1 VHDL语言和QUARTUS软件的发展及介绍11.1 VHDL语言的发展11.2 QUARTUS软件的简单介绍12 设计内容及要求32.1设计的目的及主要任务32.1.1设计的目的32.1.2 设计任务及主要技术指标33 设计思路及单元模块设计43.1 设计整体思路43.2 单元模块的设计原理43.2.1 二十秒倒计时显示模块53.2.2 抢答选手抢答模块53.2.3 报警模块64 整体原理图的组合顶层原理图75 试验箱上的硬件实现检测85.1对超时报警检测85.2抢答按键按下后的检测86硬件调试以及结果分析97心得体会10参考文献11附录一 程序12附录二 顶层文件图17摘要 随着科技的不断更新和发展,比赛中抢答器也广泛的使用,本次课程设计是在EDA开发平台QUARTUS14.0上利用VHDL语言设计六人抢答器电路。电路中设有六个抢答键,可供六人同时抢答,并且有一个主持人的复位键;利用一个二十进制计数器,将其输入频率设定为一赫兹,成功实现了二十秒倒计时的功能;当有选手抢答成功后会有蜂鸣器的提示;利用数码管作为倒计时显示和抢答选手号码的显示。本文详细介绍了Quartus的使用方法和基于Quartus的六人抢答器的设计原理方法。并且分模块写了详细的匹配试验箱的程序。本次课程设计采用VHDL硬件描述语言设计实现六人抢答器功能,主要实现常规的竞赛式抢答报警功能。关键词:QUARTUS,六人抢答器,VHDL,模块设计绪论 EDA是电子设计自动化(Electronic Design Automation)的缩写。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:Protel、PSPICE、multiSIM10(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。本课程设计是采用VHDL硬件描述语言设计实现六人抢答器功能。并采用Quartus软件进行对设计语言的时序仿真以及原理图的生成。Quartus软件是由Altera公司推出的新一代CPLD/FPGA开发软件。它允许第三方EDIF文件输入,并提供了很多EDA软件接口,Quartus支持层次化设计,可以在一个新的编辑输入环境中对不同的输入方式完成的模块进行调用,从而解决了原理图与VHDL混合输入设计的问题。现在Quartus软件已经可以开发Altera公司以前推出的大部分器件以及新推出的器件。根据时序仿真结果来判断所写程序是否符合设计要求,最后通过对其硬件语言进行原理图的生成,就此实现用VHD语言设计六人抢答器功能。六人抢答器1 VHDL语言和QUARTUS软件的发展及介绍 1.1 VHDL语言的发展 VHDL诞生于1982年。随后各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本1,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL的英文全写是:VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language.翻译成中文就是超高速集成电路硬件描述语言2。因此它的应用主要是应用在数字电路的设计中。VHDL的语言功能比较强大,并且应用灵活,支持广泛、易于修改,并且具有强大的系统硬件描述能力。独立于器件的设计、与工艺无关。VHDL的语言设计比较灵活也方便编程易懂。1.2 QUARTUS软件的简单介绍 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。2 设计内容及要求2.1设计的目的及主要任务2.1.1设计的目的通过本次课程设计熟悉了QUARTUS软件的使用,建立新的工程文件以及软件的仿真和将程序下载到试验箱上的引脚配置以及实物的显示。掌握了VHDL的语言的编程语句,以及VHDL语言的结构,可以独立利用语言编程实现程序。通过对六人抢答器的设计,掌握到按键模块,显示模块和报警超时以及犯规模块的设计,掌握相关语言的编程。通过对不同模块的编写并且设计顶层文件,掌握EDA中不同模块的的组合的方式以及将VHDL语言转化为原理图,顶层文件用原理图组合最终合成,设计引脚和实验板相对应最终使现象出现。2.1.2 设计任务及主要技术指标 抢答台数为 6 具有抢答开始后 20 秒倒计时,20 秒倒计时后六人抢答显示超时,并报警。 能显示超前抢答台号并显示犯规报警。 系统复位后进入抢答状态,当有一路抢答按键按下,该路抢答信号将其余各路抢答信号封锁, 同时铃声响起,直至该路按键松开,显示牌显示该路抢答台号。3 设计思路及单元模块设计3.1 设计整体思路 六人抢答器主要利用分模块的VHDL语言对程序的描写,主要用到数码管的显示原理、倒计时的原理、蜂鸣器设计、对信号的锁存。在倒计时语言中要用到分频来实现倒计时,三个模块分别为倒计时显示模块、蜂鸣器报警模块以及选手抢答模块。程序设计思路首先进行二十秒倒计时,倒计时完成后如果有抢答选手按键将显示选手按键并且相对应的选手的灯亮,同时将信号锁存,是其他按键选手无法进行抢答。如果倒计时达到20秒,仍无选手按键则蜂鸣器响,选手抢答无效。整体设计框图如下所示:二十秒倒计时模块数码管显示若20秒后无人抢答响蜂鸣器锁存器模块抢答鉴别模块按键输入图1整体设计框图通过以上的整体模块,将其步骤依次写入程序中分为不同的模块,将模块建在同一个程序下,在设计顶层文件最终组合,即可。采用自顶向下的设计。提出设计说明书。即用自然语言表达系统项目的功能特点和技术参数等。建立VHDL行为模型。这一步是将设计说明书转化为VHDL行为模型,在此行为模型的建立基础上进行整体仿真。VHDL行为仿真。这一阶段是利用VHDL仿真器对顶层文件的行为模型进行仿真测试,检查模拟结果,继而进行修改和完善。VHDL-RTL级建模。前段功能仿真。逻辑综合。测试向量生成。功能仿真。结构综合。门级时序仿真。这一级中将使用仿真器或仍然使用VHDL仿真器进行门级时序仿真。硬件测试,这是对最后完成的硬件系统进行检查和测试。3.2 单元模块的设计原理 通过以上整体设计可见,本次程序的书写将其分为三个模块再有一个顶层模块,三个模块分别为倒计时显示模块、抢答显示模块、报警模块。以下将分模块具体介绍其原理。3.2.1 二十秒倒计时显示模块 首先建立一个大工程,在其中建立多个小的程序,最后设计顶层文件,进行硬件测试。二十四秒倒计时利用两个数码管显示出来,并且用wei0和wei1来表示两个数码管,此实验箱上数码管只有段选没有位选需要一一对引脚定义,并且程序中用到分频来控制数码管显示数字的快慢,并且通过赋值来控制倒计时的起始数据,利用复位键复位使抢答一轮完毕后,复位后还可以从20秒开始从新倒计时。利用此case wei0 is when 0000=seg2qout=000001;seg3=1111001;mid=1;利用此语句对数码管Led灯以及报警的实现。当检测到其中一个When语句后数码管显示后,即将不会在显示其后面的。程序生成的原理图如下所示: 图3 抢答显示报警原理图3.2.3 报警模块在报警模块中写了20秒显示后的超时报警,以及抢答选手抢答后的报警和抢答选手抢答完后抢答按键复位后蜂鸣器停止响。下图即为报警程序转化的原理图:图4 报警模块原理图4 整体原理图的组合顶层原理图 将由程序转化的原理图组合在一起,将其连接在一起使其可以正常进行硬件调试。将每个模块的clk引脚按键Key5.0连接在一起分别接在试验箱上的脉冲和按键抢答。将报警输出用或门连接使其实现超时和抢答报警,并且将seg接在三个数码管上,分别显示倒计时和抢答选手抢答号码。.图5 整体原理图5 试验箱上的硬件实现检测5.1对超时报警检测 在将程序下载到试验箱上后,拨动复位键使数码管开始倒计时,当此时无人按键,当倒计时20秒之后仍无人按键,报警器将会报警,之后抢答这将设为无效抢答。情况如下图所示,与此同时会听到蜂鸣器报警的声音。图6 抢答超时报警显示状况5.2抢答按键按下后的检测 当在倒计时的过程中有选手按下抢答键时,相应的数码管会变亮,并且led灯变亮,蜂鸣器响起时间锁定。对此后再按键的选手将不予显示其号码,其试验结果实物图如下:图7 抢答选手按键显示状况6硬件调试以及结果分析对于本次实验主要是运用了三个模块的程序以及顶层文件的组件,对硬件的调试无要求,但对于程序的编写改正过无数次才得以实现其功能,对于数码管显示和倒计时和抢答选手出现过逻辑的错误,经改正后才得以实现正常的运行状态。经过在试验箱上对程序以及顶层文件图的运用,可见最终效果达到要求,可以实现最终结果。并且在引脚锁定过程中要弄清楚个引脚的作用再一一相对应,使最终结果可以正常运行。其引脚的设定如下图,要和试验箱必须匹配。此图只为一部分引脚锁定图图8 引脚设定7心得体会通过本次课设虽然过程中出现过很多错误但是学会了很多课上学不到的东西,课程设计是针对某一理论课程的要求,对学生进行综合性实践训练的实践教学环节,可以提高学生运用课程中所学的理论知识与实践紧密结合,独立地解决实际问题的能力。在这次课程设计过程中使我从中学到许多以前在课本和课堂上所无法学到的,特别是在课程设计过程中查找资料的过程中从中学到许多以前在课本和课堂上所无法学到的并从中体会到许多的乐趣,从而丰富了自己。因学习知识的能力和时间有限,并且此次EDA课程设计对于我们来说还只是初体验,因此在本次的课程设计过程中,掌握了软件的使用以及VHDL语言程序的编写和顶层文件的设计方法,培养了自己的独立思考能力以及查阅文献的能力可以自己在程序中寻找错误并且细心改正错误,这便是其中最大的意义。并且学习的是一种学习能力,结果并不比过程重要。通过这次课程设计,学到了不少知识,更重要的是培养了自己发现问题的同时能够解决问题的能力,这对以后的学习以及工作尤为重要。最后,再次感谢老师的教导和同学们在我课设期间的帮助指导。参考文献1 王锁萍.电子设计自动化教程.成都:电子科技大学出版社,20002 徐志军.CPLD/FPGA的开发与应用.北京:电子工业出版社,20023 付家才. EDA工程实践技术.北京:化学工业出版社,2007.14 汉泽西. EDA技术及其应用.北京:北京航空航天大学出版社,2004.55 李宗伯译.VHDL设计表示和综合.北京:机械工业出版社,20026 王金明.数字系统设计与Verilog HDL.北京:电子工业出版社,2002附录一 程序1. 二十秒倒计时模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity daojishi isport(clk,rst,stop:in std_logic; 输入输出端口定义 seg1:out std_logic_vector(6 downto 0); seg2:out std_logic_vector(6 downto 0); bell:out std_logic);end daojishi;architecture bhv of daojishi issignal clk1:std_logic;- 1KHZsignal clk2:std_logic;- 1HZsignal wei0:std_logic_vector(3 downto 0);signal wei1:std_logic_vector(3 downto 0);signal en:std_logic:=0;beginprocess(clk)-1KHZvariable mid1:integer:=0; begin 分频if rising_edge(clk) then mid1:=mid1+1;if mid1=10000 then clk1=0;elsif mid120000 then clk1=1;else mid1:=0;end if;end if;end process;process(clk1)-1HZvariable mid2:integer:=0;begin if rising_edge(clk1) then mid2:=mid2+1;if mid2=500 then clk2=0;elsif mid21000 then clk2=1;else mid2:=0;end if;end if;end process;process(clk2,rst,stop,wei0,en)begin if rst=1 then wei0=0000;elsif rising_edge(clk2) thenif stop=0 then if en=0 thenif wei0=0000 then wei0=1001;else wei0=wei0-1;end if;else wei0=0000; end if;end if;end if;end process;process(clk2,rst,stop,wei0,wei1,en)beginif rst=1 then wei1=0010;en=0;elsif rising_edge(clk2) then if stop=0 then if en=0 thenif wei1=0000 and wei0=0001 then en=1;elsif wei0=0000 then wei1=wei1-1;end if;else wei1=0000;end if;end if;end if;end process;process(wei0,wei1) begin if wei0=0000 and wei1=0000 thenbell=clk1;else bell=0;end if;end process;process(clk1,wei1,wei0)beginif rising_edge(clk1) then-if sel=000 then selseg1seg1seg1seg1seg1seg1seg1seg1seg1seg1NULL;end case;-elsif sel=001 then selseg2seg2seg2seg2seg2seg2seg2seg2seg2seg2NULL;end case;end if;end process;end;2. 抢答选手的抢答程序library ieee;use ieee.std_logic_1164.all;entity qiangda isport(key:in std_logic_vector(5 downto 0); clk:in std_logic; rst:in std_logic; ring:buffer std_logic; seg3:out std_logic_vector(6 downto 0); name:out std_logic_vector(5 downto 0);end qiangda;architecture bhv of qiangda is signal mid:std_logic;signal qout:std_logic_vector(5 downto 0);beginprocess(clk,key,rst,mid)beginif rst=1 then mid=0;qout=ZZZZZZ;seg3qout=000001;seg3=1111001;midqout=000010;seg3=0100100;

温馨提示

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

评论

0/150

提交评论