package test is
type baz is record
el1 : string;
el2 : integer;
end record;
bundle baz_b of baz is
signal el1 : out;
signal el2 : in;
end;
type baz_a is array(0 to 10) of baz;
type baz_a_str is array(0 to 10) of string;
type baz_a_int is array(0 to 10) of integer;
type foo is record
el1 : integer;
el2 : string;
el3 : baz;
end record;
bundle b of foo is
signal el1 : in;
signal el2 : out;
bundle el3 : baz_b;
end;
end;
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use work.test.all;
entity foofoo is
port (
signal clk : in std_logic;
signal rst : in std_logic;
-- bundle test : view(baz_b) baz_a; -- REJECTED
-- bundle test : baz_b(baz_a); -- REJECTED
-- bundle test : {baz_b} baz_a ; -- REJECTED
bundle test2 : baz_b baz; -- regular bundles
bundle test3 : (baz_b) baz_a; -- array of bundles
signal test_el1 : out baz_a_str;
signal test_el2 : in baz_a_int
);
-- procedure name(bundle ... ) is
-- begin
-- end procedure name;
--
-- map foo (a : integer; bundle foo : b foo) to is
-- begin
-- ( )
-- end map;
end entity foofoo;