Tipo de datos definido por el usuario en Verilog

1

Siempre he usado VHDL y ahora necesito usar Verilog, así que estoy aprendiendo Verilog. . .

¿Cómo puedo definir y usar el tipo de datos definidos por el usuario en Verilog para máquinas de estado?

para, por ejemplo: en VHDL escribiría algo como abajo

Ejemplo de VHDL:

       type Command_Byte_state_type is (C0,C1,C2,C3,C4,C5);
       signal Command_Byte_state : Command_Byte_state_type;

Verilog equivalente:

       parameter State0=0, State1=1, State2=2, State3=3, State4=4 ;

Mi pregunta es, ¿tiene que asignar un valor de 0/1/2/3/4 al parámetro definido?

¿Cómo puedo DEFINIR EL TIPO DE DATOS PROPIOS en Verilog y usarlo como en VHDL? La convención de nombres se vuelve mucho más fácil cuando se hace esto en VHDL. Además, puedo cambiar fácilmente la implementación del estado de mc a una caliente / gris o cualquier otra, simplemente seleccionando una opción en síntesis.

    
pregunta Displayname

1 respuesta

1

SystemVerilog ha enumerado los tipos, y la mayoría de las herramientas de síntesis ahora admiten esto:

typedef enum {C0,C1,C2,C3,C4,C5} Command_Byte_state_type;

Command_Byte_state_type Command_Byte_state;

Y podrá seleccionar las opciones de codificación en su herramienta de síntesis de la misma manera que lo hace cuando escribe VHDL.

Si insistes en permanecer con Verilog, tendrás que asignar una codificación predeterminada 0/1/2/3/4, pero aún puedes decirle a la herramienta de síntesis que la vuelva a asignar.

    
respondido por el dave_59

Lea otras preguntas en las etiquetas