Guest User

Untitled

a guest
Oct 22nd, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VHDL 2.26 KB | None | 0 0
  1. LIBRARY ieee;
  2. USE ieee.std_logic_1164.all;
  3.  
  4. ENTITY detector_c IS
  5.     PORT (  CLK, i, y, g, r, b: IN STD_LOGIC;   -- declaração dos sinais de entrada
  6.         a : buffer STD_LOGIC;
  7.         s: out std_logic;
  8. END EXEMPLO;
  9.  
  10. ARCHITECTURE comportamental OF detector_c IS
  11.     TYPE type_state IS (E0,E1,E2,E3,E4,E5);         -- criação de tipos enumerados
  12.     SIGNAL Estado: type_state;              -- declaração de variável de estado
  13.     SIGNAL Entradas: STD_LOGIC_VECTOR(4 DOWNTO 1);      -- declaração de vetor auxiliar
  14. BEGIN
  15.     Entradas<= y & g & r & b;       -- concatenação dos sinais de entrada RE e RD como um vetor
  16.     PROCESS (CLK, i)        -- declaração da sensibilidade do processo
  17.     BEGIN
  18.         IF (i='0') THEN    Estado <= E0; s='0';  -- estado de reset do sistema
  19.         ELSIF (CLK'event and CLK='1') THEN              -- detecção de borda de subida do clk
  20.             CASE Estado IS
  21.        
  22.                 WHEN E1 =>
  23.                     IF a= '0' THEN Estado <= E1; s='0';   -- transição E1->E2
  24.                     ELSIF Entradas= "1000" THEN Estado <= E2;  s='0';-- transição E1->E4
  25.                     else Estado <= E0;  s='0'
  26.                     END IF;
  27.                    
  28.                 WHEN E2 =>
  29.                
  30.                     IF a= '0' THEN Estado <= E2;  s='0';   -- transição E1->E2
  31.                     ELSIF Entradas= "0100" THEN Estado <= E3;  s='0';-- transição E1->E4
  32.                     else Estado <= E0; V <= "000"
  33.                     END IF;
  34.                    
  35.                 WHEN E3 =>
  36.                    
  37.                     IF a= '0' THEN Estado <= E3; V <=  s='0';   -- transição E1->E2
  38.                     ELSIF Entradas= "0010" THEN Estado <= E4;  s='0';-- transição E1->E4
  39.                     else Estado <= E0;  s='0';
  40.                     END IF;
  41.                    
  42.                 WHEN E4 =>
  43.                
  44.                     IF a= '0' THEN Estado <= E4;  s='0';   -- transição E1->E2
  45.                     ELSIF Entradas= "0001" THEN Estado <= E2;  s='0';-- transição E1->E4
  46.                     else Estado <= E0; V <= "000"
  47.                     END IF;
  48.                    
  49.                 WHEN E5 =>
  50.                    
  51.                     s='1';
  52.                     Estado <= E0;
  53.                  
  54.         END CASE;
  55.         END IF;
  56.     END PROCESS;
  57. END comportamental;
Add Comment
Please, Sign In to add comment