Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. ---- Implementação ---------------------------------------------------------------
  2.  
  3. LIBRARY ieee ;
  4. USE ieee.std_logic_1164.all ;
  5. USE ieee.std_logic_unsigned.all;
  6. USE ieee.math_real.all;
  7.  
  8. ENTITY tra_final IS
  9. PORT (
  10. Senha : in std_logic_vector(1 downto 0);
  11. B0,B1: in std_logic;
  12. Clk: in std_logic;
  13. saida_comparadorsenha1 : in std_logic;
  14. saida_comparadorsenha2 : in std_logic;
  15. en_comparadorsenha1 : out std_logic;
  16. en_comparadorsenha2 : out std_logic;
  17. rst_temporizador: out std_logic;
  18. en_temporizador: out std_logic
  19.  
  20.  
  21. );
  22. END tra_final;
  23.  
  24. ARCHITECTURE bloco_controle OF tra_final IS
  25. TYPE ESTADO IS (inicio, espera, senha1, senha2, comparasenha, fimSenha);
  26. SIGNAL estado_atual : ESTADO;
  27. SIGNAL prox_estado : ESTADO;
  28. BEGIN
  29. -- Seleção de estados
  30. PROCESS (clk,B0,B1)
  31. BEGIN
  32. estado_atual <= prox_estado;
  33. IF (rising_edge(clk)) THEN
  34. CASE estado_atual IS
  35. WHEN inicio =>
  36. prox_estado <= espera;
  37.  
  38.  
  39. WHEN espera =>
  40. IF (B0 = '1' AND B1 = '0' ) THEN
  41. prox_estado <= senha1;
  42.  
  43. ELSE
  44. prox_estado<= espera;
  45.  
  46. END IF;
  47.  
  48. WHEN senha1 =>
  49. IF (B0 = '0' AND B1 = '1' ) THEN
  50. prox_estado <= senha2;
  51.  
  52. ELSE
  53. prox_estado <= senha1;
  54.  
  55. END IF;
  56.  
  57. WHEN senha2 =>
  58. IF (B0 = '0' AND B1 = '1') THEN
  59. prox_estado <= comparasenha;
  60.  
  61. ELSE
  62. prox_estado <= senha2;
  63.  
  64. END IF;
  65.  
  66. WHEN comparasenha =>
  67. IF (saida_comparadorsenha1 ='1' and saida_comparadorsenha2 ='1') THEN
  68. prox_estado <= fimSenha;
  69. ELSE
  70. prox_estado <= senha1;
  71. END IF;
  72. WHEN fimSenha =>
  73. IF (B0 = '1' AND B1 = '0' ) THEN
  74. prox_estado <= senha1;
  75. ELSE
  76. prox_estado<= fimSenha;
  77. END IF;
  78.  
  79.  
  80.  
  81.  
  82. END CASE;
  83. END IF;
  84. END PROCESS;
  85. ----- transicoes
  86.  
  87.  
  88. PROCESS (estado_atual)
  89. BEGIN
  90. CASE estado_atual IS
  91. WHEN inicio =>
  92. en_comparadorsenha1 <= '0';
  93. en_comparadorsenha2 <= '0';
  94. rst_temporizador <= '1';
  95. en_temporizador <= '0';
  96.  
  97. WHEN espera =>
  98. en_comparadorsenha1 <= '0';
  99. en_comparadorsenha2 <= '0';
  100. rst_temporizador <= '0';
  101. en_temporizador <= '0';
  102.  
  103.  
  104. WHEN senha1 =>
  105. en_comparadorsenha1 <= '1';
  106. en_comparadorsenha2 <= '0';
  107. rst_temporizador <= '0';
  108. en_temporizador <= '0';
  109.  
  110. WHEN senha2 =>
  111. en_comparadorsenha1 <= '0';
  112. en_comparadorsenha2 <= '1';
  113. rst_temporizador <= '0';
  114. en_temporizador <= '0';
  115.  
  116. WHEN comparasenha =>
  117.  
  118. en_comparadorsenha1 <= '0';
  119. en_comparadorsenha2 <= '0';
  120. rst_temporizador <= '0';
  121. en_temporizador <= '0';
  122.  
  123. WHEN fimSenha =>
  124.  
  125. en_comparadorsenha1 <= '0';
  126. en_comparadorsenha2 <= '0';
  127. rst_temporizador <= '0';
  128. en_temporizador <= '1';
  129.  
  130.  
  131.  
  132. END CASE;
  133. END PROCESS;
  134.  
  135.  
  136. END bloco_controle;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement