万人表决器详解.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA电路设计结课论文 (2014-2015学年第一学期) 论文题目:万人计数表决显示器 机 械 与 车 辆 学 院 二 O 一 四 年 十 二 月 第一部分 前言 内容提要 电子科学的应用已经渗透入我们的日常生活之中,计数器、数码管显示器、分频器、比较器在我们的生活之中随处可见。本次课程设计是EDA电路设计,通过将多种基本功能元器件组合在一起,实现计数、表决的功能。应用Quartus II 9.1软件 ,用VHDL语言编译完成课程设计,并通过时序仿真波形图验证其正确性。 现实生活中参加表决的人数往往都是上百上千人,甚至上万人。万人表决计数器就是模拟现实中这种人数较多的情况下对表决的人数进行统计、比较和显示的一种运算器。 关键词:表决计数显示器 时序仿真波形图 Quartus II 9.1 一、设计思路 万人表决计数器还具备了异步复位,使能端功能。在规定的时间能进行投票表决,到达规定时间按下使能端,不能再进行投票。若要重新投票或者对另一项决策进行投票则按下复位键,对统计结果进行清零。 第二部分 正文 二、设计原理和内容 万人表决器,用时钟时钟信号中“1”代表投赞成票的人数,以时钟信号中“0”代表投反对票的人数。先通过分频器对时钟信号进行调整,通过十进制的万位计数器,计算投赞成票的人数,然后,将计算的人数通过译码管显示出来,最后,将计数得到的人数通过比较器,比较是否超过半数,如果超过半数则显示通过“1”,如果没有超过半数就显示不通过“0”。 原理框架图 三、实验程序分析 1、10进制计数器 (LIBRARY IEEE; --打开ieee库 USE IEEE.STD_LOGIC_1164.ALL; --使用库中std_logic_1164所有内容 USE IEEE.STD_LOGIC_UNSIGNED.ALL; --使用库中STD_LOGIC_UNSIGNED所有内容 ENTITY counter IS --定义实体counter,进行信号端口定义 PORT( RST,EN,CLK:IN STD_LOGIC; --输入信号引脚端 OC:OUT STD_LOGIC; --OC进位输出信号引脚端 Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));--输出信号引脚端 END counter; --结束实体counter ARCHITECTURE bhv OF counter IS --定义结构体bhv,描述逻辑功能和电路结构 BEGIN PROCESS(RST,EN,CLK) --敏感信号 VARIABLE TMP: STD_LOGIC_VECTOR(3 DOWNTO 0); --设置6位移位数据输出信号STD BEGIN IF RST=1 THEN TMP:=0000;OC=0; --RST=‘1’时,数据清零 ELSIF EN=0 THEN NULL; --EN=‘0’时,不进行任何操作 ELSIF CLKEVENT AND CLK=1 --时钟信号上升沿触发 THEN IF TMP=9 THEN OC=1; --如果TMP=‘9’时,进位OC赋值“1” TMP:=0000; --同时TMP 赋值为“0000” ELSE TMP:=TMP+1; --如果TMP不等于“9”时,TMP加1, OC=0; --同时进位OC赋值“0” END IF; --结束IF语句 END IF; --结束IF语句 Q=TMP; --将TMP计算结果赋值给Q END PROCESS; --结束进程 END bhv; --结束结构体bhv ------------------引用程序(,程序(进行累加进位计数--------------- (LIBRARY IEEE;

您可能关注的文档

文档评论(0)

三哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档