Подумалось, что можно сделать быстрее по быстродействию при помощи ПЗУ. Однако нарвался на сообщение "Multiple declarations of unsigned included via multiple use clauses;"

Цитата
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
entity CS_ROM is
Port ( ADR_INP : in STD_LOGIC_VECTOR (5 downto 0);
CS_INP : in STD_LOGIC;
ADR_OUT : out STD_LOGIC_VECTOR (4 downto 0);
CS_OUT : out STD_LOGIC_VECTOR (2 downto 0));
end CS_ROM;
architecture Behavioral of CS_ROM is
type ram_type is array (63 downto 0) of std_logic_vector (7 downto 0);
signal RAM : ram_type;
-- signal bus_b: std_logic_vector(7 downto 0);
begin
mem: for i in 1 to 63 generate
RAM <= conv_std_logic_vector(conv_integer(i/3),5) & conv_std_logic_vector(conv_integer(i rem 3),3);
end generate mem;
process (ADR_INP, CS_INP)
begin
ADR_OUT <= RAM(to_integer(unsigned(ADR_INP)))(7 downto 3) when CS_INP = '1' else
"00000";
CS_OUT <= RAM(to_integer(unsigned(ADR_INP)))(2 downto 0) when CS_INP = '1' else
"111";
-- bus_b <= RAM(to_integer(unsigned(ADR_INP))) when CS_INP = '1' else
-- "00000111";
-- ADR_OUT <= bus_b(7 downto 3);
-- CS_OUT <= bus_b(2 downto 0);
end process;
end Behavioral;
use IEEE.STD_LOGIC_1164.ALL;
use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
entity CS_ROM is
Port ( ADR_INP : in STD_LOGIC_VECTOR (5 downto 0);
CS_INP : in STD_LOGIC;
ADR_OUT : out STD_LOGIC_VECTOR (4 downto 0);
CS_OUT : out STD_LOGIC_VECTOR (2 downto 0));
end CS_ROM;
architecture Behavioral of CS_ROM is
type ram_type is array (63 downto 0) of std_logic_vector (7 downto 0);
signal RAM : ram_type;
-- signal bus_b: std_logic_vector(7 downto 0);
begin
mem: for i in 1 to 63 generate
RAM <= conv_std_logic_vector(conv_integer(i/3),5) & conv_std_logic_vector(conv_integer(i rem 3),3);
end generate mem;
process (ADR_INP, CS_INP)
begin
ADR_OUT <= RAM(to_integer(unsigned(ADR_INP)))(7 downto 3) when CS_INP = '1' else
"00000";
CS_OUT <= RAM(to_integer(unsigned(ADR_INP)))(2 downto 0) when CS_INP = '1' else
"111";
-- bus_b <= RAM(to_integer(unsigned(ADR_INP))) when CS_INP = '1' else
-- "00000111";
-- ADR_OUT <= bus_b(7 downto 3);
-- CS_OUT <= bus_b(2 downto 0);
end process;
end Behavioral;
Как обойти преграду? Спасибо за любые наводки!
