Está en la página 1de 2

Instituto Tecnológico de Santo Domingo (INTEC)

Electrónica Digital

Practica Final

1) Dado el diagrama de estado del circuito siguiente, A) Implemente el circuito en VHDL.

2) Diseñar un circuito que cuente de 0 a 7, dando el resultado en binario. Utilizando los conceptos de
autómatas finitos(en VHDL).

3) Se necesita diseñar el circuito digital para un ascensor de un edificio de 4 pisos y lo contratan a


usted para esos fines. A) Diseñe una máquina de estados Mealy o Moore para la solución. B)
Implemente el circuito en Lenguaje de Descripción de Hardware(VHDL).

4) Del siguiente código VHDL: a) Diga si es una máquina de estado de Mealy o Moore. B) Genere el
diagrama de estados. C) Identifique lo siguiente: Tipo asociado a los estados, Lógica de los estados,
memoria de estado, lógica de salida.

1
ELSIF (sA = ‘0’ and sB=’1’ and sC = ‘1’) THEN
LIBRARY IEEE; tEstadoSiguiente <= LLENO;
USE IEEE.STD_LOGIC_1164.ALL; END IF;
WHEN LLENO =>
ENTITY MaquinaEstadosMoore IS ELSIF (sA = ‘0’ and sB=’0’ and sC = ‘1’) THEN
PORT ( sA, sB, sC: IN std_logic; --Señal de entrada. tEstadoSiguiente <= NORMAL;
CLK: IN std_logic; --Señal de reloj. ELSIF (sA = ‘0’ and sB=’1’ and sC = ‘1’) THEN
sResetH: IN std_logic; --Señal de inicialización tEstadoSiguiente <= LLENO;
sE, sS: OUT std_logic); --Salida ELSIF (sA = ‘1’ and sB=’1’ and sC = ‘1’) THEN
END MaquinaEstadosMoore; tEstadoSiguiente <= ALARMA;
END IF;
ARCHITECTURE MaquinaEstadosMooreArch OF WHEN ALARMA =>
MaquinaEstadosMoore IS IF (sA = ‘0’ and sB=’0’ and sC = ‘0’) THEN tEstadoSiguiente
--Declaración del tipo asociado a los estados. <= VACIO;
TYPE TipoEstados IS (VACIO, NORMAL, LLENO, ELSE tEstadoSiguiente <= ALARMA;
ALARMA); END IF;
--Señales auxiliares para la codificación del END CASE;
--estado actual y siguiente. END PROCESS LOGICA_ESTADO;
SIGNAL tEstadoActual, tEstadoSiguiente: TipoEstados;
BEGIN -- Proceso dedicado a la Memoria de Estado
MEM_ESTADO: PROCESS(CLK, sResetH, tEstadoSiguiente)
-- Proceso dedicado a la lógica de estado: BEGIN
LOGICA_ESTADO: PROCESS(tEstadoActual, sEntrada) --Inicialización con RESET_H
BEGIN IF (sResetH =’1’) THEN tEstadoActual <= VACIO;
CASE (tEstadoActual) IS ELSIF(rising_edge(CLK)) THEN tEstadoActual <=
WHEN VACIO => tEstadoSiguiente;
IF (sA = ‘0’ and sB=’0’ and sC = ‘0’) THEN tEstadoSiguiente END IF;
<= VACIO; END PROCESS MEM_ESTADO;
ELSIF (sA = ‘0’ and sB=’0’ and sC = ‘1’) THEN
tEstadoSiguiente <= NORMAL; --Zona concurrente dedicada a modelar la
ELSIF (sA = ‘0’ and sB=’1’ and sC = ‘1’) THEN --lógica de salida.
tEstadoSiguiente <= LLENO; sS <= ‘0’ WHEN (tEstadoActual = VACIO)
ELSIF (sA = ‘1’ and sB=’1’ and sC = ‘1’) THEN ELSE ‘1’;
tEstadoSiguiente <= ALARMA; sE <= ‘1’ WHEN (tEstadoActual = NORMAL or
END IF; tEstadoActual = VACIO)
WHEN NORMAL => ELSE ‘0’;
IF (sA = ‘0’ and sB=’0’ and sC = ‘0’) THEN tEstadoSiguiente
<= VACIO; -- sSalida = f(Estado) => Máquina de MOORE.
ELSIF (sA = ‘0’ and sB=’0’ and sC = ‘1’) THEN
tEstadoSiguiente <= NORMAL; END MaquinaEstadosMooreArch;

5) Un circuito secuencial tiene dos flip-flops, A, B; dos entradas, X, Y; dos salidas W, Z; (los
valores de salida están mostrados dentro de cada estado). El diagrama de estados aparece
en la figura a continuación. Implemente el circuito en código VHDL.

También podría gustarte