error de falta de coincidencia de tipo VHDL

4

Esta es mi primera pregunta.

Tengo un paquete que contiene el siguiente tipo:

type t_rgb_64x48 is array(0 to 47) of std_logic_vector(63 downto 0);

y se está utilizando en mi archivo file.vhd.

file.vhd contiene una entidad que contiene el tipo del paquete mencionado anteriormente:

RData_in : in t_rgb_64x48;
ColumnAddress_Start : in integer;
ColumnAddress_End : in integer;
RowAddress_Start : in integer;
RowAddress_End : in integer;

También contiene una señal con su tipo correspondiente:

type t_vgaram is array(0 to 479) of std_logic_vector(639 downto 0);
signal s_rstorage : t_vgaram;

Necesito acceder a s_rstorage a través de la siguiente declaración:

s_rstorage(ColumnAddress_End downto ColumnAddress_Start)
      (RowAddress_End downto RowAddress_Start)
        <= RData_in(ColumnAddress_End downto
                      ColumnAddress_Start)
                  (RowAddress_End downto RowAddress_Start);

para almacenar el valor de RData_in a s_rstorage y asegurarse de que tengan el mismo ancho en 2D.

El problema es este error:

Type of s_rstorage is incompatible with type of RData_in.

Sé que tienen diferentes tipos como la causa del error. ¿Pero cómo soluciono este problema?

    
pregunta Neigyl Noval

1 respuesta

2

Las matrices de matrices son un poco molestas. ¿Se puede utilizar una matriz 2-d? Aún necesitará algunas funciones de corte, pero podría ser más agradable.

¿Esperas sintetizar esto? Parece que será muy grande, si desea poder sobrescribir áreas arbitrarias de su imagen en una sola marca de reloj, lo que parece ser el caso con el código que describe.

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas