Você está na página 1de 27

Universidade Federal de Mato Grosso do Sul

Departamento de Engenharia Elétrica


Eletrônica Digital I

Projeto de Eletrônica Digital I – Estacionamento.

Professor: Milton Ernesto Romero Romero


Alunos: Alexandre Santos Andrade Monteiro
Mitchel Hajime Martins Miyashiro

2010
Proposta do Projeto:
O projeto é um sistema de 4 máquinas que visa controlar a entrada de carros a
partir da permissão ou não da entrada dos mesmos em um estacionamento dividido
em 2 setores com 6 vagas cada um. O mesmo possui:
-Duas máquinas que contam quantas vagas existem em cada setor e indicam
se existe ou não vagas no setor;
-Uma máquina que verifica a senha digitada pelo usuário emitindo um alarme
caso errada ou um sinal de correto caso certa;
-Uma máquina que verifica se há vagas no estacionamento em geral a partir
das indicações de existência de vaga das 2 máquinas que contam e informa se
existem vagas em cada setor e senha, também fechando o portão após receber um
sinal que o carro entrou e informando a partir do mesmo sinal se houve entrada não
permitida no estacionamento.

Contador 2

Contador de até 6 vagas que apresenta como entradas:


Entra (1 =entrou um carro, 0=não entrou um carro);
Sai (1=saiu um carro, 0= não saiu um carro);
Clk (clock).
E saída:
Vagas2(1=há vaga, 0=não há vaga).

Estados:
A= existem 6 vagas, esperando sinal de entrada;
B=existem 5 vagas, esperanado sinal de entrada;
C=existem 4 vagas, esperanado sinal de entrada;
D=existem 3 vagas, esperanado sinal de entrada;
E=existem 2 vagas, esperanado sinal de entrada;
F=existe 1 vaga, esperanado sinal de entrada;
G=não existe vagas, esperando sinal de entrada;
H= não existe vagas, esperando sinal de entrada; (para caso um carro entre e saia
não dar problema de quando sair o estado voltar para F)
Mudança de estados (atual – futuro):
A-A:
A-B:
B-B:
B-A:
B-C:
C-C:
C-B:
C-D:
D-D:
D-C:
D-E:
E-E:
E-D:
E-F:
F-F:
F-E:
F-G:
G-G:
G-F:
G-H:
H-H:
H-G:
Contador 2
Contador 2
Contador 1

Contador de até 6 vagas que apresenta como entradas:


Entra (1 =entrou um carro, 0=não entrou um carro) ;
Sai (1=saiu um carro, 0= não saiu um carro);
Clk (clock).
E saídas:
Vagas1 (1=há vaga, 0=não há vaga).

Estados:
A= existem 6 vagas, esperando sinal de entrada;
B=existem 5 vagas, esperanado sinal de entrada;
C=existem 4 vagas, esperanado sinal de entrada;
D=existem 3 vagas, esperanado sinal de entrada;
E=existem 2 vagas, esperanado sinal de entrada;
F=existe 1 vaga, esperanado sinal de entrada;
G=não existe vagas, esperando sinal de entrada;
H= não existe vagas, esperando sinal de entrada; (para caso um carro entre e saia
não dar problema de quando sair o estado voltar para F)

Mudança de estados (atual – futuro):


A-A:
A-B:
B-B:
B-A:
B-C:
C-C:
C-B:
C-D:
D-D:
D-C:
D-E:
E-E:
E-D:
E-F:
F-F:
F-E:
F-G:
G-G:
G-F:
G-H:
H-H:
H-G:
Contador 1
Contador 1
Verificador de senha

Verificador de senha, no caso 8147, aonde ele apresenta 2 saidas alarme (senha
errada) e senha (indica se esta certa);
Entradas:
Zero: botão que representa o valor 0 em decimal;
Um: botão que representa o valor 1 em decimal;
Dois: botão que representa o valor 2 em decimal;
Três: botão que representa o valor 3 em decimal;
Quatro: botão que representa o valor 4 em decimal;
Cinco: botão que representa o valor 5 em decimal;
Seis: botão que representa o valor 6 em decimal;
Sete: botão que representa o valor 7 em decimal;
Oito: botão que representa o valor 8 em decimal;
Nove: botão que representa o valor 9 em decimal;
Clk: clock.

