电子抢答器课程设计论文.doc_第1页
电子抢答器课程设计论文.doc_第2页
电子抢答器课程设计论文.doc_第3页
电子抢答器课程设计论文.doc_第4页
电子抢答器课程设计论文.doc_第5页
免费预览已结束,剩余10页可下载查看

下载本文档

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

文档简介

1 引言现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要因素是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。后者的核心就是eda技术。1.1 关于 edaeda是电子设计自动化(electronic design automation)的缩写,在20世纪90年代初从计算机辅助设计(cad)、计算机辅助制造(cam)、计算机辅助测试(cat)和计算机辅助工程(cae)的概念发展而来的。eda技术就是以计算机为工具,设计者在eda软件平台上,用硬件描述语言hdl完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前有多种eda工具支持采用vhdl进行电路综合、仿真以及实现。一些可编程器件生产商将使用vhdl进行电路设计所需的多种eda工具集成为统一的开发平台提供给用户,进行针对本公司可编程器件产品的开发,从而使整个设计流程更加简捷和易于使用。目前比较常见的是altera公司的quartusii 和xilinx 公司的ise开发平台。1.2关于vhdlvhdl是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。vhdl的英文全写是:vhsic(very high speed integrated circuit)hardware description language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在fpga/cpld/epld的设计中。当然在一些实力较为雄厚的单位,它也被用来设计asic。vhdl主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,vhdl的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。vhdl的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是vhdl系统设计的基本点 。与其他硬件描述语言相比,vhdl具有以下特点:(1)功能强大、设计灵活。vhdl具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。vhdl支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言虽不能比拟的。vhdl还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。(2)支持广泛、易于修改。由于vhdl已经成为ieee标准所规范的硬件描述语言,目前大多数eda工具几乎都支持vhdl,这为vhdl的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用vhdl编写的源代码,因为vhdl易读和结构化,所以易于修改设计。(3)强大的系统硬件描述能力。vhdl具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,vhdl支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。vhdl支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。(4)独立于器件的设计、与工艺无关。设计人员用vhdl进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。(5)很强的移植能力,易于共享和复用。vhdl采用基于库(library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。vhdl语言最直接的应用领域是可编程逻辑器件和专用集成电路(asic:application specific integrated circuits),其中可编程逻辑器件包括复杂可编程逻辑器件(cpld:complex programmable logic devices )和现场可编程门阵列(fpga:field programmable gate arrays )。可编程逻辑器件自七十年代以来,经历了pal、gal、cpld、fpga几个发展阶段,其中cpld/fpga属高密度可编程逻辑器件,目前集成度已高达200万门/片,它将掩膜asic集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制或小批量产品开发。2 功能简介本次设计的四组(人)参加的智力竞赛抢答计时器,它具有四路抢答输入,主持人按下复位键后,系统复位进入抢答状态,计时显示初始值;当某组首先按下抢答键时,该路抢答信号,竞赛抢答器能够设别最先抢答的信号,锁定该信号,同时扬声器响起,参赛小组的序号在数码管上显示;主持人对抢答结果进行确认,给出倒计时计数允许信号,开始回答问题,计时显示器从初始值30开始以秒为单位倒计时,计数至0时,停止计数,扬声器发出超时报警信号,以中止继续回答问题;当主持人给出倒计时计数禁止信号时,扬声器停止鸣叫;参赛者在规定时间内回答完问题,主持人给出倒计时计数禁止信号,以免扬声器鸣叫,按下复位键,又可开始新一轮的抢答;总原理图如图2-1所示。图2-1 总原理图3 系统设计本次设计的抢答器系统由5部分模块组成,分别是:选手抢答模块、锁存模块、计数模块、声音模块、声音信号产生模块。3.1 选手抢答模块设计本模块主要完成两个功能,一是准确的判断出第一位抢答者,二是当选手抢答后送出声音使能信号,从而作为下个模块的声音的触发信号。其vhdl源程序如下:library ieee;use ieee.std_logic_1164.all;entity xuanshou isport(player:in std_logic_vector(3 downto 0); clear:in std_logic; y1:buffer integer range 0 to 9; y2:out std_logic_vector(3 downto 0); ea:out std_logic);end;architecture bhv of xuanshou isbeginprocess(clear,player )beginif clear=1 then -复位信号有效则清零;y1=0;y2=0000;eay1=1;y2=0001;eay1=2;y2=0010;eay1=3;y2=0100;eay1=4;y2=1000;eanull;end case;end if;end process;end;仿真波形如图3-1-1所示。其中player3,player2,player1,player0分别代表四个参赛选手,组别为4、3、2、1组。按下clear键,系统清零且置ea为高电平,否则,系统自动识别第一位抢答者 player3,并且将ea置低,其后的抢答无效。输出显示第一位抢答者的组别4并且使选手前指示灯亮。此模块生成的元件图如图3-1-2所示。图3-1-1选手抢答模块仿真图图3-1-2 选手抢答元件3.2 锁存模块设计锁存模块是对第一位抢答者的信号进行锁存,其后的信号无效。其中alm0为触发选手抢答报警的声音信号。整个模块vhdl源程序如下:library ieee;use ieee.std_logic_1164.all;entity suocunqi isport(d:in integer range 0 to 9; clear,ea:in std_logic; q: out integer range 0 to 9; clk:in std_logic; alm0:out std_logic); end; architecture bhv of suocunqi is begin process(clear,ea,clk) variable temp:integer range 0 to 20:=0; begin if clear=1then q=0;alm0=0;temp:=0; elsif ea=0then -ea为零时锁定选手号,再次选中则无效 q=d; if clkevent and clk=1thentemp:=temp+1;if temp=2 then alm0=0; temp:=temp-1; else alm0=1; end if; end if; end if; end process; end;仿真图及生成元件图分别如图3-2-1、图3-2-2所示图3-2-1锁存模块仿真图3-2-2 锁存元件图3.3计数模块设计比赛中要求第一抢答者在规定时间内回答问题,系统开始30秒倒计时,倒计时完毕发出响声,若能在规定时间内完成,由主持人按使能开关停止倒计时,不发出响声。整个计数模块的源程序及仿真图和元件图如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishuqi isport(stop,clk,rst,en:in std_logic; m:out std_logic; high,low:out std_logic_vector(3 downto 0);end;architecture bhv of jishuqi issignal hh:std_logic_vector(3 downto 0);signal ll:std_logic_vector(3 downto 0);begin process(clk,rst,en,hh,ll)beginif rst=1 then ll=0000;hh=0011;m=0;elsif clkevent and clk=1 then if en=1 then ll=ll-1; if ll=0000 then ll=1001;hh=hh-1; if hh=0000 and ll=0000 then m=1; -计时到则触发声音信号 hh=0000; ll=0000; if stop=1 then -停止计时 ll=ll;hh=hh; end if; end if; end if; end if;end if;high=ll;low=hh;end process;end;仿真图:图3-3-1计数模块仿真图图3-3-2 计数元件图3.4 声音报警模块设计当锁存器锁存第一位抢答选手时,触发短时间报警,显示抢答完成,并且当计时完成时也产生报警信号。这部分的设计程序如下:library ieee;use ieee.std_logic_1164.all;entity shengyin isport(high:in integer range 0 to 9; low:in integer range 0 to 9; stop,m:in std_logic; clear:in std_logic; alm:out std_logic ); end; architecture bhv of shengyin is begin process(high,low,stop,clear) begin if clear=1then alm=0; elsif stop=1then alm=0; elsif high=0 and low=0 then alm=1; elsif m=1then alm=1; else alm=0; end if; end process; end; 其仿真波形如图3-4-1所示。图3-4-1声音报警模块仿真图元件图如图3-4-2所示图3-4-2 声音报警元件图3.5 声音信号产生模块设计由于声音频率与抢答器频率不同,因此本模块使用单独的时间信号,当报警信号为高电平时,此模块向试验箱上扬声器输入声音信号使其产生报警音,反之则不输出。其vhdl程序如下:library ieee;use ieee.std_logic_1164.all;entity fenpin is port(a,c:in std_logic; -c为声音信号的时钟 s:out std_logic);end;architecture bhv of fenpin isbegin process(a)beginif a=1thens=c;elses=0;end if;end process;end;仿真图及元件图如图3-5-1、图3-5-2所示:图3-5-1 声音信号产生模块仿真图图3-5-2 声音模块生成元件图3.6 顶层文件设计将各个模块生成的器件进行原理图连接或是按下面程序进行综合;并设置为顶层文件,其仿真图如图3-6-1所示。整个系统设计完成,下载到实验箱运行成功。library ieee;use ieee.std_logic_1164.all;entity qiangdaqi isport(player:in std_logic_vector(3 downto 0); clear,clk,clock,rst,stop:in std_logic; q:out integer range 0 to 9; y:out std_logic_vector(3 downto 0); alm:out std_logic; high:out integer range 0 to 9; low:out integer range 0 to 9 ); end ; architecture bhv of qiangdaqi is component xuanshou is port(player:in std_logic_vector(3 downto 0); clear:in std_logic; y1:out integer range 0 to 9; y2:out std_logic_vector(3 downto 0); ea:out std_logic);end component; component suocunqi isport(d:in integer range 0 to 9; clear,ea:in std_logic; q: out integer range 0 to 9; clk:in std_logic; alm0:out std_logic); end component ; component jishuqi isport(clk,clear,rst,stop:in std_logic; high:out integer range 0 to 9; low:out integer range 0 to 9);end component ; component shengyin isport(high:in integer range 0 to 9; low:in integer range 0 to 9; stop,m:in std_logic; clear:in std_logic; alm:out std_logic ); end component;component fenpin isport(a,c:in std_logic; s:out std_logic);end component; signal x1:integer range 0 to 9; signal x2,x3,x6:std_logic; signal x4:integer range 0 to 9; signal x5:integer range 0 to 9; begin -进行元件例化 u1:xuanshou port map(player,clear,x1,y,x2); u2:suocunqi port map(x1,clear,x2,q,clk,x3); u3:jishuqi port map(clk,clear,rst,stop,x4,x5); u4:shengyin port map(x4,x5,stop,x3,clear,x6);u5:fenpin port map(x6,clock,alm); high=x4; low=x5; end;图3-6-1总器件仿真图4 设计总结经过了一段时间的努力我终于完成了四路抢答器的设计,从方案的选择,再到设计与实现。在这个过程中我学习到了很多在课本上不能学习到的知识,对一个产

温馨提示

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

最新文档

评论

0/150

提交评论