segmento FSM 4x7 muestra Verilog

2

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

    
pregunta Nick

1 respuesta

1

Creo que entiendo tu problema, tuve un problema similar al comenzar a hacer circuitos en HDL (verilog o VHDL) y provenía de la programación en C ++, Python u otros lenguajes.

Lo que necesita entender es que en verilog, sus variables representan cables (bits) o grupo de cables (vectores) ... por lo que no puede asignar la misma variable como salida de 2 partes de su circuito ... esto sería ser tan raro como tener una lámpara con 2 enchufes ...

Simplemente "de alguna manera" ponga ambas máquinas en el mismo proceso y funcionará.

    
respondido por el Cristian Mardones

Lea otras preguntas en las etiquetas