es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creación de un subtipo a partir de un tipo enumerado [VHDL]

Después de buscar, no puedo encontrar la respuesta a mi pregunta sobre la creación de subtipos de tipos enumerados en VHDL.

Si tengo un tipo que describe los estados de mi máquina de estados, por ejemplo:

type state_machine is (idle, reset, state1, state2, state3); -- hasta un número 'n' adicional de estados

Puedo tener dos señales utilizando el tipo de estado, es decir:

signal state_signal0 : state_machine := idle;
signal state_signal1 : state_machine := state1;

Sin embargo, supongamos el caso en el que la señal state_signal1 solo utiliza un subconjunto de los tipos de estado, por ejemplo, digamos que solo se le asigna state1 o state2. ¿Es posible generar un subtipo del tipo state_machine?

En mi cabeza, se vería algo así:

type state_machine is (idle, reset, state1, state2, state3);
subtype state_machine_subset is state_machine(state1, state2);

signal state_signal0 : state_machine := idle;
signal state_signal1 : state_machine_subset := state1;

Hasta ahora, no he encontrado una forma de lograr algo así porque todos los ejemplos de subtipos se describen como encontrar rangos dentro de enteros y asignarles positive o natural, etc. ¿Alguien podría arrojar luz sobre esto?

A) ¿Es posible este tipo de definición de subtipo?
B) Si es posible, ¿vale la pena hacerlo? Es decir, ¿proporciona algún beneficio en la síntesis?

Gracias

Tags:  

Answer

  1. Avatar for davy.ai

    A) En VHDL, no es posible crear subtipos de tipos enumerados basados en un subconjunto de valores. Los subtipos solo se pueden crear en base a rangos dentro de enteros, números de punto flotante u otros subtipos.

    B) Dado que no es posible crear subtipos basados en un subconjunto de valores para tipos enumerados, no habría beneficios de síntesis al intentar hacerlo. Sin embargo, si la máquina de estados tiene un gran número de estados, puede ser beneficioso crear señales separadas para subconjuntos de estados con el fin de simplificar el diseño y reducir la complejidad.

Comments are closed.