Skip to main content

Posts

Showing posts from September, 2013

Maquina de Mealy Ejemplo: Ascensor

entity behavioral is port ( Planta_Baja : in std_logic; Piso_Uno    : in std_logic; Piso_Dos    : in std_logic; salidas     : out std_logic_vector(1 downto 0) -- para polarizar el motor, tierra y voltaje por eso se require los dos bits ); end behavioral architecture AscMealy of behavioral is type ascEstados is (PB, 1, 2); signal Estados, prox_estados AscEstados; begin Process(Planta_Baja, Piso_Uno, Piso_Dos, Estado) begin Case PB => if (Planta_Baja = '1')then Prox_estado <= 1; else Prox_estado <= PB; endif; case 1 => if (Piso_Uno = '1')then Prox_estado <= 2; else prox_estado <= 1; endif; case 2 => if (Piso_Dos = '1')then Prox_estado <= 1; else prox_estado <= 2; endif; end Process; Process (reloj, Reset) begin if (Reset = '1')then estado <= PB; elsif (clk'event and clk = '1') then

Maquina Moore Ejemplo: Ascensor

entity behavioral is port ( Planta_Baja : in std_logic; Piso_Uno    : in std_logic; Piso_Dos    : in std_logic; salidas     : out std_logic_vector(1 downto 0) -- para polarizar el motor, tierra y voltaje por eso se require los dos bits ); end behavioral architecture AscMoore of behavioral is type ascEstados is (PB, 1, 2); signal Estados, prox_estados AscEstados; begin Process(init, PB_UP, P1_UP, P1_DOwN, P2, P2_DOWN) signal estado, prox_edo : AscMoore; begin Process (estado,Planta_Baja, Planta_Un, Planta_Dos) begin case estado is when init => if Planta_Baja='1' then Prox_estado <= PB_UP else Prox_estado <=init; endif; when PB_UP => prox_estado <= P1_UP; when P1_UP => if Piso_Uno='1' then Prox_estado <= P1_UP; else Prox_estado <= P1_DOWN; endif; when P1_DOWN => Prox_estado <= init; Process (estado) begin