1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
library ieee;
use ieee.std_logic_1164.all;
entity test is
port (
x: in integer range 0 to 9;
y: in integer range 0 to 10;
o: out std_ulogic
);
end entity;
architecture arch of test is
-- Test 2D read-only array with non-power-of-2 dimensions
type arr is array (0 to 10, 0 to 9) of std_ulogic;
constant rom: arr := (
('1', '0', '0', '0', '0', '0', '0', '0', '0', '0'),
('0', '1', '0', '0', '0', '0', '0', '0', '0', '0'),
('0', '0', '1', '0', '0', '0', '0', '0', '0', '0'),
('0', '0', '0', '1', '0', '0', '0', '0', '0', '0'),
('0', '0', '0', '0', '1', '0', '0', '0', '0', '0'),
('0', '0', '0', '0', '0', '1', '0', '0', '0', '0'),
('0', '0', '0', '0', '0', '0', '1', '0', '0', '0'),
('0', '0', '0', '0', '0', '0', '0', '1', '0', '0'),
('0', '0', '0', '0', '0', '0', '0', '0', '1', '0'),
('0', '0', '0', '0', '0', '0', '0', '0', '0', '1'),
('0', '0', '0', '0', '0', '0', '0', '0', '0', '0')
);
begin
o <= rom(y, x);
end architecture;
|