Operador VHDL Plus '+' y sintaxis hacia abajo

1

Considerando las variables a y b como STD_LOGIC_VECTOR (31 DOWNTO 0) tenemos a + b como resultado de 33 bits;

¿Cómo podemos obtener 32 bits de esto?

¿VHDL tiene algo como (a+b)(31 downto 0) o deberíamos almacenar c:= a+b y luego obtener c(31 downto 0) ?

    
pregunta VSB

2 respuestas

2

Si a, b, c es del tipo std_logic_vector(31 downto 0) ,

entonces, c := a + b;
le dará la respuesta de 32 bits en c (sin carry) como usted lo requiera.

Si quieres una respuesta de 33 bits en c (donde c es std_logic_vector(32 downto 0) )

Luego, c := ('0' & a) + ('0' & b) dará la respuesta de 33 bits.

Pero necesitará el paquete ieee.std_logic_unsigned para agregar std_logic_vector usando el operador + .

    
respondido por el nidhin
0

declarar

  

temp de señal: std_logic_vector (32 downto 0);

y en código

  

temp < = ('0' & a) + ('0' & b);

     

c < = temp (31 downto 0);

Por lo que entendí de tu pregunta, esta respuesta te ayudará. De lo contrario, hágamelo saber.

    
respondido por el tollin jose

Lea otras preguntas en las etiquetas