📄
字号:
五人多数表决器
一,设计目的:
1,学习使用EDA开发工具MAX+plusII。
2,学习使用VHDL语言设计五人多数表决器。
3,熟悉五人多数表决的原理。
二,设计任务:
设计一个五人多数表决器。
三,设计要求:
1) 五人多数表决逻辑:多数通过;
2) 在主持人控制下,10秒内表决有效;
3) 采用数码管显示表决10秒倒计时;
4) 表决结束后用发光二极管及数码管显示表决结果,数码管显示结果形式:通过,不通过;
5) 设主持人控制键,复位键:
控制键:启动表决;
复位键:系统复位。
6) 自制实验方案,完成设计任务。
四,设计思路:
五人多数表决,只要在规定时间内,赞成人数大于或等于三,则表决通过。因此,只需将每位表决人的结果相加,判断结果值。设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的五个输入变量中有3个以上(含3个)为“1”时。则表决器输出为“1”;否则为“0”。
五,管脚说明:
FF:一维数组FF用来表示五位表决者;
QQ:表决最终是否通过(‘1’为“通过”,‘0’为“未通过”);
QALL:表决通过的人数;
SHIJIAN:用来显示倒计时;
FUWEI:主持人复位键,用来系统复位;
KAISHI:主持人控制键,用来启动表决;
CLK:系统时钟。
六,源程序:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_ARITH.all;
use ieee.std_logic_UNSIGNED.all;
ENTITY BIAOJUE IS
PORT( FF:IN STD_LOGIC_VECTOR(1 TO 5);
QQ:OUT BIT;
QALL:OUT STD_LOGIC_VECTOR(3 DOWNTO 1);
SHIJIAN:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);
FUWEI,KAISHI,CLK:IN STD_LOGIC);
END BIAOJUE;
ARCHITECTURE FUNG OF BIAOJUE IS
BEGIN
PROCESS(FF,CLK,KAISHI,FUWEI)
VARIABLE SUO:BOOLEAN;
VARIABLE SUM:STD_LOGIC_VECTOR(1 TO 3);
BEGIN
IF (FUWEI='0') THEN
QQ<='0';
SHIJIAN<="1010";
SUO:=FALSE;
SUM:="000";
QALL<="000";
ELSIF (CLK'EVENT AND CLK='1') THEN
IF (KAISHI='1') THEN
IF (NOT SUO) THEN
IF SHIJIAN="0000" THEN
SUO:=TRUE;
FOR N IN 1 TO 5 LOOP
SUM:=FF(N)+SUM;
END LOOP;
ELSE
SHIJIAN<=SHIJIAN-1;
END IF;
END IF;
QALL<=SUM;
IF (SUM >= 3) THEN
QQ<='1';
ELSE
QQ<='0';
END IF;
END IF;
END IF;
END PROCESS;
END FUNG;
七,实验验证:
建立文本文件,选择File/New/Text Editor File,输入源程序。保存(保存名为:biaojue.vhd),编译。编译通过后建立模拟文件来仿真.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -