Sequences for Interface

Hello guys, I have a question regarding the sequences. I have a thought of implementing this, I’m not coding yet, however I’m still in verification plan making phase. I have an idea about it, but not sure if its true or applicable or if matches industry standards.

and this is a sequence of simple read

talking from master side, when making a simple read request, I’d define a sequence extending uvm_sequence.
and when
defining a burst sequence, I’d extend it from uvm_sequence too and I’ll incorporate the simple read request with it and send N number of simple read/write consecutive sequences, protocol doesn’t require them to be consecutive, bus can be idle in between transfers. so, it’s a sequence of sequences.

Is that what should I do?

In reply to haithamx15:

You seem to be confusing a sequence_item and a sequence.

A sequence_item will contain all of the information that the agent needs to complete a transaction. This typically includes the target address, read/write designation, data, multi-beat (burst) parameters, transaction delays, etc. The sequence_item will allow you to specify any type of transaction that the master can conduct.

The driver will ‘translate’ the sequence_item into DUT pin ‘wiggles’.

Please read this article which will help you understand what a sequence_item encapsulates.

A sequence will co-ordinate the generation of multiple sequence_items. This may entail a write followed by a read, many different write/read transactions, etc.

In reply to cgales:

In reply to haithamx15:
You seem to be confusing a sequence_item and a sequence.
A sequence_item will contain all of the information that the agent needs to complete a transaction. This typically includes the target address, read/write designation, data, multi-beat (burst) parameters, transaction delays, etc. The sequence_item will allow you to specify any type of transaction that the master can conduct.
The driver will ‘translate’ the sequence_item into DUT pin ‘wiggles’.
Please read this article which will help you understand what a sequence_item encapsulates.
A sequence will co-ordinate the generation of multiple sequence_items. This may entail a write followed by a read, many different write/read transactions, etc.

I’ve got that wrong, yes i know the difference between sequence and sequence_item.
sequence_item is shared among all sequences. Is a sequence of sequences applicable in my case if I make a sequence called simple_rd for example and instansiate it in the another sequence, let’s call it burstsequence, and generate that simple_rd N times?

In reply to haithamx15:

No. You can not create a burst transaction from multiple single transactions.

Your sequence_item will describe every type of transaction that the protocol defines. Depending on the protocol, this will include single-beat, multi-beat (burst), split transactions, etc. Each transaction will typically have a request/grant phase with transaction qualifiers, data phases and acknowledgement phases (as required).