when "01" => if seguinte = "00" then prox <= descendo; elsif( seguinte > "01") then prox <= subindo; else prox <= parado; end if; when "10" => if seguinte = "00" or seguinte = "01" then prox <= descendo; elsif(seguinte = "10") then prox <= parado; else prox <= subindo; end if; when "11" => if seguinte < "11" then prox <= descendo; else prox <= parado; end if; end case; end process; process(atual, andar ) begin case atual is when parado => porta <= '1'; motor <= "00"; enable <= '1'; when subindo => porta <= '0'; motor <= "01"; enable <= '0'; when descendo => porta <= '0'; motor <= "10"; enable <= '0'; end case; end process; process (enable, seletor) begin if (enable = '1') then seguinte <= seletor; end if; end process; end controlador;