Tengo problemas para moverme por Verilog. Estoy tratando de crear un FSM que muestre los números en una de las pantallas y en el siguiente estado para mostrar una cadena. Hice la cadena para que se muestre por separado y el número por separado en 2 proyectos, pero cuando intento combinarlo obtengo errores. Lo que hice fue establecer un bucle always @ y colocar allí una bandera en la sentencia if else con dos casos de cambio, pero me equivoqué al decir que es preferible deshacerse del bucle lógico combinatorio. ¿Hay alguna manera en que pueda combinar ambas funcionalidades?
Ok, publicaré algún código, pero la imagen principal es que tengo una máquina de estados maestra y luego tengo otra máquina de estados. Utilizo la otra máquina de estados como entrada a la pantalla de 7 segmentos para un solo número. Pero en un estado diferente de la máquina de estados maestra tengo que mostrar un mensaje en las pantallas de 4 segmentos. Lo que tengo ahora es: Aquí utilicé CLK para hacer el mensaje
always@(BIN_IN or CLK) begin
if(FAIL==1) begin
case(state)
left:
begin
HEX_OUT [6:0] <= F;
SEG_SELECT_OUT <= 4'b0111;
state <= midleft;
end
midleft:
begin
HEX_OUT [6:0] <= A;
SEG_SELECT_OUT <= 4'b1011;
state <= midright;
end
//same for the rest
end
else begin
case (BIN_IN)
4'h0 : begin
HEX_OUT [6:0] <= 7'b1000000;
SEG_SELECT_OUT <= 4'b0111;
end
//same logic for the other cases
Gracias