jueves, 30 de diciembre de 2010

Error: Aggregate expression cannot be scalar type . . .


El mensaje de error:  " Aggregate expression cannot be scalar type ieee.std_logic_1164.std_logic" 

Puede tener diferentes fuentes. En este caso analizaremos el error asociado a la siguiente expresión:

dato_out(7 downto 0)   <=   data_shift(7 downto 0);

En realidad el problema acá es que algunos compiladores no permiten el uso de un 'rango' en lado izquierdo de una instrucción de asignación. Por lo que la solución es bastante sencilla, tanto como definir una señal 'temporaria' a la cual se la usara como intermedia para la asignación libre de error:


signal data_out_tmp: std_logic_vector (7 downto 0); 
. . . 
data_out_tmp <=  data_shift(7 downto 0);


data_out          <= data_out_tmp; 


Un error menos ! :) 


HapyyNew Year !
Feliz Año Nuevo ! 

No hay comentarios:

Publicar un comentario