verilator/test_regress/t/t_class_class.v

41 lines
944 B
Systemverilog
Raw Normal View History

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2020 Wilson Snyder
// SPDX-License-Identifier: CC0-1.0
// Note UVM internals do not require classes-in-classes
package P;
2026-03-08 23:26:40 +01:00
class Cls #(
type STORE_T = string
);
STORE_T imembera;
STORE_T imemberb;
class SubCls;
2022-11-18 00:15:38 +01:00
STORE_T smembera;
STORE_T smemberb;
2020-08-23 01:46:21 +02:00
// TODO put extern function here or in t_class_extern.v to check link
2026-03-08 23:26:40 +01:00
endclass : SubCls
SubCls sc;
endclass : Cls
endpackage : P
module t;
2026-03-08 23:26:40 +01:00
P::Cls #(int) c;
initial begin
c = new;
c.imembera = 10;
c.imemberb = 20;
c.sc = new;
c.sc.smembera = 30;
c.sc.smemberb = 40;
if (c.imembera != 10) $stop;
if (c.imemberb != 20) $stop;
if (c.sc.smembera != 30) $stop;
if (c.sc.smemberb != 40) $stop;
2026-03-08 23:26:40 +01:00
$write("*-* All Finished *-*\n");
$finish;
end
endmodule