Inheritance diagram for class svt_dispatch_sequence:
Sequence used to queue up and dispatch seqeunce items. This sequence supports two basic use models, controlled by the continuous_dispatch field.
The client can initially create a 'non-continuous' svt_dispatch_sequence, but once continuous_dispatch gets set to '1', the svt_dispatch_sequence will continue to be a continuous sequence until it is deleted. It is not possible move back and forth between continuous and non-continuous dispatch with an individual svt_dispatch_sequence instance.
If Sequence dispatched in continuous, it also supports multiple transactions to be dispatched concurrently, without blocking, controlled by enable_multiple_tr_dispatch method.
Public Member Functions | |
| task | body ( ) |
| function ovm_object | create ( string name = "" ) |
| function void | delete_reqs ( ) |
| task | dispatch ( ovm_sequencer seqr, REQ req, bit continuous_dispatch = 1 ) |
| function void | enable_multiple_tr_dispatch ( ) |
| virtual function ovm_object_wrapper | get_object_type ( ) |
| static function type_id | get_type ( ) |
| virtual function void | m_set_p_sequencer ( ) |
| function void | new ( string name = "svt_dispatch_sequence" ) |
| function void | response_handler ( ovm_sequence_item response ) |
| task | send_forever ( ) |
| task | send_one ( ) |
Class Parameters | |
| type | REQ = ovm_sequence_item; |
| type | RSP |
Public Attributes | |
| ovm_sequencer | p_sequencer |
| static ovm_report_object | reporter = ovm_root; |
Member Typedefs | |
| typedef class | type_id |
|
||||||
Sequence body implemeentation, basically sends 'req' on the sequencer.
| ||||||
|
|
||||
|
|
||
Method used to remove all the elements from the queue which are pushed for dispatch.
|
|
||
Method used to dispatch the request on the sequencer. The dispatch sequence can move from 'single' dispatch to 'continuous' dispatch between calls. It can also move between sequencers between calls while using 'single' dispatch, or when moving from 'single' dispatch to 'continuous' dispatch. But once 'continuous' dispatch is established, attempting to move back to 'single' dispatch, or changing the sequencer, will result in a fatal error.
seqr - Sequencer the request is to be dispatched on. req - Request that is to be dispatched. continuous_dispatch - Indicates whether the dispatch process should be continuous. |
|
||
Method used to enable dispatch of multiple non blocking concurrent transactions.
|
|
||||||
|
|
||||||
Factory Registration.
| ||||||
|
|
||||
|
|
||||
CONSTRUCTOR: Creates a new instance of the svt_dispatch_sequence class.
name - The sequence name. | ||||
|
|
||||
No-op which can be used to avoid clogging things up with responses and response messages.
| ||||
|
|
||
Method used to create a forever loop to take care of the dispatch.
|
|
||
Method used to do a single dispatch.
|
|
|
|
|
Parent Sequencer Declaration.
|
|
|
All messages originating from data objects are routed through `SVT_XVM(root)
|
|