///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//---------------------- Arbitration Sample Seqs---------------------------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class I2C_M_sample_seq_1 extends I2C_M_base_sequence;
`uvm_object_utils(I2C_M_sample_seq_1)
I2C_M_trans trans_h;
parameter delay = 5;
function new (string name = “I2C_M_sample_seq_1”);
super.new(name);
endfunction
task body();
repeat(1) begin
trans_h = I2C_M_trans::type_id::create("trans_h");
start_item(trans_h);
`uvm_info(get_name(), "start_item_M_1:::IDLE", UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == IDLE;}); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_1", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_1:::IDLE",UVM_LOW)
start_item(trans_h);
`uvm_info(get_name(), "start_item_M_1:::START", UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == start;}); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_1", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_1:::START",UVM_LOW)
end
repeat(1)
begin
start_item(trans_h);
`uvm_info(get_name(), “start_item_M_1:::START_TRANSMISSION”, UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == start_transmission; slv_add==7'd10; } ); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_1", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_1:::START_TRANSMISSION",UVM_LOW)
end
//#delay;
endtask: body
endclass
///////////////////////////////////////////////////
class I2C_M_sample_seq_2 extends I2C_M_base_sequence;
`uvm_object_utils(I2C_M_sample_seq_2)
I2C_M_trans trans_h;
parameter delay = 5;
function new (string name = “I2C_M_sample_seq_2”);
super.new(name);
endfunction
task body();
repeat(1) begin
trans_h = I2C_M_trans::type_id::create("trans_h");
start_item(trans_h);
`uvm_info(get_name(), "start_item_M_2:::IDLE", UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == IDLE;}); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_2", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_2:::IDLE",UVM_LOW)
#delay;
start_item(trans_h);
`uvm_info(get_name(), "start_item_M_2:::START", UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == start;} ); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_2", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_2:::START",UVM_LOW)
end
repeat(1)
begin
start_item(trans_h);
`uvm_info(get_name(), “start_item_M_2:::START_TRANSMISSION”, UVM_LOW)
assert(trans_h.randomize() with {call_drive_function == start_transmission; slv_add==7'd10; } ); // 0 = write a data
//`uvm_info(get_name(), "randomize_M_sample_seq_2", UVM_LOW)
finish_item(trans_h);
`uvm_info(get_name(),"finish_item_M_2:::START_TRANSMISSION",UVM_LOW)
end
endtask: body
endclass