Sequence request transaction from higher-level sequencer

Dear all,
A sequence may request a transaction from another(higher-level) sequencer??

How will it be?sample code?

Thank you!

Hi Ahan:

Here is a brief outline on how to do this, there are a couple of steps:

  • You need a ovm_seq_item_pull_port at the lower level that will get items from the higher-level sequencer. One place to put it is in the lower-level sequencer, since that is a component.

  • If you are using a lower-level sequence to get the item from the upper-level sequencer, then it will need to call the get() on the seq_item_pull_port in it’s sequencer. That will perform the get from the higher layer. That sequence is then presumably responsible for sending the item to it’s sequencer in the normal way, and also presumably responsible for sending responses back up through the same seq_item_pull_port (alternatively, you can have a parallel monitor sending responses back through the ovm_analysis_port).

  • You’ll need to connect the upper-level sequencer ovm_seq_item_pull_export to the lower-level sequencer seq_item_pull_port.

With those steps, a lower-level sequence is able to get items from the upper-level sequence, operate on them - including sending items to it’s sequencer - and send responses back up if that’s appropriate.

Hope that helps a bit.

-Andy