/****************************************************************************
    +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+
    |F|u|n|c|t|i|o|n|a|l| |V|e|r|i|f|i|c|a|t|i|o|n| |o|f| |H|a|r|d|w|a|r|e|
    +-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+ +-+-+-+-+-+-+-+-+

    FILE            apb_master_simple_seq.sv

    DESCRIPTION     simple sequence; random transactions

 ****************************************************************************/

`ifndef APB_MASTER_SIMPLE_SEQ_SV
`define APB_MASTER_SIMPLE_SEQ_SV
    
/**
 * Class: apb_master_simple_seq
 */
class apb_master_simple_seq extends apb_master_base_seq;
    
    rand int unsigned num_of_tr;
    
    // constraints
    constraint num_of_tr_cst { num_of_tr inside {[1 : 10]};}
    
    // UVM factory registration
    `uvm_object_utils(apb_master_simple_seq)

    // new - constructor
	function new(string name = "apb_master_simple_seq");
		super.new(name);
	endfunction : new

    // sequence generation logic in body
    virtual task body();
        repeat(num_of_tr) begin
            `uvm_do(req)
        end
    endtask : body
    
endclass : apb_master_simple_seq

`endif
