Sequence control

Hi all,
I have a scenario in which we have 3 sequences, out of which two of them have the highest priority. The 2 sequences are basically type of reactive, dut will send some request and depending upon that,we have to send some packet.So, it is basically like independent.

The last sequence which can be write/read to/from dut based on address we gave. If it is write,after sending packets I have to wait for dut response.While waiting for response,if dut requests for signals which is basically our first 2 sequences, that has to execute in the time of waiting for response from dut.We have 2 ports,one for transmitting and another for receiving from dut.

I thought of one approach, having 2 sequencers associated with the driver.1 for independent( dut request) type and another for write/read. Is it possible? Is sequence arbitration helpful for this kind?

Or,Please give me better ways of approaching this.

Thanks in advance,
Roopa

In reply to roopatoms:

can someone please help? Do sequence arbitration helps in this scenario?

In reply to roopatoms:

I think it is not a good idea to have 2 sequencers connected to 1 driver. All you need can be modeled in a virtual or nested sequence. You can use the arbitration models available or working with ‘if/else’.

In reply to chr_sue:
In the execution of one sequence, while waiting for its response, if requests from dut comes,I have to execute that in parallel with this.
how to acheive with sequence arbitration, by avoiding if/else

In reply to roopatoms:

For me it is still not accurate enough for giving you an advice. What kind of sequences do you execute? Is it the same sequence with different constraints or what is it.?

In reply to chr_sue:

Sorry for the late reply.
we have 3 sequences
first 2 sequences are simply waiting for vdo/map requests from dut.If request comes,some packet will generate.They both have highest priority.

The last sequence is like normal write/read operation.After the operation,we have to wait for some response from dut. The response time is relatively large.In that time, if dut request for vdo/map that should execute.Please suggest

In reply to roopatoms:

To summarize what I understood:

(1) normal traffic (last sequence)
(2) prioritized traffic (first2 sequences)

What you are describing looks like thesame as the handling of an iterrupt. For this reason we the the ‘lock’ command. This stops the common traffic, executes the interrupt routine sequence and the continues with the common traffic.
For details see the example ‘Interrupts - simple’ in the code examples of the Verification Academy. There are also more complicated examples.

In reply to chr_sue:

Thanks Sir.Let me check that.

In reply to roopatoms:

I went through interrupts.Is there any other easy methods than interrupts.

In reply to roopatoms:

I will explain more clearly
• Assume we have 3 sequences, sequence 2nd & 3rd have high priority and sequence 1st is of low priority.
• Sequence 2nd and 3rd are reactive sequences.
• Sequence 1st is a two-step task, first to drive tx interface and check response on rx interface.
• When 1st sequence is at 2nd task, and sequence 2nd or 3rd got triggered,
then how do we come out of 1st sequence and drive the tx interface, and upon completion of current sequence (i.e. 2nd or 3rd) jump back to 1st sequence 2nd task?