@@ -13,23 +13,29 @@ use work.com_pkg.all;
1313use work.com_types_pkg.all ;
1414use work.logger_pkg.all ;
1515use work.sync_pkg.all ;
16+ use work.id_pkg.all ;
17+ use work.vc_pkg.all ;
1618use work.memory_pkg.memory_t;
1719use work.memory_pkg.to_vc_interface;
1820
1921package apb_requester_pkg is
2022
2123 type apb_requester_t is record
2224 -- Private
25+ p_id : id_t;
2326 p_bus_handle : bus_master_t;
2427 p_drive_invalid : boolean ;
2528 p_drive_invalid_val : std_logic ;
29+ p_unexpected_msg_type_policy : unexpected_msg_type_policy_t;
2630 end record ;
2731
2832 impure function new_apb_requester(
33+ id : id_t := null_id;
2934 data_length : natural ;
3035 address_length : natural ;
3136 logger : logger_t := null_logger;
3237 actor : actor_t := null_actor;
38+ unexpected_msg_type_policy : unexpected_msg_type_policy_t := fail;
3339 drive_invalid : boolean := true ;
3440 drive_invalid_val : std_logic := 'X'
3541 ) return apb_requester_t;
@@ -129,10 +135,12 @@ end package;
129135package body apb_requester_pkg is
130136
131137 impure function new_apb_requester(
138+ id : id_t := null_id;
132139 data_length : natural ;
133140 address_length : natural ;
134141 logger : logger_t := null_logger;
135142 actor : actor_t := null_actor;
143+ unexpected_msg_type_policy : unexpected_msg_type_policy_t := fail;
136144 drive_invalid : boolean := true ;
137145 drive_invalid_val : std_logic := 'X'
138146 ) return apb_requester_t is
@@ -146,16 +154,25 @@ package body apb_requester_pkg is
146154 );
147155 end function ;
148156 variable logger_tmp : logger_t := null_logger;
157+ variable id_tmp : id_t := null_id;
158+ constant parent : id_t := get_id(" vunit_lib:apb_requester" );
149159 begin
160+ if id = null_id then
161+ id_tmp := get_id(to_string(num_children(parent) + 1 ), parent);
162+ else
163+ id_tmp := id;
164+ end if ;
150165 if logger = null_logger then
151- logger_tmp := bus_logger ;
166+ logger_tmp := get_logger(id_tmp) ;
152167 else
153168 logger_tmp := logger;
154169 end if ;
155170 return (
171+ p_id => id_tmp,
156172 p_bus_handle => create_bus(logger_tmp),
157173 p_drive_invalid => drive_invalid,
158- p_drive_invalid_val => drive_invalid_val
174+ p_drive_invalid_val => drive_invalid_val,
175+ p_unexpected_msg_type_policy => unexpected_msg_type_policy
159176 );
160177 end ;
161178
0 commit comments