verilator/test_regress/t/t_virtual_interface_method_...

36 lines
861 B
Systemverilog

// 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