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:
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.
uvm_seq_item_pull_imp macro definition reads as follows:
As 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.
uvm_sequence_port Introduction
Guess you like
Origin blog.csdn.net/weixin_39662684/article/details/104770637
Recommended
Ranking