馃敹Introducci贸n


Tabla de contenido

馃敺Fundamento te贸rico


馃敼 Topic


Ejemplo Boton Start STOP

--Bilbiotecas
library ieee;
use ieee.std_logic_1164.all;

entity SS_MOTOR is 
    port( 
        clk   : in  std_logic;  -- Entrada de reloj
        ss    : in  std_logic;  -- Entrada de se帽al de control
        motor : out std_logic   -- Salida del motor
        );
	--Pines definidos 
    attribute LOC : string;
	-- Asignaci贸n de pines de entrada
    attribute LOC of clk   : signal is "P1";   -- Asignaci贸n de ubicaci贸n para el reloj
    attribute LOC of ss    : signal is "P2";   -- Asignaci贸n de ubicaci贸n para la se帽al de control
	-- Asignaci贸n de pines de salida
    attribute LOC of motor : signal is "P23";  -- Asignaci贸n de ubicaci贸n para la salida del motor
end SS_MOTOR;

architecture RTL of SS_MOTOR is
    type nom_estados is (e0, e1, e2, e3);  -- Definici贸n de los estados
    signal estado : nom_estados := e0;     -- Estado inicial

begin
    process(clk)
    begin 
        if rising_edge(clk) then  -- Comprobaci贸n de flanco de subida del reloj
            case estado is 
                when e0 =>
                    if (ss = '1')  then  -- Transici贸n si hay un flanco de subida en la se帽al de control
                        estado <= e1;
								    else
												estado <= e0;
                    end if;
                when e1 =>
                    if (ss = '1') then  -- Transici贸n si hay un flanco de subida en la se帽al de control
                        estado <= e1;
                    else
                        estado <= e2;  -- Volver al estado inicial si no hay un flanco de subida en la se帽al de control
                    end if;
                when e2 =>
                    if (ss = '1') then  -- Transici贸n si hay un flanco de subida en la se帽al de control
                        estado <= e3;
                    else
                        estado <= e2;  -- Mantener el estado actual si no hay un flanco de subida en la se帽al de control
                    end if;
                when e3 =>
                    if (ss = '1') then  -- Transici贸n si hay un flanco de subida en la se帽al de control
                        estado <= e3;
                    else
                        estado <= e0;  -- Volver al estado inicial si no hay un flanco de subida en la se帽al de control
                    end if;
            end case;
        end if;
    end process;

    -- L贸gica combinacional para controlar la salida del motor seg煤n el estado actual
    with estado select
        motor <= '0' when e0,
                 '1' when e1,
		             '1' when e2,
                 '0' when e3;
end RTL;

馃敻 Resumen


鉂揚reguntas


馃 Ejercicios


馃摀Actividades


鉂梀茅ase tambi茅n