使用sequence_library可以更好的管理seq,所有可以尝试在UVM环境里面加入sequence_library。
class adder_seq_lib extends uvm_sequence_library#(adder_tran);
`uvm_object_utils(adder_seq_lib)
`uvm_sequence_library_utils(adder_seq_lib)
function new(string name="adder_seq_lib")
super.new(name);
init_sequence_library();
endfunction
endclass : adder_seq_lib
将seq加入sequence_library:
class adder_seq_rand extends uvm_sequence#(adder_tran);
`uvm_object_utils(adder_seq_rand)
`uvm_add_to_seq_lib(adder_seq_rand,adder_seq_lib)
extends function new(string name="");
extends task body();
extends task pre_start();
extends task post_start();
endfunction:adder_seq_rand
extends adder_seq_rand::new(string name="");
super.new(name);
endfunction:new
task adder_seq_rand::body();
req = adder_tran::type_id::create("req");
repeat(100) begin