In UVM, which driver communication style is more commonly used in industry and why?
-
get_next_item()+item_done() -
get()+put()
I created simple examples of both methods and the behavior looks almost the same from the sequence side (start_item()/finish_item() flow).
The main difference I observed is:
-
With
get_next_item()/item_done(), the sequence can usewait_for_item_done(). -
With
get()/put(), there seems to be no need forwait_for_item_done()because the response comes throughput()→get_response().
Am I understanding this correctly?
What are the practical advantages, use cases, and industry reasons for choosing one method over the other?