智力竞赛抢答计时器的设计_第1页
智力竞赛抢答计时器的设计_第2页
智力竞赛抢答计时器的设计_第3页
智力竞赛抢答计时器的设计_第4页
智力竞赛抢答计时器的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、智力竞赛抢答计时器的设计EDA VHDLVHDL EDAVHDL VHDL MAX+PLUSII MAX+PLUSII摘要:11 数字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数 字信号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算和逻 辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。EDA技术又称电子设计自动化,它是为解决自动控制系统设计而提出的,从70年代经历了计算机辅助设计(CAD,计算机辅助工程(CAE,电子系统设计自动 化(ESDA 3个阶段。前两个阶段的EDA产品都只是个别或部分的解决了电子产品 设计中的工程问题;第三代 ED

2、A工具根据工程设计中的瓶颈和矛盾对设计数据库实 现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统级的设计工具。VHDL(VERY HIGH SPEED INTEGRATED CIRCUIT HARDWARE DESCRIPTIONLANGUAGE语言最早是有美国国防部提出的,它支持行为领域和结构领域的硬 件描述,并且可以从最抽象的系统级一直到最精确的逻辑级,在描述数字系统时,可以 使用前后一致的语义和语法跨越多个层次,并且使用跨越多个级别的混合描述模拟该系统。 因此,它可以由高层次行为描述子系统及低层次详细实现子系统所组成的系统模拟。它有两 个版本IEEEStd1076-1

3、987LRM87和 IEEEStd1076-1993LRM93,他们并不完全兼容, 但做一些修改就可以兼容了。许多公司都为VHDL开发出了编译和仿真软件,其中 Max+plusII(或写成Maxplus2,或MP2)是Altera公司推出的的第三代 PLD开发系统(Altera 第四代 PLD开发系统被称为:QuartusII ,主要用于设计新器件和大规模 CPLD/FPGA)使用 MAX+PLUSI的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设 计工具(如原理图输入或硬件描述语言)建立设计,MAX+PLUSI把这些设计转自动换成最终所需的格式。其设计速度非 常快。对于一般几千门

4、的电路设计,使用 MAX+PLUSI,I 从设计输入到器件编程完毕,用 户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是 在原理图输入等方面。本设计要求做一个四人抢答器,并要求当有某一参赛者首先按下抢答开关时,相应 显示灯亮并报警,此时抢答器不再接受其他输入信号。电路具有回答问题时 间控制功能。要求回答问题时间小于等于100s (显示0-99),时间采用倒计时方式。当到达 限定时间,发出警告。对于一个四人抢答器,四个选手在电路中的起始控制作用是一样的,当裁判员 宣布开始抢答时,谁先按下他前面的控制开关,他的灯就会亮,而且这时其他人再怎么 按,也就不会亮了,说明每个人

5、对其他人都有一个先发制人的作用,及每个人都在时间控制 下,能锁存住其他选手的功能。当有一个指示灯亮了,计数器就开始从 99开始倒计时,到 0 时还要警告声,这样计数器开始工作就是在指示灯的指示下工作。可以设四个人分别为输入端 A,B,C, D;因为四个输入端在VHDL中,要求四 个输入端2 应该是相等优先级别,但只要有一个输入端接入高电平时,就给其他信号一个 反馈,使得他们的输入无效,及他们对应的指示灯不亮;所以我们可以也并行语句,让它们分为四个进程( process ) , 同时也要求每个进程中都有反馈信号传给其他进程语句中,这样 就可以完成抢答器基础部分了,设计的逻辑电路图部分见附录图一。

6、其次就是计数器部分, 当有人开始进入回答部分,指示灯亮,同时计数器开始工作,并要求是倒计时方式并七段显 示出,通过这些消息我们可知,指示灯即是计数器开始倒计时的信号,本设计中采用了元件 例化(component) 语句 , 在抢答器中给个选手已经开始回答了的信号插口,给计数器 中的置零输入端,这样就基本上完成了设计,计数器采用倒计时方式,实现方式也很简单, 只要给他们最初赋值为 99,而后在每个上升沿来到减一,具体设计情况还是看看程序设计部 分吧,在附录部分还有这个 99 倒时计数器的逻辑电路图。根据上面的分析可知,我们只要用四个进程语句,就可以处理好四位选手的相 互限制的问题,再将四个指示灯

7、用相与来控制计数器的置零端 set ,再用一个元件话语 句 component连接计数器,下面是具体的抢答器的 VHDL语言代码:代码中A B C D分别代表四位参赛选手,RESE是主裁判员的控制开关,CLK是计数器的时钟信号,MUSIC是警告的控制开关,COUNT和 CONT代表的是99倒计 时的七段显示二进制码直接与LED显示器连接,ALIGHT,BLIGHT,CLIGHT,DLIGH分别代表四 位选手的显示library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL; entity Qiang_DA is

8、 port(A,B,C,D,RESET:in std_logic;CLK:in std_logic;MUSIC:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0); ALIGHT,BLIGHT,CLIGHT,DLIGHT:out std_logic); end;architecture one of Qiang_DA is component COUNTER99 port(SET,CLK:in std_logic;MUSIC:out std_logic;COUT1

9、:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0); end component;signal A1,B1,C1,D1:std_logic;signal A2,B2,C2,D2:std_logic;signal SET:std_logic;beginA2<=not A1 ;B2<=not B1 ;C2<=not C1 ;3D2<=not D1 ;L1:process(A)beginA1<=(A and B2 and C2 and D2) ; end process L1;

10、L2:process(B)beginB1<=(B and A2 and C2 and D2); end process L2;L3:process(C)beginC1<=(C and A2 and B2 and D2); end process L3;L4:process(D)beginD1<=(D and A2 and C2 and B2); end process L4;L5:process(A1,B1,C1,D1,RESET) beginif RESET='0' thenALIGHT<='0'BLIGHT<='0

11、9;CLIGHT<='0'DLIGHT<='0'SET<='0'else ALIGHT<=A1;BLIGHT<=B1;CLIGHT<=C1;DLIGHT<=D1;SET<=(A1 or B1 or C1 or D1);end if;end process L5;U0:COUNTER99 port map(SET,CLK,MUSIC,COUT1,COUT2); end;下面是99倒数计数器的VHDA语言代码:library ieee;use ieee.std_logic_1164.all;use ie

12、ee.std_logic_unsigned.all;entity COUNTER99 isport( SET,CLK:in std_logic;MUSIC:out std_logic;COUT1:out std_logic_vector(6 downto 0);COUT2:out std_logic_vector(6 downto 0); end;architecture behave of COUNTER99 issignal MUSIC1:std_logic;signal HIGH:std_logic_vector(3 downto 0):="1001" signalL

13、OW:std_logic_vector(3 downto 0):="1001" begin C1:process(SET,CLK,MUSIC1) beginif SET='0' then4MUSIC1<='0'HIGH<="1001"LOW<="1001"elseif RISING_EDGE(CLK) thenif LOW="0000" thenLOW<="1001"if HIGH="0000" thenHIGH<

14、="1001"else HIGH<=HIGH-1;end if;else LOW<=LOW-1;end if ;end if;if (HIGH="0000" and LOW="0001") thenMUSIC1<='1'end if;end if;end process C1;C5:process(HIGH,LOW)function decode(four:std_logic_vector(3 downto 0) return std_logic_vector isvariable outdata:s

15、td_logic_vector(6 downto 0);begincase four isWHEN "0000"=>outdata:="1111110"WHEN "0001"=>outdata:="0110000"WHEN "0010"=>outdata:="1101101"WHEN "0011"=>outdata:="1111001"WHEN "0100"=>outdata:=&quo

16、t;0110011"WHEN "0101"=>outdata:="1011011"WHEN "0110"=>outdata:="0011111"WHEN "0111"=>outdata:="1110000"WHEN "1000"=>outdata:="1111111"WHEN "1001"=>outdata:="1111011"WHEN others=>

17、;outdata:="0000000"end case;return(outdata);end decode;beginCOUT1<=decode(LOW);COUT2<=decode(HIGH);MUSIC<=MUSIC1;end process C5;end;在附录部分有上述代码在MAX+PLUXI软件中的部分仿真结果,具体电路模拟 结果参照附录。5经过一周的EDA的课程设计,我对VHDL有了更深刻的认识,在最开始的时候 也遇到 不少问题,的确书看得比较少啊!后来通过查阅资料和书本,总算写出了一点东西,但模型的仿真过程中,也发现了一些问题,在时钟周期设置200ns内时就出现了组合逻辑电路中的竞争冒险现象,有待改进,单此种模型可以推广到比四人更多的抢答器中,只要添加进程语句就可以了。開*枪笛据砂讪團歩|出稠67以下四幅图是99倒数计数器的简单设计逻辑电路示意图及仿真结果bda 劇r 汕斷处"煜sfift耳豈总2门7旳岂_二址帕如赴t七34 曲J*1_- ->-.J > bS j巴衬土比£卫d山4筑 A L

温馨提示

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

评论

0/150

提交评论