calc_sequence.sv
class calc_sequence extends uvm_sequence#(calc_trans);
`uvm_object_utils(calc_sequence)
function new(string name = "calc_sequence");
super.new(name);
endfunction: new
task body();
calc_trans req;
repeat(2) begin
req = calc_trans::type_id::create("req");
start_item(req);
assert(req.randomize());
finish_item(req);
end
endtask: body
endclass: calc_sequence
calc_sequencer.sv
typedef uvm_sequencer#(calc_trans) calc_sequencer;