How would we know which sequencer is responded to driver and how to confirm that?
let say we have we 3/4 sequencer and 1 driver
Can someone explain to me with eg
Thanks in advance
How would we know which sequencer is responded to driver and how to confirm that?
let say we have we 3/4 sequencer and 1 driver
Can someone explain to me with eg
Thanks in advance
In reply to mi:
It is alittle bit unclear what you mean. I assume you are asking for rsp from driver to sequencer. See the details here
https://verificationacademy.com/cookbook/driver/bidirectional
In reply to chr_sue:
Thanks
single driver with multiple seqencers , is this communication possible ? if yes multiple sequencers like sqncr1 , seqncr2, sqncr3
in general scenarios we have m_driver.seq_item_port.connect(sequencer.seq_item_export);
(sequencer.seq_item_export) → sqncr1/2/3 ???
I would like to know how do we know which sqncr is responded(sqncr1/sqncr2/sqncr3) ?
Am i clarified ?
In reply to mi:
The connection betwen sequencer and driver is always a one-to-one connection.
In the example you see different options to deal with the responses.
In reply to mi:
Whan you are running more than 1 sequence at the same time you can contro how the seq_items of the differenr sequences will be provided.
In reply to chr_sue:
okay, then what is the difference between sequence library, sequencer arbitration, and virtual sequence? In what scenarios we are going to use them?
In reply to mi:
These are completely different constructs. There is no relationship in between.
(1) virtual sequence: is a sequence which orchestrates the execution of the agent sequencers. The main difference to a sequence is, it is NOT generating any seq_items.
(2) sequencer arbitration defines in which series the seq_items of more than 1 seqauence are generated-
(3) sequence library is a construct where you can add sequences to. A sequence library consists a ceratin number of sequences. You can start the sequence library like a sequence. All sequence from the library will be executed in a well-defined order.
In reply to mi:
A virtual sequence is a term for a sequence that only starts other sequences. It usually is not associated with any sequencer which is required to send sequence_items to a driver. In the early days of the OVM it used to be a separate class, but in a rare act of simplification, they got rid if it. The terminology lingers on.
The uvm_sequence_library is an example of a virtual sequence that comes predefined in the UVM. It has methods for registering other sequences into a list and different mechanisms for selecting from that list. We do not recommend the use of sequence libraries. It is much easier to use a simple array. See Sequences/Generation | Verification Academy
Sequencer arbitration is used when multiple sequences connected to the same sequencer or even the same sequence sends multiple sequence_items in parallel. A driver can only accept sequence_items sequentially.