1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
  
     | 
    
      // DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain, for
// any use, without warranty, 2025 by Wilson Snyder
// SPDX-License-Identifier: CC0-1.0
interface A;
endinterface
typedef virtual A a_t;
typedef a_t a_array_t[6];
class B;
  function new(virtual A va);
  endfunction
endclass
class C;
   a_array_t vif;
   function void set(int index, a_t iface);
      vif[index] = iface;
   endfunction
endclass
module tb_top();
   A a[6]();
   C c, d, e;
   a_array_t g;
   initial begin
      static a_t aa = a[0];
      B b = new(a[0]);
      c = new();
      c.vif = a;
      d = new();
      d.set(0, a[0]);
      d.vif[1] = a[1];
      g[0] = a[0];
      g = a;
      d.vif[0] = g[0];
      d.vif = g;
      e = new();
      for (int i = 0; i < 6; ++i) begin
         e.vif[i] = g[i];
      end
      $write("*-* All Finished *-*\n");
      $finish;
   end
endmodule
 
     |