How to make a uvm sequence active across multiple phases?

In reply to eda2k4:

I had a look to the UVM 1.2 UserGuide. What I see is there is an adapter. See the code from chapter 5.9.2.3:

typedef uvm_reg_sequence #(uvm_sequence #(apb_rw)) reg2apb_seq_t;
class block_env extends uvm_env;
block_reg_model regmodel;
uvm_sequencer#(uvm_reg_item) reg_seqr;
apb_agent apb;
reg2apb_seq_t reg2apb_seq;
virtual function void connect_phase(uvm_phase phase);
if (regmodel.get_parent() == null) begin
regmodel.default_map.set_sequencer(reg_seqr,null);
reg2apb_seq = reg2apb_seq_t::type_id::create(“reg2apb_seq”,,
get_full_name());
reg2apb_seq.reg_seqr = reg_seqr;
reg2apb_seq.adapter =
reg2apb_adapter::type_id::create(“reg2apb”,,
get_full_name());
regmodel.set_auto_predict(1);
end
endfunction
virtual task run();
reg2apb_seq.start(apb.sequencer);
endtask
endclass

And there is no independent sequence running on the low-layer sequencer. There runs the converted sequence on the agents sequencer. In this case it is the apb_sequencer.