Saídas:
Senha: (0 senha errada, 1 senha certa);
Alarme: (0 senha certa,1 senha errada).

Estados:
A:esperando a primeira entrada;
B:primeira entrada correta (recebeu 8 como entrada), esperando a segunda entrada;
C:primeira entrada errada, esperando a segunda entrada;
D:segunda entrada errada, esperando a teceira entrada;
E:segunda entrada correta (recebeu 1 como entrada), esperando a terceira entrada;
F: terceira entrada correta (recebeu 4 como entrada), esperando a quarta entrada;
G: terceira entrada errada, esperando a quarta entrada;

Mudança de estados (inicial-futuro):


A-A:
A-B:
A-C:
B-B:
B-D:
B-E:
C-C:
C-D:
D-D:
D-G:
E-E:
E-F:
E-G:
F-F:
F-A:
G-G:
G-A:

Verificador de senha
Verificador de senha
Verificador de senha
Portao de entrada

Maquina que controla a entrada dos carros a partir da verificação de se existem vagas
e da senha, abrindo ou não a porta de acesso indicando se existem vagas no
estacionamento e após abrir a porta espera o carro entrar para fechar a porta e
tocando um alarme caso o carro entre forçadamente.

Entradas:
Senha: (1 senha correta, 0 senha errada);
Vagas1: (1= há vaga(s) no setor 1, 0= não há vaga(s) no setor 1);
Vagas2: (1= há vaga(s) no setor 2, 0= não há vaga(s) no setor 2);
Entrou: (1 carro entrou, 0 carro não entrou);
Clk:Clock.

Saídas:
Existe_vagas: (1= existe(m) vaga(s) no estacionamento, 0= não existem
vagas);
Abrir_porta (1=abre a porta, 0= não abre a porta);
Fechar_porta: (1=fecha a porta, 0= não fecha a porta);
Alarme_invasao: (1= toca alarme devido acesso não permitido, 0= não toca o
alarme).

