Jump to content

Recommended Posts

Posted

Section 3.5.4 of the UVM 1.1 User's Guide states that a resposne should be sent from the driver back to the sequencer using one of the following:

using the optional argument to item_done().

seq_item_port.item_done(rsp);

using the put_response() method.

seq_item_port.put_response(rsp);

or using the built-in analysis port in uvm_driver.

rsp_port.write(rsp);

Well that's nice. How about some description of when to use which one of these methods and why?

-Ryan

Posted

I had the same confusion about this. See this thread:

http://www.uvmworld.org/forums/showthread.php?243-seq_item_port.put_response%28rsp%29

From what I can tell, the seq_item_port.item_done(rsp) call should be done if the execution model is not pipelined. If the sequencer will only ever have a single transaction outstanding at a time this this is the method to use.

If you are using a pipelined communication model, then either the seq_item_port.put_response(rsp) or the rsp_port.write() method can be used. If using the response channel on seq_item_port then nothing more needs to be done to connect the sequencer to the driver. If using the rsp_port then in addition to connecting the seq_item_port, the containing agent must also connect the analysis ports. Which method you choose is up to you however - there are no guidelines about which method to use.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...