基于VHDL语言的多人表决器设计

实验原理

​ 用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为逻辑“0”时,表示表决者“不赞同”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。

​ 七人表决器设计方案很多,比如用多个全加器采用组合电路实现。用VHDL语言设计七人表决器时,也有多种选择。我们可以用结构描述的方式用多个全加器来实现电路,也可以用行为描述。采用行为描述时,可用一变量来表示选举通过的总人数。当选举人大于或等于4时为通过,绿灯亮;反之不通过时,黄灯亮。描述时,只须检查每一个输入的状态(通过为“1”,不通过为“0”),并将这些状态值相加,判断状态值和即可选择输出。

设计思路:

本设计采用多个全加器实现组合电路,用七个开关作为表决器的七个输入变量,逻辑“1”时表示“赞同”,逻辑“0”时表示“不赞同”,用发光二极管作为输出指令,输出逻辑“1”表示“通过”;输出逻辑“0”时表示“不通过”。当表决器的七个输入变量中的4个以上(包含4个)为“1”时,则表决器输出为“1” ,绿灯亮;否则为“0”绿灯不亮。

软件说明:ModelSimSetup-13.1.0.162,QuartusSetup-13.1.0.162。

建立工程:

第一步:打开Quartus软件。

第二步:点击New Project Wizard -> next.

第三步:选择工程文件的存放位置,输入工程名 -> next -> next。

第四步:在family栏选择芯片型号-Cyclone IV E,在Name栏选择EP4CE115F29C7,选择完之后点击next。(如果不进行硬件调试时,此处默认即可)

第五步:检查工程有没有建错,点击完成。如下图:

程序设计:

表决器顶层文件设计:

library ieee;
use ieee.std_logic_1164.all;
entity bjq is
port( a:in std_logic_vector(6 downto 0); --7个人num:buffer integer range 0 to 7; --表决通过人数
co:out std_logic); --是否通过信号
end bjq;
architecture art of bjq isBeginprocess(a)variable b:integer range 0 to 7; --定义变量b
beginb:=0;for n in 0 to 6 loopif a(n)='1' then      b:=b+1; --统计通过人数end if;end loop;num<=b;if(b>=4)then co<='1';else co<='0';end if;
end process;
end art;

文件仿真(这里采用modelsim仿真波形):

  1. 选择File-> New -> Verification/Debugging Files ->University Program VWF。

2.打开测试文件。(右键点击添加端口,对输入信号初始化,赋值。)

3.仿真结果:

逻辑电路图:

显示编译成功后,选择菜单栏 Tools –>Netlist Viewers –>RTL Viewer 显示逻辑电路图

基于VHDL语言的多人表决器的设计相关推荐

  1. 基于VHDL语言的状态机设计

    基于VHDL语言的状态机(FSM)设计 状态机(Finite State Machine,FSM) 状态机的组成:如图所示 状态机的种类: Mealy型:当前状态.当前输入相关 Moore型:仅当前状 ...

  2. 基于VHDL语言的8路彩灯控制器的设计_kaic

    摘  要 伴随着我国电子科学技术的发展,彩灯越来越多地被融入到现代生活中的各式各样的景观中,彩灯作为一种装饰生活的观赏工具,不仅满足了人们视觉上的享受和娱乐,同时受关注的还有彩灯的花式花样.创意.节能 ...

  3. 基于VHDL语言八位加法器设计

    基于VHDL语言八位加法器设计 设计思路 ​ 加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成.多位加法器的构成有两种方式:并行进位和串行进位.并行进位加法器设有进位产生逻辑,运 ...

  4. matlab hod on,基于Matlab语言定量反馈控制器的分析与设计_朱永文

    计算机测量与控制. 2002. 10( 12) 822 Computer Measurement & Control 文章编号: 1671- 4598( 2002) 12- 0822- 02 ...

  5. 基于Verilog语言的13进制计数器设计

    基于Verilog语言的13进制计数器设计 `timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2019/11/10 ...

  6. C语言五子棋禁手算法的编写,基于C语言的五子棋辅助软件的设计与实现.doc

    基于C语言的五子棋辅助软件的设计与实现 广东工业大学 本科毕业设计(论文) 基于C语言的五子棋辅助软件的设计与实现 系 部 专 业 年 级 班级名称 学 号 学生姓名 指导教师 2012 年 5 月 ...

  7. 基于VHDL语言的数字秒表实现

    使用VHDL语言实现数字秒表 设计一块数字秒表,能够精确反映计时时间,并完成复位.计时功能.秒表计时的最大范围为1小时,精度为0.01秒,并可显示计时时间的分.秒.0.1秒等度量. ( 1) 具有秒表 ...

  8. 基于Go语言实现高并发推荐系统架构设计

    猜你喜欢 0.[免费下载]2021年12月热门报告盘点1.史上最全推荐系统传统算法合集2.推荐系统模型:多场景下的星型CTR预估模型3.新一代Rank技术在阿里巴巴推荐系统中的应用实践4.预训练模型在 ...

  9. 基于c语言的物业管理系统设计,基于C#语言的小区物业管理系统的设计与实现

    摘要: 随着人们生活水平和消费水平的不断提高,人们在追求物质生活的同时,更注重生活的质量,小区物业管理作为一种服务行业,与人们的生活息息相关,是人们生活质量的最基本需求.因此,小区物业管理系统的研究和 ...

  10. 【电梯控制系统】基于VHDL语言和状态机实现的电梯控制系统的设计,使用了状态机

    1.软件版本 quartusii/Maxplusii 2.系统概述 电梯作为高层建筑物的重要交通工具与人们的工作和生活日益紧密联系. 电梯的三种主要控制方式中,继电器控制系统由于故障率高.可靠性差.控 ...

最新文章

  1. 为什么一定要前后端分离?
  2. “看墙之外” ——遮挡下的人体姿态估计
  3. 前端学习(2263)vue造轮子之webstrom使用
  4. LeetCode之两数之和
  5. 计算机组成原理哈工大期末_浅谈计算机组成原理(三)
  6. python 迭代器协议_浅谈Python中的生成器和迭代器
  7. java 生成复杂的word_Java 动态生成复杂 Word
  8. 如何向小白讲述软件架构发展历程?
  9. 北京科技大学计算机控制大作业,北京科技大学计算机控制系统实验报告
  10. scala中getorElse()方法
  11. C# 将Word,Execl,PPT,Project, 文件转成PDF, 不依赖Office!!
  12. 编译工具链和交叉编译工具链简易说明
  13. PhotoShop PS 教程 100例
  14. i.MX6ULL终结者硬件资源说明
  15. 《社会心理学》第一章读书笔记
  16. 京东上的神器,评论区的问答蛮搞的
  17. 惊了!这是一篇《IOC》说明书?
  18. 1亿个数中找出最大的100个数(top K问题)
  19. 《Designing Data-Intensive Application》03存储与检索
  20. 天选2 使用微PE工具箱制作PE盘、进入PE系统

热门文章

  1. iPhone 14 Pro Max拆解:内部元器件供应商名单
  2. 十年存储路,宏杉科技再创新“高”
  3. 宏杉科技高端存储再获认可 成功中标国家电网集采
  4. 文本编辑器vscode编译运行c++文件(.cpp)
  5. 恢复 火狐浏览器书签、插件、密码等
  6. 【AD20学习笔记】PCB封装库的创建
  7. MySQL总结4_多表查询
  8. 【笔记分享】LED点阵屏幕显示原理
  9. SHA256算法原理介绍以及实现
  10. 有必要考国二mysql_国二证有用吗