31 lines
892 B
Systemverilog
31 lines
892 B
Systemverilog
|
|
`ifndef CALC_BASE_SEQ_SV
|
||
|
|
`define CALC_BASE_SEQ_SV
|
||
|
|
|
||
|
|
class calc_base_seq extends uvm_sequence#(calc_seq_item);
|
||
|
|
|
||
|
|
`uvm_object_utils(calc_base_seq)
|
||
|
|
`uvm_declare_p_sequencer(calc_sequencer)
|
||
|
|
|
||
|
|
function new(string name = "calc_base_seq");
|
||
|
|
super.new(name);
|
||
|
|
endfunction
|
||
|
|
|
||
|
|
// objections are raised in pre_body
|
||
|
|
virtual task pre_body();
|
||
|
|
uvm_phase phase = get_starting_phase();
|
||
|
|
if (phase != null)
|
||
|
|
phase.raise_objection(this, {"Running sequence '", get_full_name(), "'"});
|
||
|
|
uvm_test_done.set_drain_time(this, 200ms);
|
||
|
|
endtask : pre_body
|
||
|
|
|
||
|
|
// objections are dropped in post_body
|
||
|
|
virtual task post_body();
|
||
|
|
uvm_phase phase = get_starting_phase();
|
||
|
|
if (phase != null)
|
||
|
|
phase.drop_objection(this, {"Completed sequence '", get_full_name(), "'"});
|
||
|
|
endtask : post_body
|
||
|
|
|
||
|
|
endclass : calc_base_seq
|
||
|
|
|
||
|
|
`endif
|