// This program is free software; you can redistribute it and/or modify it
// under the terms of either the GNU Lesser General Public License Version 3
// or the Perl Artistic License Version 2.0.
// SPDX-FileCopyrightText: 2003 Wilson Snyder
// SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
class ExampleClass;
  localparam NUM_TXNS = 10;
  protected virtual example_if v_if;

  task run();
    v_if.x();
  endtask : run

  function void bind_if(virtual example_if v_if);
    this.v_if = v_if;
  endfunction : bind_if
endclass : ExampleClass

interface example_if ();
  logic clk;
  logic rstn;
  logic [7:0] x;
endinterface : example_if

module t;

  example_if example_if_inst ();

  initial begin : main
    automatic ExampleClass exampleClass = new();

    exampleClass.bind_if(example_if_inst);
    exampleClass.run();
  end : main
endmodule : t
