EDA课程设计基于VHDL的四路抢答器.doc

上传人:文库蛋蛋多 文档编号:4144069 上传时间:2023-04-07 格式:DOC 页数:15 大小:844.50KB
返回 下载 相关 举报
EDA课程设计基于VHDL的四路抢答器.doc_第1页
第1页 / 共15页
EDA课程设计基于VHDL的四路抢答器.doc_第2页
第2页 / 共15页
EDA课程设计基于VHDL的四路抢答器.doc_第3页
第3页 / 共15页
EDA课程设计基于VHDL的四路抢答器.doc_第4页
第4页 / 共15页
EDA课程设计基于VHDL的四路抢答器.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《EDA课程设计基于VHDL的四路抢答器.doc》由会员分享,可在线阅读,更多相关《EDA课程设计基于VHDL的四路抢答器.doc(15页珍藏版)》请在三一办公上搜索。

1、 EDA小学期报告设计课题: 四路抢答器 学 院: 信息学院 专业班级: 姓 名: 学 号: 指导教师: 职 称: 讲 师 日 期:2011年12月17日一 、摘要EDA技术概述、可编程逻辑器件基础、典型FPGA/CPLD的结构与配置、原理图与宏功能模块设计、VHDL设计输入方式、VHDL结构与要素、VHDL基本语句与基本设计、VHDL设计进阶、数字接口实例及分析、通信算法实例及分析等,附录内容为EDA实验系统简介,并提供电子课件和习题解答。EDA技术与WHDL设计内容新颖,技术先进,由浅入深,既有关于EDA技术、大规模可编程逻辑器件和VHDL硬件描述语言的系统介绍,又有丰富的设计应用实例。本

2、次试验是设计一个借助于EDA技术的只能四路抢答器。实现抢答的功能。二关键词: EDA 、 四路抢答器 、 模拟和仿真三设计要求:在许多比赛活动中,为了准确、公正、直观地判断出第一抢答者,通常设置一台抢答器,通过数显、灯光及音响等各种手段批示出第一抢答者。同时,还可以设置计分、犯规及奖惩记录等各种功能。本设计的具体功能是:1.可容纳四组参赛者进行抢答,每组设置一个抢答按钮供抢答者使用。2.电路具有第一抢答信号的鉴别和锁存功能。在主持人交系统复位并发出抢答指令后,若有一组先按下抢答开关,则该组指示灯亮并用组别显示电路显示抢答者的组别,同时扬声器发出“嘀嘟”的双音音响,且持续23秒。此时,电路具备自

3、锁功能,使他组的抢答开关不起作用。3.具有计分功能,使每组在开始时的分数预置成100分,抢答后由主持人计分,答对一次加10分。四、所用软件介绍 Quartos II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功

4、能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软

5、件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。图1、Quartus II 运行界面五

6、、系统方案论证与模块划分:根据系统设计要求可知:1.系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;2.系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LED_A、LES_B、LED_C、LED_D,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。3.本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能。根据以上的分析,我们可将整个系统分为三个

7、主要模块:抢鉴别模块QDJB;抢答计时模块JSQ;抢答计分模块JFQ;对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。整个系统的组成框图如图2-1所示:系统的工作原理如下:当主持人按下使能端EN1时,抢答器开始工作,A、B、C、D四个抢答者谁最先抢答成功则此选手的台号灯(LED_ALED_D)将点亮,并且组别显示数码管将显示出抢答成功者的台号,并由蜂鸣器发出抢答成功的警报;接下来主持人提问,若回答正确,主持人按加分按钮ADD,抢答计分模块

8、JFQ将给对应的组加分,并将该组的总分显示在对应的选手计分数码管JF2_A-JF0_A、JF2_B-JF0_B、JF2_C-JF0_C、JF2_D-JF0_D、上。在此过程中,主持人可以采用计时手段(JSQ模块),打开计时器使计时预置控制端LDN有效,输入抢答或回答时间,使计时使能端EN有效(EN与EN1接在同一端,可共同控制),开始计时。完成第一轮抢答后,主持人清零,重新开始,步骤同上。六、各个模块的功能实现1按键存储电路模块library ieee;use ieee.std_logic_1164.all; entity store is port(en,clr:in std_logic;

9、cp:in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0); end;architecture store_arc of store isbegin process(cp,clr,en)begin if en=1then if clr=0then q=0000; elsif cp=0001then q=0001; elsif cp=0010then q=0010; elsif cp=0100then q=0100; elsif cp=1000then q=1000; end if; end if; end pro

