Descripción VHDL de la mef en proceso único

La descripción de la mef en proceso único se caracteriza por tener un único proceso responsable para la descripción de la función transición de estados y para la ejecución de la transición de estados

Respecto a las salidas, estas pueden estar detalladas en un proceso o no

Ejemplo:

entity mef1process is
port

(ck, nreset, e: in bit;
a, b: out bit);

end;
architecture f of mef1process is
type estado is (s0, s1); -- Definición de estados
signal s: estado; -- Variable tipo estado
begin

unico: process (nreset, ck) -- Proceso preparación estados futuros y cambio de estado
begin

if nreset='0' then s <= s0; -- Reset asíncrono
elsif ck'event and ck='1' then -- Función reloj

case s is -- Preparación próximos estados

when s0 => if e = '1' then s <= s1; else s <= s0; end if;
when s1 => if e = '1' then s <= s1; else s <= s0; end if;

end case;

end if;

end process;
salida: process (s, e) -- Proceso función salida
begin

b <= '0';
case s is

when s0 => a <= '0'; -- Salida tipo Moore: independiente de la entrada
when s1 => a <= '1';

if e = '1' then b <= '1'; -- Salida tipo Mealy: dependendiente de la entrada
end if;

end case;

end process;

end;

Cuando se trabaja con circuitos secuenciales que tienen una entrada de reset asíncrona suele ser más común implementar la función de reloj utilizando la instrucción if. Caso de no tener un reset asíncrono puede utilizarse, con igual comodidad, la instrucción wait

Anterior
Volver a inicio curso
Volver a inicio capítulo
Siguiente


WcN - Joan Oliver. Diseño de circuitos digitales con VHDL: máquinas de estado finito