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
beginunico: process (nreset, ck) -- Proceso preparación estados futuros y cambio de estado
beginif nreset='0' then s <= s0; -- Reset asíncrono
elsif ck'event and ck='1' then -- Función relojcase 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
beginb <= '0';
case s iswhen 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