Grabbing sequencers

I am having around 6-7 sequencers in virtual sequencers. I want to grab all of them in my interrupt sequence. Is there a way to do that apart from grabbing individual sequencers since we can’t grab virtual sequencer. I want to avoid multiple lines of code for grabbing and ungrabbing.

In reply to ashishk:

Another question based on this. In virtual sequence I need to grab sequencer of one interface uvc and need to call a virtual sequence which does transaction on that interface only. Is it possible to do this?

In reply to ashishk:

Hi

Can you give some description on requirement of using grab.

In reply to praveena h u:

So scenario is something like. I have multiple virtual sequences which are up and running and generating traffic on 2 interfaces. In my interrupt handler sequence when i get one special type of interrupt I want to silent traffic on those interfaces, so I am trying to grab both sequencers to gain control. Now my requirement is to start one more virtual sequence within this and on completion do ungrab so that other virtual sequences may resume. I know grab only provides control for one specific sequence bit my requirement is to initiate one more virtual sequence wihtin the interrupt handler(as i don’t want to copy paste whole code).

~Ashish

Hi,

Here are my two cents:

Every sequence has a virtual function called is_relevant(), which by default returns 1. Sequencer by default only arbitrates among relevant sequences.

So, just write a BaseSequence class which overrides this is_relevant() function call to return 0 as long as interrupt is active and once interrupt sequence is done, then this function will return 1.
It could look something like:
virtual function bit is_relevant();
return(! p_sequencer.interrupt_active); // __ Negation of interrupt active is returned here.
endfunction

Interrupt sequence is responsible for toggling this bit in the sequencer.

Extend all your traffic sequences from this base sequence, and interrupt routine will automatically be taken care of.