Vous êtes sur la page 1sur 6

Experincia 01 Decodificador Alarme

Andr Luis Gomes Magalhes 09/0106016


Faculdade UnB Gama Universidade de Braslia - UnB Braslia, Brasil Sistemas Digitais 02

I.

OBJETIVOS

COMPONENTES DE UM PROJETO VHDL A estrutura de um programa VHDL, baseia-se em 4 blocos: PACKAGE so declarados as constantes, tipos de dados, sub-programas; ENTITY declarao dos pinos de entrada e sada; ARCHITECTURE define as implementaes do projeto; CONFIGURATION define as arquiteturas que sero utilizadas. III. ESPECIFICAO DO PROJETO O sistema recebe sinais de oito sensores e mostram no display do FPGA a zona referente ao setor violado e um sinal valid que informa que houve violao. IV. IMPLEMENTAO O circuito divide-se em dois blocos:

Implementar em FPGA um circuito codificador e um decodificador para ser usado com um alarme residencial que possua sensores em diversas zonas da residncia a fim introduzir-se as tcnicas e processos envolvidos na elaborao de projetos usando a ferramenta Xilinx. II. INTRODUO TERICA VHDL-Very Hight Speed Integrated Circuit Hardware Description Language (Linguagem de Descrio de Hardware com nfase em Circuitos Integrados de altssima velocidade. uma linguagem de descrio de hardware que descreve modelos de sistemas hardwares, que executados em um software chamado simulador e pode ser implementado em um dispositivo programvel (FPGA Field Program Gate Array), permitindo assim o uso em campo do seu sistema, tendo a grande vantagem da alterao do cdigo a qualquer momento. Possuem vrias vantagens tais como: Intercmbio de projetos entre grupos de pesquisa sem a necessidade de alterao; Permite ao projetista considerar no seu projeto os delays comuns aos circuitos digitais; O custo de produo de um circuito dedicado elevado, enquanto que usando VHDL e Dispositivos Programveis o custo muito menor; Quanto as desvantagens, apenas uma relevante: VHDL no gera um hardware otimizado;

CODIFICADOR: (decodificador) Possui oito entradas que sinalizam com sinal 1(HIGH) a zona violada e codifica para um nmero de base 2 enviado para seu barramento de sada de 3 bits, e a sada valid que indica com 1(HIGH) quando algum sensor acionado desligando um led ponto no display. DECODIFICADOR: (alarme) Possui barramento de entrada de 3 bits proveniente do Bloco decodificador e mostra no display do FPGA o nmero referente zona invadida. Recebe o nmero de base dois e converte em

pulsos 0(LOW) no barramento de sada de 7 bits referentes a posio do segmento a ser ligado do display de sete segmentos. TEST BENCH Simulou-se os sinais de entradas a fim verificar-se as respostas das entradas referentes s zonas de 0 a 8 nas no barramento de sada do bloco decodificador.

VI. CONCLUSO O uso de FPGA pra implementar circuitos lgicos mostrou-se muito eficaz para a aplicao do problema proposto em roteiro. Por ser uma linguagem com nvel de abstrao alto, projetar circuitos lgicos por VHDL consideravelmente mais eficiente e prtico que a nvel de portas lgicas. O circuito respondeu aos estmulos de entradas conforme o esperado.

V. PROTOTIPAO Criou-se o arquivo UCF para definio dos pinos do FPGA que seriam usados pelo projeto. Saidas: Barramento de 6 Bits em Display 7 seg FPGA: NET zof<0> LOC="E14"; NET zof<1> LOC="G13"; NET zof<2> LOC="N15"; NET zof<3> LOC="P15"; NET zof<4> LOC="R16"; NET zof<5> LOC="F13"; NET zof<6> LOC="N16"; Saida validf para o LED ponto do display: NET validf LOC="P16"; Entradas: Barramento de 8 bits do sensores em chaves da FPGA: NET zonaf<0> LOC="F12"; NET zonaf<1> LOC="G12"; NET zonaf<2> LOC="H14"; NET zonaf<3> LOC="H13"; NET zonaf<4> LOC="J14"; NET zonaf<5> LOC="J13"; NET zonaf<6> LOC="K14"; NET zonaf<7> LOC="K13"; Aps realizar-se a sntese do projeto atravs da ferramenta Xilinx, implementou-se o projeto no FPGA. Com o FPGA carregado com o circuito testou-se as combinaes de entrada acionando cada uma das 8 chaves que simulam os sensores verificando as respostas no display. Aps os testes prticos na FPGA verificou-se que o sistema funcionou como previsto em projeto.

ANEXOS Cdigo VHDL:

DECODIFICADOR entity decodificador is Port ( zona : in STD_LOGIC_VECTOR (7 downto 0); zo : out STD_LOGIC_VECTOR (2 downto 0); valid : out STD_LOGIC); end decodificador; architecture Behavioral of decodificador is begin zo <= "000" when zona(0) = '1' else "001" when zona(1) = '1' else "010" when zona(2) = '1' else "011" when zona(3) = '1' else "100" when zona(4) = '1' else "101" when zona(5) = '1' else "110" when zona(6) = '1' else "111" when zona(7) = '1' else "000"; valid <= not(zona(0) or zona(1) or zona(2) or zona(3) or zona(4) or zona(5) or zona(6) or zona(7));

end Behavioral; ALARME entity alarme is Port ( zin : in STD_LOGIC_VECTOR (2 downto 0); display : out STD_LOGIC_VECTOR (6 downto 0)); end alarme;

architecture Behavioral of alarme is

begin

display <= "1111001" when zin = "000" else "0100100" when zin = "001" else "0110000" when zin = "010" else "1111001" when zin = "011" else "0010010" when zin = "100" else "0000010" when zin = "101" else "1011000" when zin = "110" else "0000000" when zin = "111" else "1111111";

end Behavioral;

TOP MODULE entity alarmefinal is Port ( zonaf : in STD_LOGIC_VECTOR (7 downto 0); zof : out STD_LOGIC_VECTOR (6 downto 0); validf : out STD_LOGIC); end alarmefinal;

architecture Behavioral of alarmefinal is

signal sinin : STD_LOGIC_VECTOR (2 downto 0);

component decodificador is Port ( zona : in STD_LOGIC_VECTOR (7 downto 0); zo : out STD_LOGIC_VECTOR (2 downto 0); valid : out STD_LOGIC); end component;

component alarme is Port ( zin : in STD_LOGIC_VECTOR (2 downto 0); display : out STD_LOGIC_VECTOR (6 downto 0));

end component;

begin

u1: decodificador port map (zonaf, sinin, validf); u2: alarme port map ( sinin, zof);

end Behavioral;

Vous aimerez peut-être aussi