verilator/test_regress/t/t_cuse_forward.v

40 lines
841 B
Systemverilog
Raw Normal View History

// DESCRIPTION: Verilator: Verilog Test module
//
// This file ONLY is placed under the Creative Commons Public Domain.
// SPDX-FileCopyrightText: 2023 Antmicro Ltd
// SPDX-License-Identifier: CC0-1.0
class Baz;
endclass
2026-03-03 13:21:24 +01:00
class Bar #(
type T
) extends T;
endclass
class Foo;
2026-03-03 13:21:24 +01:00
typedef struct {int field;} Zee;
task t1();
// Refer to Baz CLASSREFDTYPE node in implementation (via CLASSEXTENDS)
2026-03-03 13:21:24 +01:00
Bar #(Baz) b = new;
endtask
// Refer to the very same Baz CLASSREFDTYPE node again, this time within interface
task t2(Bar#(Baz)::T b);
endtask
endclass
class Moo;
// Use Foo::Zee to cause inclusion of Foo's header file
Foo::Zee z;
endclass
2026-03-03 13:21:24 +01:00
module t;
initial begin
// Use Moo in top module to add Moo to root, causing inclusion of Foo header into
// root header.
Moo moo;
moo = new;
end
endmodule