10、cess;end store_arc;图2、按键存储电路仿真图2锁存器模块library ieee;use ieee.std_logic_1164.all;entity lock is port(d:in std_logic_vector(3 downto 0); clk,clr:in std_logic; q:out std_logic_vector(3 downto 0); alm:out std_logic);end lock; architecture lockb_arc of lock issignal al:std_logic;signal ql:std_logic_vector(

11、3 downto 0);begin process(clk,clr)begin if clr=0then ql=0000;al=0; elsif clkevent and clk=1then ql=d; al=d(0) or d(1) or d(2) or d(3); end if; end process; alm=al;q=ql;end lockb_arc;图3、锁存器仿真波形3、译码电路模块library ieee;use ieee.std_logic_1164.all;entity decode isport(clr,clk:in std_logic; ssin: in std_log

12、ic_vector(3 downto 0); ssout: out std_logic_vector(6 downto 0);end decode; architecture decode_arc of decode isbegin process(ssin) begin if clr=0then ssoutssoutssoutssoutssoutssout=0000000; end case; end if; end process;end decode_arc;图4、译码电路的仿真4编码模块library ieee;use ieee.std_logic_1164.all;entity en

13、code isport(d: in std_logic_vector(3 downto 0); q:out std_logic_vector(3 downto 0);end encode;architecture encode_arc of encode isbegin process(d) begin if d=0001 then q=0001; elsif d=0010 then q=0010; elsif d=0011 then q=0100; elsif d=0100 then q=1000; else q=0000; end if; end process;end encode_ar

14、c;图5、编码的仿真5、倒计时模块library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count is port(clk,en,clr:in std_logic; sound:out std_logic);end count;architecture count_arc of count isbegin process(clk,en,clr)variable ll:std_logic_vector(3 downto 0);variable hh:std_logic_vector(2 do

15、wnto 0):=111; begin if clr=0 then sound=0; elsif clkevent and clk=1 then if en=1then if ll=0 and hh=0 then sound=1; elsif ll=0 then ll:=1001;hh:=hh-1; else ll:=ll-1; end if; else sound=0; hh:=110;ll:=1001; end if; end if; end process;end count_arc;图6倒计时模块仿真六、顶层文件的连线 图7、器件的组合七、整体的仿真图8、顶层仿真图9、管脚的分配图10

16、、程序下载到芯片 七、对自行设计的产品总结与评价通过EDA的仿真,证明了本产品在实际运用中的正确性,完全可以实现预期任务的要求,在有一组信号抢答成功后蜂鸣器发出警报,在两组或两组以上信号同时抢答时视抢答无效,蜂鸣器不予响应。且计分器在实现计分功能时能够准确计数并将分数呈三位数显示,计时器在按下计时开始按钮后可以从60秒倒计时并通过译码器实时显示计时结果。但是该产品仍有需要改进的地方:1.在抢答鉴别模块中,抢答成功后各组台号灯具有记忆功能,这一点会造成即使下一轮抢答没有抢答成功者(即有两人或两人以上同时按下抢答器),之前被点亮的led灯会仍然保持点亮状态。虽然此时可以根据有没有警报声来提示抢答是

17、否有效,但是仍然不够完善;2.在计时器模块内应增加计时结束报警功能,但是由于小组成员对vhdl语言运用不够熟练,在设计该项程序时遇到很多问题,进程之间不能很好的协调,故最终没有实现这一功能;3. 在波形仿真时,当信号之间配合不当时有可能造成预期的结果不能在波形上得到正确显示,故应协调各个开关的功能及其有效时间然后进行仿真,方能得出正确的仿真波形。4.另外,本产品还有需要改进的地方,如管脚过多,实际连接时不够简洁,容易造成连接错误。故应将各个模块综合起来设计总电路,但是由于成员对顶层程序设计这一部分不甚了解,故没有完成这一环节。八、实习心得与体会经过两星期的EDA设计,我们组的三位成员通过不懈努

18、力,成功地设计出了数字式四路竞赛抢答器。回首这两周,虽然因为初次涉及EDA技术及MAX_PLUS软件,对相关知识知之甚少,我们也遇到了很多困难,但是我们在这次实习的过程中都受益匪浅。 在这次课程设计的前期,我们先系统地学习了EDA工程概论,VHDL描述语言和设计应用方面的基础知识,使得后期能够较熟练地使用MAX_PLUS软件进行设计开发,用原理图输入及VHDL语言等设计输入并编译仿真,同时我们对以往学过的理论知识有了更加透彻的理解。我们选择的课题为数字式四路竞赛抢答器,根据电路的特点,我们采用层次化结构化设计,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起

19、来调试。我们选择分工合作,每个人负责一个模块的设计及调试,最后再联结起来调试。这不仅加深了我们对层次化设计的概念的认识,同时培养了我们团队合作的精神。在设计的过程中,遇到问题我们先独立思考,查找资料。到自己不能解决的时候就和其他组研究讨论,向指导老师请教。这样既提高了我们独立发现问题、分析问题、解决问题的能力,又很好地培养了交流合作的精神。在设计过程中,由于我们对于VHDL语言的了解不多,在变量的定义,以及过程(process)的定义与应用等方面遇到了很大的阻力,也让我们吃了不少的苦头,但是在大家齐心协力,以及在老师的耐心指导下,我们最终还是克服了重重难关。虽然在程序的编写方面还不是很完善,我

20、们还是设计出了我们需要的模块。在这次设计中,应该说从功能的实现到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚着大家的辛苦和汗水。此次实习前我们对于数字电子技术这门课程的学习仅是纸上谈兵,在头脑中抽象地记忆、理解那些课本上的理论知识,有些理论知识晦涩难懂,甚至要靠自己死记硬背。而这次的实习就提供机会让我们在实践中灵活运用知识。我们通过在实践中发现问题,进而去书本中找相关的知识去解决问题,从而巩固了理论知识,同时也增强了我们以后的学习兴趣,为以后的工作积累了一定的经验。经过这次实习,我们有了很深刻的体会。首先,要学好书本上的基本知识,掌握常用编程语句,这样在设计中才会游刃有余,得心应手。其次,在遇到困难时要勇于面对,其实只要有耐心,再加上试验中的细心操作,一切困难都将迎刃而解。 九、参考文献1 沈明山.EDA技术及可编程器件应用实训.科学出版社。2 曾繁泰,陈美金.VHDL程序设计.北京:清华大学出版社。3 谭会生,张昌凡.EDA技术及应用.西安:西安电子科技大学出版社。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号