Code
// *******************************************************
// Date Created   : 05 June, 2019
// Author         : :P
// *******************************************************

// TODO Add these in a seperate sequence include file.
`define display( strx ) \
    `UVM_INFO_SEQ( "AMBA_APB_MASTER_SEQ", strx, UVM_LOW )


//--------------------------------------------------------
// [000] Description:
// Simple base sequence for the other sequences
//--------------------------------------------------------

class vip_amba_apb_base_sequence extends uvm_sequence#( vip_amba_apb_txn_item );

	`uvm_object_utils( vip_amba_apb_base_sequence )
    
    rand logic [32-1:0]     Address[$];
    rand logic [32-1:0]     Data[$];
    rand logic              WR_RD[$];
    rand logic [8-1:0]      WStrobe[$];
    rand bit                txn_consecutive[$];

    bit                     read_txn_error;

    int env_num;
    
    vip_amba_apb_env_config env_config;
    vip_amba_apb_test_config test_config;
    
    // Bus Interface
    // -------------
	virtual vip_amba_apb_interface seq_bus_intf0;

	function new( string name="" );
		super.new( name );
		//$display( "Base Sequence CREATED -------------" );
        `UVM_INFO_SEQ( "AMBA_APB_MASTER_SEQ",$sformatf( "vip_amba_apb_base_sequence Created." ), UVM_LOW )
	endfunction

    task pre_body();

		// Get the Bus Interface
		// ---------------------
		if( !uvm_config_db#( virtual vip_amba_apb_interface )::get( 	.cntxt( uvm_root::get() ),
										                                .inst_name( "" ),
										                                .field_name( $sformatf( "bus_intf0[%0d]", env_num ) ),
										                                .value( seq_bus_intf0 ) ) )
			`uvm_fatal( "APB_MON_COM", " Failed to get the UVM Bus Interface" )

        // Get the test config file
        // ------------------------
		if( !uvm_config_db#( vip_amba_apb_test_config )::get( 	.cntxt( uvm_root::get() ),
						 	                                    .inst_name( "" ),
							                                    .field_name( $sformatf ( "test_config[%0d]", env_num ) ),
							                                    .value( test_config ) ) )
			`uvm_fatal( "DB_GET_ERR","Failed to get the test_config in sequence" )

        // Get the env config file
        // -----------------------
		if( !uvm_config_db#( vip_amba_apb_env_config )::get( 	.cntxt( uvm_root::get() ),
						 	                                    .inst_name( "" ),
							                                    .field_name( $sformatf ( "env_config[%0d]", env_num ) ),
							                                    .value( env_config ) ) )
			`uvm_fatal( "db_get_err","failed to get the env_config in sequence" )


    endtask

	task body();
		//vip_amba_apb_txn_item pkt;
		//pkt = vip_amba_apb_txn_item::type_id::create( "pkt" );
		//$display( "Inside the Sequence BODY-----------" );
	
		//repeat( 5 )
		//begin
		//	start_item( pkt );

		//	assert( pkt.randomize() with { 
        //                                    txn_ADDR == 32'h44_44_22_22;    
        //                                    } );

		//	finish_item( pkt );
		//end

        // Get the env config file
        // -----------------------
		if( !uvm_config_db#( vip_amba_apb_env_config )::get( 	.cntxt( uvm_root::get() ),
						 	                                    .inst_name( "" ),
							                                    .field_name( $sformatf( "env_config[%0d]", env_num ) ),
							                                    .value( env_config ) ) )
			`uvm_fatal( "db_get_err","failed to get the env_config in sequence" )
	endtask

    task post_body();
    endtask

    constraint txn_q_sizes { 
                                Address.size() == Data.size();
                                Data.size() == WR_RD.size();
                                WR_RD.size() == WStrobe.size();
                                WStrobe.size() == txn_consecutive.size();
    };

    constraint txn_q_default_size { 
                                        soft Address.size() == 1;
                                        foreach( txn_consecutive[i] )
                                            soft txn_consecutive[i] == 1'b0;
    };

endclass