Hi,
Below is my code snippet I am trying to execute - My issue is with line 296 where I am using a put method that is not getting executed.
This method is inside a callback. Can someone help me understand why the put method is not working? Please let me know if any additional information is needed.
Thanks in advance.
282 if (gbl.LPMA_enable_bit == 1) begin
283
284 //Declaring handle for svt_usb_link_service
285 svt_usb_link_service link_service_handle = svt_usb_link_service::type_id::create();
286
287 if ((link_command.is_advertisement()) && (link_command.word_info[0]==svt_usb_link_command::LCRD_D)) begin
288
289 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("Entering LPMA callback"), UVM_HIGH);
290
291 link_service_handle.service_type = svt_usb_link_service::LINK_SS_PORT_COMMAND;
292 link_service_handle.link_ss_command_type = svt_usb_link_service::USB_SS_ATTEMPT_U2_ENTRY;
293
294 //Input the link service command into the link service in port
295 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("Inputing U2 service type to link_service_in_port"), UVM_HIGH);
296 component.link_service_in_port.put(link_service_handle);
297 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("U2 service request completed"), UVM_HIGH);
298
299 if (gbl.lp0_vip_agent.shared_status.ltssm_state == svt_usb_types::U2) begin
300 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("Entered U2 state"), UVM_HIGH);
301 end
302 end
303
304 //For this, the TE has to use the callback “pre_usb_ss_tx_link_command_transform_cb_exec” to wait until the VIP sends LPMA.
305 if (link_command.word_info[0] == svt_usb_link_command::LPMA) begin
306
307 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf( "LKRX: LPMA recevied lp_ix=%0d \n", lp_ix ) , UVM_MEDIUM);
308
309 //Then, the TE has to direct the VIP to send LCRD_A using the service command “LINK_COMMAND”.
310 link_service_handle.service_type = svt_usb_link_service::LINK_COMMAND;
311 link_service_handle.link_command = new();
312 link_service_handle.link_command.word_info[ 0 ] = svt_usb_link_command::LCRD_A;
313 link_service_handle.link_command.word_info[ 1 ] = svt_usb_link_command::LCRD_A;
314 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("service_type and link_command assigned"), UVM_HIGH);
315
316 //Input the link service command into the link service in port
317 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("Inputing LCRD_A service type to link_service_in_port"), UVM_HIGH);
318 component.link_service_in_port.put(link_service_handle);
319 `uvm_info (pre_usb_ss_tx_link_command_transform_prfx, $sformatf ("LCRD_A service request completed"), UVM_HIGH);
320 end
321
322 end //LPMA_enable_bit