Suponiendo que no quiero implementar una máquina de estado en verilog, donde tengo 1 salida que es un registro Así que la salida debe estar sincronizada con el reloj de entrada. Sé que las transiciones entre los estados de la máquina deberían implementarse mediante un bloque secuencial, por ejemplo:
always @ (posedge clock)
if (state)
state <= 1'b0;
else
state <= 1'b1;
Si quiero que la salida esté sincronizada con el reloj, ¿la implementación del resultado a través de la combinación servirá? Quiero decir:
always @ (state)
if (state)
Out_Reg = a;
else
Out_Reg = b;
¿Esta implementación sigue siendo válida para que Out_Reg sea un registro activado por flanco positivo?
¿O debería hacer una asignación a Out_Reg en el bloque secuencial para que sea un registro de salida sincronizado válido?