Jump to content

Transaction of 2 agents in one sequence

Recommended Posts


I have two agents.
A sequence generates an item and send it to the driver of agent1.
Before the driver execute the item I would like create a new item for the second driver according to the first  item. and then I would like to send it to agent2 driver.

I need both driver to start together at the same time to push the signals to the interface according to the items.

hat is the right way to implement this?


Link to comment
Share on other sites



A common way to achieve this is to have a virtual sequence (i.e. not running on a sequencer that sends sequence items to a driver) that controls the sequences running on both agents. If you only need the sequences to start at the same time, the virtual sequence could call start for each sequence at the appropriate time. If you need to do this periodically, the virtual sequence could grab control of each agent's sequencer and only enable them at the required point in the simulation.


Have a look at section 4.8 in the UVM users guide for further information.




Link to comment
Share on other sites

Thank you,

How can a driver control the sequences running? can you refer me any information on this?

and in which function would you send sequence item to the driver (what about wait_for_grant)?

sequence2 is running several times during sequence1 is running.

I need to randomize sequence item1 first and then each time the second sequence start to set the second sequence item according to the first sequence item. 


thanks again

Link to comment
Share on other sites

The driver controls the sequences by sending an acknowledgement back to the sequencer: either implicitly, immediately it has read the transaction by calling set_item_port.get(), or if it calls set_item_port.get_next_item() instead, it must explictly call seq_itme_port.item_done() to send the acknowledgement.


I would not usually recommend calling low-level sequence methods such as wait_for_grant - start_item followed by finish_item generally provided sufficient control over when sequence items are sent (if you rally want to use the low-level mechanism, sequence items are sent by send_request).




Link to comment
Share on other sites

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.

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...