Estados:
A: esperando entrada;
B: recebeu informação da senha é correta (senha=1), esperando sinal vagas1 e
vagas2;
C: recebeu informação de que existe(m) vaga(s) (vagas1=1 e ou vagas2=1),
esperando sinal senha;
D: recebeu que existe(m) vaga(s) (vagas1=1 e ou vagas2=1 e de senha correta
(senha=1), esperando sinal entrou.

Mudança de estados (inicial-futuro):


A-A:
A-B:
A-C:
B-B:
B-A:
B-D:
C-C:
C-D:
C-A:
D-D:
D-A:

Portao de entrada
Portao de entrada
VHDL verificador do portao de entrada:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_unsigned.ALL;

Entity portao IS PORT(


senha,vagas1,vagas2,entrou :IN STD_LOGIC;
clk: IN STD_LOGIC;
existe_vagas,abrir_porta,fechar_porta,alarme_invasao: OUT STD_LOGIC);
END portao;

architecture funcionamento_portao OF portao IS


TYPE estados_portao IS (A,B,C,D);
SIGNAL est: estados_portao;
BEGIN
PROCESS(clk)
BEGIN
IF (clk'EVENT and clk='1') THEN
CASE est IS

WHEN A=>
IF senha='1' AND vagas1='0' AND vagas2='0' AND entrou='0' THEN
est <=B;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas1='1' AND senha='0' AND vagas2='0' AND entrou='0' THEN


est <=C;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas2='1' AND senha='0' AND vagas1='0' AND entrou='0' THEN


est <=C;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF entrou='1' AND senha='0' AND vagas1='0' AND vagas2='0' THEN


est <=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='1';

ELSE
est<=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

END IF;

WHEN B=>
IF senha='1' AND vagas1='0' AND vagas2='0' AND entrou='0' THEN
est <=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas1='1' AND senha='0' AND vagas2='0' AND entrou='0' THEN


est <=D;
existe_vagas <= '1';
abrir_porta <='1';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas2='1' AND senha='0' AND vagas1='0' AND entrou='0' THEN


est <=D;
existe_vagas <= '1';
abrir_porta <='1';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF entrou='1' AND senha='0' AND vagas1='0' AND vagas2='0' THEN


est <=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='1';

ELSE
est<=B;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

END IF;

WHEN C=>
IF senha='1' AND vagas1='0' AND vagas2='0' AND entrou='0' THEN
est <=D;
existe_vagas <= '1';
abrir_porta <='1';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas1='1' AND senha='0' AND vagas2='0' AND entrou='0' THEN


est <=C;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas2='1' AND senha='0' AND vagas1='0' AND entrou='0' THEN


est <=C;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF entrou='1' AND senha='0' AND vagas1='0' AND vagas2='0' THEN


est <=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='1';

ELSE
est<=C;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

END IF;

WHEN D=>
IF senha='1' AND vagas1='0' AND vagas2='0' AND entrou='0' THEN
est <=D;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas1='1' AND senha='0' AND vagas2='0' AND entrou='0' THEN


est <=D;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF vagas2='1' AND senha='0' AND vagas1='0' AND entrou='0' THEN


est <=D;
existe_vagas <= '1';
abrir_porta <='0';
fechar_porta <='0';
alarme_invasao <='0';

ELSIF entrou='1' AND senha='0' AND vagas1='0' AND vagas2='0' THEN


est <=A;
existe_vagas <= '0';
abrir_porta <='0';
fechar_porta <='1';
alarme_invasao <='0';

ELSE
est<=D;
existe_vagas <= '1';
abrir_porta <='1';
fechar_porta <='0';
alarme_invasao <='0';

END IF;

END CASE;
END IF;
END PROCESS;
END funcionamento_portao;

VHDL verificador de senhas:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_unsigned.ALL;

Entity senha IS PORT(


zero,um,dois,tres,quatro,cinco,seis,sete,oito,nove :IN STD_LOGIC;
clk: IN STD_LOGIC;
senha, alarme: OUT STD_LOGIC);
END senha;

architecture funcionamento OF senha IS


TYPE estados IS (A,B,C,D,E,F,G);
SIGNAL est: estados;
BEGIN
--PROCESS(clk,zero,um,dois,tres,quatro,cinco,seis,sete,oito,nove)
PROCESS(clk)
BEGIN
IF (clk'EVENT and clk='1') THEN
CASE est IS

WHEN A=>
IF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=B;
senha <= '0';
alarme <='0';

ELSIF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=C;
senha <= '0';
alarme <='0';
ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=C;
senha <= '0';
alarme <='0';

ELSE
est <=A;
senha <= '0';
alarme <='0';

END IF;

WHEN B=>
IF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0' AND
seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=E;
senha <= '0';
alarme <='0';

ELSIF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSE
est <=B;
senha <= '0';
alarme <='0';

END IF;

WHEN C=>
IF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0' AND
seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=D;
senha <= '0';
alarme <='0';

ELSE
est <=C;
senha <= '0';
alarme <='0';

END IF;

WHEN D=>
IF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0' AND
seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';
ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSE
est <=D;
senha <= '0';
alarme <='0';

END IF;

WHEN E=>
IF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0' AND
seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=F;
senha <= '0';
alarme <='0';

ELSIF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=G;
senha <= '0';
alarme <='0';

ELSE
est <=E;
senha <= '0';
alarme <='0';

END IF;

WHEN F=>
IF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '1';
alarme <='0';

ELSIF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF seis='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSE
est <=F;
senha <= '0';
alarme <='0';

END IF;

WHEN G=>
IF zero='1' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0' AND
seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF um='1' AND zero='0' AND dois='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF dois='1' AND zero='0' AND um='0' AND tres='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF tres='1' AND zero='0' AND um='0' AND dois='0' AND quatro='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF quatro='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND cinco='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';
ELSIF cinco='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND seis='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF seis='1'AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND sete='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF sete='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND oito='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF oito='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0' AND
cinco='0' AND seis='0' AND sete='0' AND nove='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSIF nove='1' AND zero='0' AND um='0' AND dois='0' AND tres='0' AND quatro='0'
AND cinco='0' AND seis='0' AND sete='0' AND oito='0' THEN
est <=A;
senha <= '0';
alarme <='1';

ELSE
est <=G;
senha <= '0';
alarme <='0';

END IF;

END CASE;
END IF;
END PROCESS;
END funcionamento;

Você também pode gostar