uvm_sequence_port Introduction

Typically implemented using excitation uvm_sequence transmission mechanism verification environment. Generated by the excitation uvm_sequence, sent to uvm_driver, uvm_driver RSP generating, via feedback to uvm_sequence uvm_sequencer.
This mechanism is in a critical place and connected uvm_sequencer uvm_driver, which are implemented by uvm_sequence_port. Uvm_driver generally in the seq_item_port and uvm_sequencer seq_item_export connected.
uvm_seq_port source as follows:
Here Insert Picture Description
Here Insert Picture Description
Here Insert Picture Description
from the definition view port 3, port and export only two parameter for defining req and rsp type, in addition to the imp req and rsp two parameters, there is a parameter of the IMP , IMP usually instantiates the uvm_component uvm_seq_item_pull_imp.
macro UVM_SEQ_PORT, UVM_EXPORT_COMMON UVM_IMP_COMMON and used to define this type of port, indicating that it belongs to the port, export, imp.
from a class can be seen that all three macro call uvm_seq_item_pull_imp, different the export port and the first parameter is m_if, m_if is uvm_port_base type, parameters passed in type IF is uvm_sqr_if_base; uvm_sqr_if_base defines such functions as get_next_item, item_done like.
Here Insert Picture Description
uvm_seq_item_pull_imp macro definition reads as follows:
Here Insert Picture DescriptionAs can be seen from the definition pull_imp as defined task get_next_item incoming call is actually in get_next_item imp, it is possible to know the task must be defined within the above-described embodiments of the uvm_seq_item_pull_imp component.
In fact, the call is finally settled uvm_driver the get_next_item to uvm_sequencer then how they are linked together within it? Single definition uvm_seq_item_pull_port point of view, he should be called in m_if.
We should know uvm_seq_item_pull_port and uvm_seq_item_pull_imp associate by the connect function. Resolve_bindings defined function uvm_port_base, the end_of_elaboration phase linear function call, the imp uvm_seq_item_pull_imp the parameters assigned to the m_if uvm_seq_item_pull_port associated both completed, thus achieving the object uvm_driver get_next_item get_next_item in the call uvm_sequencer.

Published 22 original articles · won praise 3 · Views 761

Guess you like

Origin blog.csdn.net/weixin_39662684/article/details/104770637