I am trying to use an array of either std_logic_vectors or bit_vectors. However, I am getting an error message that I just can't figure out what it means. Here is my code:
ENTITY rom_array IS
PORT(array_out :OUT BIT_vector(7 downto 0);
clock :IN STD_LOGIC;
row,column :IN STD_LOGIC_VECTOR(2 DOWNTO 0);
pointer_in :IN STRING);
END rom_array;
ARCHITECTURE structure OF rom_array is
BEGIN
PROCESS(clock)
type char_array is array (1 to 7) of bit_vector(7 downto 0);
constant letter_b:char_array:=
(x"7c",x"66",x"66",x"7c",x"66",x"66",x"7c"
;
BEGIN
IF pointer_in = "B" then
array_out<= letter_b(CONV_INTEGER(row));
end if;
end process;
END structure;
When I try to compile this I get the following error message: Unsupported feature error: aggregates are supported only for types that map to an array of bits.
Is this an issue with my compiler or is there an error in my code? I'm using Max+Plus II to compile this code. Does anyone know what the problem is? Thank you in advanced for any help.
-Jorge Perez
ENTITY rom_array IS
PORT(array_out :OUT BIT_vector(7 downto 0);
clock :IN STD_LOGIC;
row,column :IN STD_LOGIC_VECTOR(2 DOWNTO 0);
pointer_in :IN STRING);
END rom_array;
ARCHITECTURE structure OF rom_array is
BEGIN
PROCESS(clock)
type char_array is array (1 to 7) of bit_vector(7 downto 0);
constant letter_b:char_array:=
(x"7c",x"66",x"66",x"7c",x"66",x"66",x"7c"
BEGIN
IF pointer_in = "B" then
array_out<= letter_b(CONV_INTEGER(row));
end if;
end process;
END structure;
When I try to compile this I get the following error message: Unsupported feature error: aggregates are supported only for types that map to an array of bits.
Is this an issue with my compiler or is there an error in my code? I'm using Max+Plus II to compile this code. Does anyone know what the problem is? Thank you in advanced for any help.
-Jorge Perez