buenas queria consultar sobre la memoria flag, mi duda es, no deberia inicializarse con algun valor ? entiendo que en cada paso flag va a negar su valor anterior, pero cual es el valor inicial?
Eso es parte de lo que tienen que analizar ustedes, es lo primero que se pide: "Analizar la descripción RTL dada."
Estrictamente en el lenguaje RTL esa variable no se sabe como arranca, la forma de analizarlo es ver qué pasa en los dos casos (si arranca en 0 o si arranca en 1).
Tengan en cuenta que en el funcionamiento real es probable que estén muchos períodos de reloj en cada uno de los pasos, ya que, aunque el reloj está dividido, están esperando que un humano oprima botones.