Restricción de enteros sin restricciones en el registro en uso

1

VHDL 2008 nos permite tener registros sin restricciones. Ese es un registro que contiene vectores sin restricciones:

type dummy is record
    sample : unsigned;
    int    : integer;
end record;

cuando el registro se usa para definir una señal que uno escribe

signal s : dummy(sample(2 downto 0));

Este procedimiento es útil si uno quiere usar registros en mapas de puertos de entidades con anchos genéricos.

Me gusta usar números enteros en algunos lugares ya que es más conveniente escribir sig <= 4 que sig <= to_unsigned(4, sig'LENGTH) . Sin embargo, si no restringo el entero, esto podría llevar a tipos grandes (bits desperdiciados).

¿También hay una forma de restringir esto, después de la definición?

    
pregunta ted

2 respuestas

1

No conozco ninguna forma de "post-restringir" un número entero como ese.

Sin embargo, en mi experiencia, las herramientas de síntesis tomarán nota de la fuente de los datos que escribes en cualquier entero abajo de la línea (presumiblemente independientemente de si el entero está en un registro o no, pero no lo he intentado y) propagar las restricciones de esa fuente al destino.

    
respondido por el Martin Thompson
0

Creo que lo que quieres hacer es declarar un subtipo para señal 'sig':

subtype sig_type is integer range 0 to SOME_GENERIC;
signal sig : sig_type;
    
respondido por el VHDL User

Lea otras preguntas en las etiquetas