noname Posted May 1, 2013 Report Posted May 1, 2013 Hello, 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? Thanks Quote
David Long Posted May 1, 2013 Report Posted May 1, 2013 Hi, 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. Regards, Dave Quote
noname Posted May 2, 2013 Author Report Posted May 2, 2013 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 Quote
David Long Posted May 2, 2013 Report Posted May 2, 2013 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). Regards, Dave Quote
Recommended Posts
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.