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.
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.
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 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?
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).