Indexe en std_logic_vector usando la señal

0

Necesito modificar una cierta parte de un registro, pero el límite superior e inferior de la parte modificada depende de la entrada. Puede el siguiente código:

(1) ser sintetizado?

(2) Si es así, ¿qué circuito producen las herramientas?

reg (to_integer (unsigned(upper1)) downto to_integer (unsigned(lower1)))
 <= input (to_integer (unsigned(upper2)) downto to_integer (unsigned(lower2));

(edición: la sintaxis puede ser incorrecta, pero espero que haya entendido la idea)

    
pregunta user3109672

1 respuesta

0

Sí, es posible que cada bit de registro sea alimentado por cualquiera de los bits de entrada siempre que upper1 , lower1 , upper2 y lower2 están dentro del rango de los respectivos vectores.

Tenga en cuenta que cualquier bit reg que no esté especificado por el rango entre upper1 y lower1 no se modificará (formando un enclavar en una implementación combinatoria, por ejemplo, asignación concurrente o una salida sin cambios de un flipflop en un diseño secuencial (por ejemplo, proceso sincronizado) y cualquiera de los bits de entrada no cubiertos en el rango de upper2 a lower2 será ignorado.

Como comentó Eugene_Sh, se hará utilizando multiplexores.

    
respondido por el dst

Lea otras preguntas en las etiquetas