uvm_report_fatal("UVM_PUSH_DRIVER","Put task for push driver is not implemented",UVM_NONE);endtaskconststaticstringtype_name="uvm_push_driver #(REQ,RSP)";virtualfunctionstringget_type_name();returntype_name;endfunctionendclass
classuvm_driver#(typeREQ=uvm_sequence_item,typeRSP=REQ)extendsuvm_component;`uvm_component_param_utils(uvm_driver#(REQ,RSP))// TODO: Would it be useful to change this to://| `uvm_type_name_decl($sformatf("uvm_driver #(%s,%s)", REQ::type_name(), RSP::type_name()))`uvm_type_name_decl("uvm_driver #(REQ,RSP)")// Port -- NODOCS -- seq_item_port//// Derived driver classes should use this port to request items from the// sequencer. They may also use it to send responses back.uvm_seq_item_pull_port#(REQ,RSP)seq_item_port;uvm_seq_item_pull_port#(REQ,RSP)seq_item_prod_if;// alias// Port -- NODOCS -- rsp_port//