Hola!
Perdón por el retrasillo en contestar, Ignite.
Verás, la implementación de máquinas de estado se puede hacer de muchas maneras, y una de ellas es usando las directivas WAIT. Pero yo personalmente prefiero implemntar procesos que involucren las señales temporales y de reset, en caso de que ellas gobiernen los cambios de entado. Por ejemplo, yo haría cosas como esta:
Codigo:
process (clock, reset)
begin
if reset = "1" then
state <= state0;
elsif rising_edge(clock) then
state <= siguiente_state;
end if;
end process;
Espero que te ayude. En cuanto a tus otras preguntilla, lo primero decirte que es completamente posible hacer una RAM sobre una FPGA, de hecho es una de los primeros ejercicios que se suelen poner a los alumnos. EL dispositivo que debes elegir depende de lo que pretendas hacer. Hay plaquitas entrenadoras hechas especialmente para estudiantes, con programador y software, y la verdad no son demasiado caras.. Yo te recomiendo que, si te lo vas a tomar un poco en serio, te hagas con un entorno de estos porque merece la pena y te quitas de problemas.
Suerte y ya me contarás, vale?