// DESCRIPTION: Verilator: Verilog Test module // // This file ONLY is placed under the Creative Commons Public Domain // SPDX-FileCopyrightText: 2026 Antmicro // SPDX-License-Identifier: CC0-1.0 interface ifc; int v; endinterface module GenericModule1D ( interface a[4] ); initial begin #1; if (a[0].v != 'hdead) $stop; if (a[1].v != 'hbeef) $stop; a[2].v = 'hface; a[3].v = 'hcafe; end endmodule module GenericModule2D ( interface a[2][2] ); initial begin #3; if (a[0][0].v != 'hdead) $stop; a[0][1].v = 'hbeef; if (a[1][0].v != 'hface) $stop; a[1][1].v = 'hcafe; end endmodule module GenericModuleRng ( interface a[5:3] ); initial begin #5; if (a[3].v != 'hdead) $stop; if (a[4].v != 'hbeef) $stop; a[5].v = 'hface; end endmodule module t; ifc inf1d[4] (); ifc inf2d[2][2] (); ifc infrng[5:3] (); GenericModule1D mod1d (inf1d); GenericModule2D mod2d (inf2d); GenericModuleRng modrng (infrng); initial begin inf1d[0].v = 'hdead; inf1d[1].v = 'hbeef; #2; if (inf1d[2].v != 'hface) $stop; if (inf1d[3].v != 'hcafe) $stop; inf2d[0][0].v = 'hdead; inf2d[1][0].v = 'hface; #2; if (inf2d[0][1].v != 'hbeef) $stop; if (inf2d[1][1].v != 'hcafe) $stop; infrng[3].v = 'hdead; infrng[4].v = 'hbeef; #2; if (infrng[5].v != 'hface) $stop; $write("*-* All Finished *-*\n"); $finish; end endmodule