Sé que las entidades pueden usar tipos de arreglos no restringidos (como STD_LOGIC_VECTOR
) en su lista de puertos, que se dimensionarán automáticamente para coincidir con la señal conectada en el mapa de puertos cuando se ejemplifiquen (y posiblemente tamaños diferentes para cada instanciación). Dentro de los atributos de la entidad, como 'LENGTH
y 'HIGH
, se pueden usar para descubrir el rango real instanciado.
Tengo un objeto de este tipo, que es un paralelo - > convertidor en serie (acepte entradas de cualquier tamaño, las entradas más anchas requieren más ciclos de reloj para escupir).
¿Es posible hacer que la inferencia de rango funcione en sentido inverso, es decir, tener el rango especificado en un subcomponente, aplicado a una señal sin restricciones en el componente principal y propagado desde allí a otros componentes?
Más detalles:
Mi aplicación tiene una serie de subcomponentes de fuente de datos que producen flujos de datos de diversos anchos, lógica de arbitraje para muestrear y serializar estas fuentes round-robin, y convertidores en serie > paralelos que realizan la serialización real y el protocolo de enlace con la lógica de arbitraje de bus.
En este momento tengo los anchos de señal especificados como constantes en un paquete, pero esto significa que siempre que cambie el formato de los datos de flujo, tengo que cambiar tanto el subcomponente de origen como el paquete. Realmente me gustaría que el ancho se especifique solo en el componente de origen, ya que los componentes posteriores se adaptan a cualquier ancho.