基于Quartus完成的四路抢答器设计.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Quartus完成的四路抢答器设计.doc

基于Quartus完成的四路抢答器设计 摘 要:针对实际应用的需要,利用可编程逻辑器件设计了抢答器。该抢答器单元电路的软件设计利用硬件描述语言设计完成。设计了控制主电路、数字显示电路、编码译码电路功能,并利用Quartus工具软件完成了编译仿真验证;硬件选择FLEX10K系列的EPF10K10LC84-4芯片来实现抢答器的系统功能。该抢答器具有很强的功能扩充性,应用效果良好。 关键词:可编程逻辑器件;抢答器;硬件描述语言;仿真;系统可编程 中图分类号:TM571.61 1 FLEX10K FLEX10K系列器件首次采用嵌入式阵列,其容量高达25万门。由于它的高密度和易于在设计中实现复杂宏函数和存储器,因此可以把一个子系集成在单一芯片上,而每个FLEX10K器件都包含一个嵌入式阵列,每个嵌入式阵列可以实现专用的功能,因此嵌入式阵列可以减少芯片的体积,使其运行速度更快,使用更灵活。 2 VHLD硬件描述语言简介 VHDL最早是由美国国防部提出的。作为硬件描述语言的第一个国际标准,VHDL描述电路行为的算法有很多优点: (1)设计层次较高,用于较复杂的计算时,能尽早发现存在的问题,缩短设计周期。(2)独立实现、修改方便。(3)移植性强,其源代码已成为一种输入标准,可用于各种不同的EDA工具。(4)VHDL类型众多而且支持用户自定义类型,支持自顶而下的设计方法和多种电路的设计。 3 QuartusⅡ简介 Altera的QuartusⅡ设计软件继承了MAX+plusⅡ的所有优点,是更加完善的PLD设计工具。它提供了完整的多平台设计环境,能够直接满足特定设计需要,为可编程芯片系统(SOPC)提供全面的设计环境。 4 设计思路 设计制作一个竞赛抢答器,每组受控于一个抢答按键,分别为s0、s1、s2、s3,设置主持人控制键rst,用于控制整个系统清零和抢答有效控制。按下复位键时,系统清零;抬起复位键时,抢答开始;系统具有第一抢答信号鉴别和锁存功能。在主持人将系统复位并使抢答有效开始后,第一抢答者按下抢答按钮,电路应记忆下第一抢答者的组别,并封锁其他各组的按钮,即其他任何一组按键都不会使电路响应;系统以两种方式指示第一抢答者:一是通过对应的输出引脚让数码管显示组别号;二是在第一抢答者产生时,蜂鸣器响起。 5 原理分析 5.1 抢答器鉴别模块 在这个模块中主要实现抢答过程中的抢答功能,还能记录抢答者的台号,并且能实现当有一路抢答按键按下时,其余各路被封锁的功能。其中有四个抢答信号s0、s1、s2、s3;抢答使能信号s;抢答状态显示信号states;抢答与警报时钟信号clk2;系统复位信号rst;警报信号tmp。 5.2 报警模块(已包含在抢答鉴别模块里) 在这个模块中主要实现抢答过程中的报警功能,当主持人按下控制键,有人抢答时蜂鸣器开始报警,有效电平输入信号i;状态输出信号q;计数脉冲clk2。 5.3 译码模块 在这个模块中主要实现抢答过程中将选手的台号转换成二进制码并送给数码管显示。 各模块程序如下: 抢答鉴别模块: library ieee;--抢答鉴别模块 use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qdjb is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0); tmp:out std_logic); end qdjb; architecture one of qdjb is signal st:std_logic_vector(3 downto 0); begin p1:process(s0,rst,s1,s2,s3,clk2) begin if rst 0 then tmp 0;st 0000; elsif clk2event and clk2 1 then if (s0 1 or st(0) 1)and not( st(1) 1 or st(2) 1 or st(3) 1 ) then st(0) 1; end if ; if (s1 1 or st(1) 1)and not( st(0) 1 or st(2) 1 or st(3) 1 ) then st(1) 1; end if ; if (s2 1 or st(2) 1)and not( st(0) 1 or st(1) 1 or st(3) 1 ) then st(2) 1; end if ; if (s3 1 or st(3) 1)and not( st(0) 1 or st(1) 1 or st(2) 1 ) then st

您可能关注的文档

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档