附录一:
选题一 五人多数表决器
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';
SUM:="000";
QALL<="000";
ELSIF(CLK'EVENT AND CLK = '1') THEN
IF (KAISHI='1') THEN
SUO:=FALSE;
IF(NOT SUO)THEN
SHIJIAN<="1010";
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;