Advertisement
rdsedmundo

Button Controller.vhd

Jun 23rd, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 1.31 KB | None | 0 0
  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  4. USE IEEE.STD_LOGIC_ARITH.ALL;
  5.  
  6. ENTITY Botao_FPGA IS
  7.     PORT(
  8.         Botao_acr : IN STD_LOGIC;
  9.         Botao_dec : IN STD_LOGIC;
  10.         clock     : IN STD_LOGIC;
  11.         zCont     : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
  12. END Botao_FPGA;
  13.  
  14. ARCHITECTURE structural OF Botao_FPGA IS
  15.     SIGNAL Contador    : STD_LOGIC_VECTOR(3 DOWNTO 0)  := "0000";
  16.     SIGNAL Estavel_acr : STD_LOGIC := '0';
  17.     SIGNAL Estavel_dec : STD_LOGIC := '0';
  18.    
  19.     COMPONENT cFiltro IS
  20.         PORT(Botao   : IN STD_LOGIC;
  21.              clock   : IN STD_LOGIC;
  22.              Estavel : OUT STD_LOGIC);
  23.     END COMPONENT;
  24.    
  25.     FOR ALL: cFiltro USE ENTITY work.Filtro(structural);
  26.    
  27.     SIGNAL ant_acr : STD_LOGIC := '0';
  28.     SIGNAL ant_dec : STD_LOGIC := '0';
  29.    
  30. BEGIN
  31.  
  32.     zCont <= NOT(Contador);
  33.    
  34.     PROCESS(clock,Estavel_acr,Estavel_dec,Botao_acr,Botao_dec) IS
  35.     BEGIN
  36.         IF(rising_edge(clock)) THEN
  37.             ant_acr <= Estavel_acr;
  38.             ant_dec <= Estavel_dec;
  39.        
  40.             IF(ant_acr = '0' AND Estavel_acr = '1' AND Botao_acr = '0') THEN
  41.                 Contador <= Contador + 1;
  42.             END IF;
  43.        
  44.             IF(ant_dec = '0' AND Estavel_dec = '1' AND Botao_dec = '0') THEN
  45.                 Contador <= Contador - 1;
  46.             END IF;
  47.         END IF;
  48.     END PROCESS;
  49.    
  50.     m1: cFiltro PORT MAP(Botao_acr,clock,Estavel_acr);
  51.     m2: cFiltro PORT MAP(Botao_dec,clock,Estavel_dec);
  52.    
  53. END structural;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement